I'm not sure what is wrong with this code regarding the sin and cos function.
9 ビュー (過去 30 日間)
古いコメントを表示
Hello, I have a problem with the following code:
angle=input('what is the angle in degrees: ');
t=angle*(pi/180);
if cos(t)<10^(-20)
disp('error! cos is close to zero');
else
y=sin(t)/cos(t);
fprintf('tan is equal to %f',y);
end
My professor said that sin and cos work in radians so I converted the degrees to radians. However, whenever I test for something like 90 degrees (when cos is 0), it should be displaying the error message, but it's not.
I get the following
what is the angle in degrees: 90
tan is equal to 16331239353195370.000000>>
0 件のコメント
採用された回答
Youssef Khmou
2014 年 4 月 6 日
Like Azzi said, pi contains infinite decimal numbers, To avoid this ambiguity i recommend you to use the degree functions instead of radians cosd and sind,
cosd(90)=0
cos(pi/2)=6.1232e-017
2 件のコメント
その他の回答 (1 件)
Azzi Abdelmalek
2014 年 4 月 6 日
You can check the value of cos(90*pi/180) and compare it with 10^(-20)
5 件のコメント
Azzi Abdelmalek
2014 年 4 月 6 日
編集済み: Azzi Abdelmalek
2014 年 4 月 6 日
OK, you know that the exact pi contains much more decimals. what Matlab or any other langage di is an approximation of pi
参考
カテゴリ
Help Center および File Exchange で Sensor Models についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!