Different results for two equal functions

조회 수: 5 (최근 30일)
Beaya
Beaya 2013년 10월 27일
댓글: Beaya 2013년 10월 27일
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...

채택된 답변

Walter Roberson
Walter Roberson 2013년 10월 27일
The two functions you show algebraically yield identical values only for x = 0.
  댓글 수: 3
Walter Roberson
Walter Roberson 2013년 10월 27일
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 2013년 10월 27일
Thank you but do you know what might be the reason to that? I mean why g(x) is more precise?

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by