Cos function with Array
13 ビュー (過去 30 日間)
古いコメントを表示
Hi, I am using cos function to calculate the cosine of an array as following:
a = th4_s1(2); %second element of my "th4_s1" array, which equals 1.5708
b = cos(a); %Matlab gives answer as 6.123e-17
c = 1.5708;
d = cos(1.5708); %Matlab gives answer as -3.6732e-6
Why are they so different? How can I avoid this error?
Thank you.
採用された回答
Walter Roberson
2020 年 10 月 25 日
>> acos(6.123e-17)
ans =
1.5707963267949
>> acos(-3.6732e-6)
ans =
1.5707999999949
>> cos(1.5708)
ans =
-3.67320510334657e-06
>> acos(cos(1.5708))
ans =
1.5708
>> acos(cos(1.5708)) - 1.5708
ans =
0
In other words, your th4_s1(2) is not 1.5708: it only rounds to that for display purposes, and is closer to 1.50796 .
And that cos(1.5708) is not 6.123e-17 like you show: that value is cos(1.5707999999949) not cos(1.5708) .
My recommendation would be that you go into Preferences -> Command Window -> Text Display, and choose numeric display "long g", and also Preferences -> Variables -> Default array format: and select "long g" (this affects the Variable Browser)
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Array Geometries and Analysis についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!