6 views (last 30 days)
x on 8 Sep 2011
in my paper i need to calculate exp() in my code i got exp(4096) but due to this i am getting NAN+inf in all larger value areas..what to do for this?whether tis indicates any error or this NAN+inf for some values are acceptable?

Accepted Answer

Walter Roberson
Walter Roberson on 8 Sep 2011
Which MATLAB version are you using?
Please use size() and iscomplex() on the result variable to see if it is perhaps a complex number.
If you are contemplating using values that large, you should check to see if you can find a way to rewrite the calculation using the log of the values instead. That will not always be possible but when values that large are being discussed, it is not uncommon for there to be a log transformation of the problem.
exp(4096) is, by the way, approximately 7.416480782e1778
If you must use such large values and it is not possible to do a log transformation, then you probably need to use the symbolic toolbox, possibly with a large Digits setting.
Walter Roberson
Walter Roberson on 8 Sep 2011
Use my large_exp() function instead of exp(), but then make appropriate adjustments for the fact that large_exp() returns a pair of numbers, the first being the mantissa, and the second being the power of 10.
But I still think it is more likely that you can work with the log() of the equations, never taking the exp() of 4096.

Sign in to comment.

More Answers (1)

Paulo Silva
Paulo Silva on 8 Sep 2011
Can you please tell my why are you trying to get a result from exp(4096)? you do know that the result would be a very huge number, MATLAB can't find it.
Walter Roberson
Walter Roberson on 8 Sep 2011
What would you _like_ the result to come out as if the determinant turns out to be negative ?

Sign in to comment.


No tags entered yet.

Community Treasure Hunt

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

Start Hunting!

Translated by