MATLAB程序中the3=atan2(R4.*sin(the4)./R3,R4.*cos(the4)./R3);请问the3计算出来的表达式是多少啊?
答案:1 悬赏:80 手机版
解决时间 2021-11-15 13:27
- 提问者网友:轮囘Li巡影
- 2021-11-14 14:12
MATLAB程序中the3=atan2(R4.*sin(the4)./R3,R4.*cos(the4)./R3);请问the3计算出来的表达式是多少啊?
最佳答案
- 五星知识达人网友:酒醒三更
- 2021-11-14 15:05
the3=the4+2*pi*k
k等于任意整数追问但是等式中没有k啊,我查阅atan2函数用法不是这样的啊?请高手指点,谢谢了啊追答我的2*pi*k是根据三角函数的周期性,人为加上去的
atan2(y,x)计算的是向量(x,y)和x轴的夹角
实际上一个向量(x,y)其和x轴的夹角a满足 tan(a)=y/x
那么计算的时候a=atan(y/x)
但是atan函数返回的角的范围是-pi/2~pi/2只有第一象限和第四象限的角
原因是如果y/x是正数,那么y和x可能是同为正,或者同为负,角可能是一、三象限角
原因是如果y/x是负数,那么y和x一个正一个负,角可能是二、四象限角
但是通过比值y/x计算就丢失了x,y的正负信息
atan2(y,x)其实就是计算atan(y/x)
再根据x,y的正负情况判断角的象限,返回-pi~pi范围角度的函数
因为要判断x,y的正负,所以里面有判断大小的操作
如果你的使用sym类型变量来推导公式的话,是会报错的
因为sym类型变量是不能比较大小的,所以atan2函数是不能用于符号运算的
而根据定义你的
atan2(R4.*sin(the4)./R3,R4.*cos(the4)./R3)
里面 y=R4.*sin(the4)./R3 ,x=R4.*cos(the4)./R3
其实就是向量 (cos(the4),sin(the4))乘以R4./R3
这个向量和x轴的夹角正好是the4,所以结果the3=the4
这是人为的化简,因为atan2不能接受sym符号变量
k等于任意整数追问但是等式中没有k啊,我查阅atan2函数用法不是这样的啊?请高手指点,谢谢了啊追答我的2*pi*k是根据三角函数的周期性,人为加上去的
atan2(y,x)计算的是向量(x,y)和x轴的夹角
实际上一个向量(x,y)其和x轴的夹角a满足 tan(a)=y/x
那么计算的时候a=atan(y/x)
但是atan函数返回的角的范围是-pi/2~pi/2只有第一象限和第四象限的角
原因是如果y/x是正数,那么y和x可能是同为正,或者同为负,角可能是一、三象限角
原因是如果y/x是负数,那么y和x一个正一个负,角可能是二、四象限角
但是通过比值y/x计算就丢失了x,y的正负信息
atan2(y,x)其实就是计算atan(y/x)
再根据x,y的正负情况判断角的象限,返回-pi~pi范围角度的函数
因为要判断x,y的正负,所以里面有判断大小的操作
如果你的使用sym类型变量来推导公式的话,是会报错的
因为sym类型变量是不能比较大小的,所以atan2函数是不能用于符号运算的
而根据定义你的
atan2(R4.*sin(the4)./R3,R4.*cos(the4)./R3)
里面 y=R4.*sin(the4)./R3 ,x=R4.*cos(the4)./R3
其实就是向量 (cos(the4),sin(the4))乘以R4./R3
这个向量和x轴的夹角正好是the4,所以结果the3=the4
这是人为的化简,因为atan2不能接受sym符号变量
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯