MATLAB 反三角函数>> dot(ta,tb)/(norm(ta)*norm(tb))ans =-1.000000000000000>> acos(dot(ta,tb)/(norm(ta)*norm(tb)))ans =3.141592653589793 - 0.000000021073424i单独计算acos(-1)=pi.为什么第二个表达式的返回结果不是pi,而是一个复数?
问题描述:
MATLAB 反三角函数
>> dot(ta,tb)/(norm(ta)*norm(tb))
ans =
-1.000000000000000
>> acos(dot(ta,tb)/(norm(ta)*norm(tb)))
ans =
3.141592653589793 - 0.000000021073424i
单独计算acos(-1)=pi.为什么第二个表达式的返回结果不是pi,而是一个复数?
答
数值计算是会有些误差的.
不过,既然虚部的大小只有1e-8的数量级,完全可以忽略.
如果题主有什么特殊需要,请指明.