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
Walter Roberson 2020 年 10 月 25 日

0 投票

>> 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)

1 件のコメント

Nhan Nguyen
Nhan Nguyen 2020 年 10 月 25 日
Thank you so much.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange で Get Started with MATLAB についてさらに検索

製品

リリース

R2020b

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by