问个matlab的bug

来源:百度知道 编辑:UC知道 时间:2024/05/21 04:17:08
为什么用matlab求sin(pi)的结果是 1.2246e-016,而不是0?
而求cos(pi)的结果是-1,是正确的。
我在做纳米工程的计算时由于sin(pi)不等于0给我带来了很大的误差,请问是不是有什么属性可以设置使sin(pi)=0?

先将Rad转成Degree,然后使用sind()函数
eg:ans=sind(gamma/pi*180)
即使gamma==1结果也是0了 ^_^

可能是你自己没有选择正确的显示,如楼上所说的将Rad转成Degree,然后使用sind()函数 或是程序不完善的问题
<br>这是matlab的程序一部分(一个例子)
<br>x=linspace(0,2*pi,20);
<br>y=sin(x);
<br>plot(x,y,'r+')
<br>title('2D plot')
<br>
<br>
<br>
<br>如:
<br>>> a=4
<br>a = 4
<br>>> t=(0:a)/a*2*pi
<br>t = 0 1.5708 3.1416 4.7124 6.2832
<br>
<br>即
<br>t(1)=(0)/4*2*pi=0
<br>t(2)=(1)/4*2*pi=1/2*pi
<br>t(3)=(2)/4*2*pi=pi
<br>t(4)=(3)/4*2*pi=3/2*pi
<br>t(1)=(4)/4*2*pi=2*pi
<br>
<br>如果你求sin(pi)即是求t(3)=(2)/4*2*pi=pi x=pi=t(3) 当你输入一些参数时由于程序的计算你将得到一些可能错误的结果