フィルターのクリア

accuracy n precision

2 ビュー (過去 30 日間)
Twinkle
Twinkle 2011 年 9 月 26 日
what do i do so that the result of cos(pi/2) is zero?

採用された回答

Jan
Jan 2011 年 9 月 26 日
Calculations with DOUBLEs involve rounding errors due to the limited precision. There is nothing you can or should do about it but taking it into account. Using COSD "helps" for this specific case, but only by rounding the small result to zero by accident.
Reliable numerical methods do never rely on a certain result of a calculation. Using an interval is much saver:
if cos(x) == 0 % Bad, unpredictable results!
if abs(cos(x)) < 10 * eps % Save
See also:

その他の回答 (1 件)

UJJWAL
UJJWAL 2011 年 9 月 26 日
Hi
The problem with MATLAB is its precision in these cases. You can try like this .
cosd(x * (180/pi));
% Where x is the angle in radians
This will give you the correct result.
For example when x = pi/2 then cosd (pi/2 * 180/pi) = 0

カテゴリ

Help Center および File ExchangeDiscrete Math についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by