一句话总结:
atan2(a,b)是4象限反正切,它的取值不仅取决于a/b的atan值,还取决于点 (b, a) 落入哪个象限
当点(b, a) 落入第一象限时,atan2(a,b)的范围是 0 ~ pi/2;
当点(b, a) 落入第二象限时,atan2(a,b)的范围是 pi/2 ~ pi;
当点(b, a) 落入第三象限时,atan2(a,b)的范围是 -pi/2~0;
当点(b, a) 落入第四象限时,atan2(a,b)的范围是 -pi~-pi/2
atan(a/b) 是2象限反正切,即a/b的atan值
当 a/b > 0 时,atan(a/b)取值范围是 0 ~ pi/2;
当 a/b < 0 时,atan(a/b)取值范围是 -pi/2~0
atan2(a,b)详细解释:
语法
说明
P = atan2(Y,X)
返回 Y
和 X
的四象限反正切 (tan-1),该值必须为实数。atan2
函数遵循当 x
在数学上为零(或者为 0
或 -0
)时 atan2(x,x)
返回 0
的约定。
示例
计算点的四象限反正切
尝试此示例Copy Command Copy Code
计算点 y = 4
、x = -3
的四象限反正切。
atan2(4,-3)
ans = 2.2143
将复数转换为极坐标
尝试此示例Copy Command Copy Code
将 4 + 3i
转换为极坐标。
z = 4 + 3i; r = abs(z)
r = 5
theta = atan2(imag(z),real(z))
theta = 0.6435
半径 r
和角 theta
是 4 + 3i
的极坐标表示形式。
或者,使用 angle
计算 theta
。
theta = angle(z)
theta = 0.6435
将 r
和 theta
转换回原始复数。
z = r*exp(i*theta)
z = 4.0000 + 3.0000i
绘制四象限反正切图
尝试此示例Copy Command Copy Code
绘制 atan2(Y,X)
(对于 -4<Y<4
和 -4<X<4
)。
定义要在其上绘制的区间。
[X,Y] = meshgrid(-4:0.1:4,-4:0.1:4);
计算 atan2(Y,X)
在此区间上的值。
P = atan2(Y,X);
使用 surf
生成函数的曲面图。请注意,plot
绘制存在于 Y=0
的不连续性(对于所有 X<0
)。
surf(X,Y,P); view(45,45);
输入参数
全部折叠
Y
- y 坐标
标量 | 向量 | 矩阵 | 多维数组
y 坐标,指定为标量、向量、矩阵或多维数组。输入 Y
和 X
必须具有相同的大小或具有兼容的大小(例如,Y
是一个 M
×N
矩阵,X
是标量或 1
×N
行向量)。有关详细信息,请参阅基本运算的兼容数组大小。
数据类型: single
| double
X
- x 坐标
标量 | 向量 | 矩阵 | 多维数组
x 坐标,指定为标量、向量、矩阵或多维数组。输入 Y
和 X
必须具有相同的大小或具有兼容的大小(例如,Y
是一个 M
×N
矩阵,X
是标量或 1
×N
行向量)。有关详细信息,请参阅基本运算的兼容数组大小。
数据类型: single
| double
详细信息
全部折叠
四象限反正切
四象限反正切 atan2(Y,X)
基于图形中所示的 Y 和 X 的值返回闭区间 [-pi,pi]
中的值。
相比之下,atan(Y/X)
返回的结果仅限于区间 [-pi/2,pi/2]
,如图的右侧所示。
IEEE 合规性
对于实数输入,atan2
的一些行为不同于 IEEE®-754 标准中推荐的行为。
MATLAB® | IEEE | |
---|---|---|
atan2(0,-0) |
|
|
atan2(-0,-0) |
|
|
atan(a,b)详细解释:
语法
说明
Y = atan(X)
以弧度为单位返回 X
各元素的 反正切 (tan-1)。该函数同时接受实数和复数输入。
-
对于
X
的实数值,atan(X)
返回区间 [-π/2, π/2] 中的值。 -
对于
X
的复数值,atan(X)
返回复数值。
示例
值的反正切
尝试此示例Copy Command Copy Code
求值的反正切。
atan(0.8)
ans = 0.6747
复数值向量的反正切
尝试此示例Copy Command Copy Code
计算向量 x
的各元素的反正切。atan
函数按元素处理 x
。
x = [0.5i 1+3i -2.2+i]; Y = atan(x)
Y = 1×3 complex 0.0000 + 0.5493i 1.4615 + 0.3059i -1.2019 + 0.1506i
绘制反正切函数
尝试此示例Copy Command Copy Code
在区间 −20≤x≤20 上绘制反正切函数。
x = -20:0.01:20; plot(x,atan(x)) grid on
输入参数
X
- 角正切
标量 | 向量 | 矩阵 | 多维数组
角正切,指定为标量、向量、矩阵或多维数组。如果 X
为非标量,则按元素执行 atan
运算。
数据类型: single
| double
复数支持: 是
详细信息
反正切
反正切定义为
tan−1(z)=i2log(i+zi−z).