Different results for two equal functions

1 vue (au cours des 30 derniers jours)
Beaya
Beaya le 27 Oct 2013
Commenté : Beaya le 27 Oct 2013
I am comparing these two functions:
f = sqrt(x.^2+1.0)-1.0
g = x.^2./(sqrt(x.^2+1.0)+1.0)
x = [8^-6 8^-7, 8^-8]
Even though f = g, I get slightly different values e.g. for x = 8^-7 I get f(x) = 1.136868377216 160 e-13 and g(x) = 1.136868377216 096 e-13.
I'm guessing this has something to do with the reduction of significant digits, however I don't know which results are more reliable. My guess is that function f = sqrt(x.^2+1.0)-1.0 is more precise because we only have one x in it but I am not sure...

Réponse acceptée

Walter Roberson
Walter Roberson le 27 Oct 2013
The two functions you show algebraically yield identical values only for x = 0.
  3 commentaires
Walter Roberson
Walter Roberson le 27 Oct 2013
Apologies, I had a typo when I did the calculations. The two do come out the same.
To more precision the 8^(-7) answer is
1.136868377216095673908443130184740364*10^(-13)
so your g(x) formula is more precise.
Beaya
Beaya le 27 Oct 2013
Thank you but do you know what might be the reason to that? I mean why g(x) is more precise?

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Logical 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