Help using old version of Matlab Student

12 vues (au cours des 30 derniers jours)
phillip
phillip le 30 Août 2012
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 commentaire
Manoj Kumar
Manoj Kumar le 9 Mai 2019
What's wrong ?
det(b) = 0 is equivalent to det(b) = 2.7756 x 10^*(-18) =0.

Connectez-vous pour commenter.

Réponse acceptée

Daniel Shub
Daniel Shub le 30 Août 2012
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

Plus de réponses (1)

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

Catégories

En savoir plus sur Startup and Shutdown dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by