フィルターのクリア

Help using old version of Matlab Student

1 回表示 (過去 30 日間)
phillip
phillip 2012 年 8 月 30 日
回答済み: Manoj Kumar 2019 年 5 月 9 日
Hi, I periodically use an old version 5 student edition. I'm having a rather small err large problem.
This is what happens
a=[.95 .03 .05 .97]
a =
0.9500 0.0300
0.0500 0.9700
b=a-eye(2)
b =
-0.0500 0.0300
0.0500 -0.0300
det(b)
ans =
2.7756e-018
clear
b=[-.05 .03 .05 -.03]
b =
-0.0500 0.0300
0.0500 -0.0300
det(b) ans =
0
What's happening here? Thanks.
  1 件のコメント
Manoj Kumar
Manoj Kumar 2019 年 5 月 9 日
What's wrong ?
det(b) = 0 is equivalent to det(b) = 2.7756 x 10^*(-18) =0.

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

採用された回答

Daniel Shub
Daniel Shub 2012 年 8 月 30 日
This is FAQ 6.1 wrapped up in a different way. FAQ 6.1 considers
>> 0.3 - 0.2 - 0.1
ans =
-2.7756e-17
The answer is the limited precision of floats. Using the same approach outlined in the FAQ gives:
>> sprintf('%20.18f\n', [.95 .03; .05 .97]-eye(2))
ans =
-0.050000000000000044
0.050000000000000003
0.029999999999999999
-0.030000000000000027
>> sprintf('%20.18f\n', [-.05 .03 .05 -.03])
ans =
-0.050000000000000003
0.029999999999999999
0.050000000000000003
-0.029999999999999999

その他の回答 (1 件)

Manoj Kumar
Manoj Kumar 2019 年 5 月 9 日
What's wrong ?
det(b) = 0 is equivalent to det(b) = 2.7756 x 10^*(-18) =0.

カテゴリ

Help Center および File ExchangeIntroduction to Installation and Licensing についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by