1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>FreeMat: ATAN2 Inverse Trigonometric 4-Quadrant Arctangent Function</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">FreeMat
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.1.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main Page</span></a></li>
<li class="current"><a href="pages.html"><span>Related Pages</span></a></li>
</ul>
</div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('mathfunctions_atan2.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">ATAN2 Inverse Trigonometric 4-Quadrant Arctangent Function </div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>Section: <a class="el" href="sec_mathfunctions.html">Mathematical Functions</a> </p>
<h1><a class="anchor" id="Usage"></a>
Usage</h1>
<p>Computes the <code>atan2</code> function for its argument. The general syntax for its use is </p>
<pre class="fragment"> z = atan2(y,x)
</pre><p> where <code>x</code> and <code>y</code> are <code>n</code>-dimensional arrays of numerical type. Integer types are promoted to the <code>double</code> type prior to calculation of the <code>atan2</code> function. The size of the output depends on the size of <code>x</code> and <code>y</code>. If <code>x</code> is a scalar, then <code>z</code> is the same size as <code>y</code>, and if <code>y</code> is a scalar, then <code>z</code> is the same size as <code>x</code>. The type of the output is equal to the type of |y/x|. </p>
<h1><a class="anchor" id="Function"></a>
Internals</h1>
<p>The function is defined (for real values) to return an angle between <code>-pi</code> and <code>pi</code>. The signs of <code>x</code> and <code>y</code> are used to find the correct quadrant for the solution. For complex arguments, the two-argument arctangent is computed via </p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[ \mathrm{atan2}(y,x) \equiv -i \log\left(\frac{x+i y}{\sqrt{x^2+y^2}} \right) \]" src="form_55.png"/>
</p>
<p> For real valued arguments <code>x,y</code>, the function is computed directly using the standard C library's numerical <code>atan2</code> function. For both real and complex arguments <code>x</code>, note that generally </p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[ \mathrm{atan2}(\sin(x),\cos(x)) \neq x, \]" src="form_56.png"/>
</p>
<p> due to the periodicities of <code>cos(x)</code> and <code>sin(x)</code>. </p>
<h1><a class="anchor" id="Example"></a>
Example</h1>
<p>The following code demonstates the difference between the <code>atan2</code> function and the <code>atan</code> function over the range <code>[-pi,pi]</code>.</p>
<pre class="fragment">--> x = linspace(-pi,pi);
--> sx = sin(x); cx = cos(x);
--> plot(x,atan(sx./cx),x,atan2(sx,cx))
</pre><div class="image">
<img src="atan2plot.png" alt="atan2plot.png"/>
</div>
Note how the two-argument <code>atan2</code> function (green line) correctly ``unwraps'' the phase of the angle, while the <code>atan</code> function (red line) wraps the angle to the interval <img class="formulaInl" alt="$[-\pi/2,\pi/2]$" src="form_57.png"/>. </p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="index.html">FreeMat Documentation</a></li><li class="navelem"><a class="el" href="sec_mathfunctions.html">Mathematical Functions</a></li>
<li class="footer">Generated on Thu Jul 25 2013 17:17:41 for FreeMat by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.1.1 </li>
</ul>
</div>
</body>
</html>
|