I need help I am trying to understand why this does not work properly I know logspace starts off the with value of 10 to the a and ends with 10 to the b and the last number spaces out
The aS (absolute error) and rS (relative error) should be very small but it is not
here is my code:
x=logspace(-12,12,100); s =.5.*(exp(x)-exp(x)); S = sinh(x); aS = abs((s-S)/(S)); rS = abs((s-S)); %This is the actual function for sinh(x) and that is why it is such % a small value for sinh(x) loglog(aS,'b') hold on loglog(rS,'r')

 採用された回答

Matt Fig
Matt Fig 2011 年 3 月 19 日

0 投票

You are missing a dot (.) and a minus (-).
x=logspace(-12,12,100);
s =.5.*(exp(x)-exp(-x));
S = sinh(x);
aS = abs((s-S)./(S));
rS = abs((s-S));
loglog(aS,'b')
hold on
loglog(rS,'r')
.
.
As far as to why there are differences between the two results, look at your range for x, then remember that MATLAB uses floating point arithmetic. In the exponential formula, you are finding the difference between two numbers which have vastly different magnitudes. I suspect the built-in SINH function is specially formulated to avoid these kinds of roundoff errors.

1 件のコメント

Lisa Oziel
Lisa Oziel 2011 年 3 月 19 日
yea thanks!!!

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeCharacters and Strings についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by