atan和atan2的区别-Matlab三角函数

一句话总结:

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)

说明

示例

P = atan2(Y,X) 返回 Y 和 X 的四象限反正切 (tan-1),该值必须为实数。atan2 函数遵循当 x 在数学上为零(或者为 0 或 -0)时 atan2(x,x) 返回 0 的约定。

示例

计算点的四象限反正切

尝试此示例Copy Command  Copy Code

计算点 y = 4x = -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)

0

pi

atan2(-0,-0)

0

-pi

atan(a,b)详细解释:

语法

Y = atan(X)

说明

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).

  • 14
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

光学码农

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值