フィルターのクリア

Why are these sums not the same?

1 回表示 (過去 30 日間)
Steve
Steve 2015 年 1 月 16 日
編集済み: Roger Stafford 2015 年 1 月 16 日
Hello together,
What is the difference between these two:
1:
>>sum(cos(0.5*pi)*(0:99))
ans =
3.0310e-13
and 2:
>>S=0;
>> for J=0:99
S=cos(0.5*pi)*j;
end;
>> S =
6.0620e-15
Why is there a different result?
Thank you for any help!

採用された回答

Roger Stafford
Roger Stafford 2015 年 1 月 16 日
編集済み: Roger Stafford 2015 年 1 月 16 日
There is no reason they should be the same! In the for-loop method you are not doing a summation, as is done in the first method. All you obtain is the value of the last term, namely cos(0.5*pi)*99.
If you change the last method to
S = S + cos(0.5*pi)*j;
any difference between that value and the one for the first method will be due to differences in round off errors.
Ideally cos(0.5*pi) should be an exact zero, but both because pi cannot be represented exactly and because of errors in the cosine computation, it actually gives 6.1232e-17 as its value.

その他の回答 (1 件)

Image Analyst
Image Analyst 2015 年 1 月 16 日

カテゴリ

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

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by