初学matlab,今天在使用sin和cos函数时发现一个奇怪的问题:
>>sin(1/2*pi)
ans =
1
>> cos(pi)
ans =
-1
>> cos(1/2*pi)
ans =
6.1232e-17
>> sin(pi)
ans =
1.2246e-16
可以发现sin(pi)或者cos(1/2*pi)不等于0,初步推测应该是浮点运算的精度问题。由于sin,cos,tan等输入的参数为弧度制,而一般习惯角度制,所以解决的办法之一是用另外的函数,sind,cosd,tand等输入参数为角度制,就不会出现上述问题了。
>> sind(90)
ans =
1
>> sind(180)
ans =
0
>> cosd(90)
ans =
0
>> cosd(180)
ans =
-1