How to avoid NAN in a integration?

5 views (last 30 days)
smashing
smashing on 1 Apr 2014
Commented: smashing on 1 Apr 2014
I don't know how to set the intevals of a integral to get the best precise result.
For example:This is the orginal definition of the formula.
y=integral(@(x) log2((f1(x))./(f2(x))), -inf, inf).
Note: f1(x)->0 and f2(x)->0 when x->-inf or inf, and the decreasing speeds are different.
If I use [-inf, inf] Matlab gives me NAN.
If I narrow down the inteval, Matlab gives a number. But if I increas the inteval a little bit, I get another number. So I am wondering how to deal this kind of integral calculation? How to make it as precise as possible without NAN?
Thanks a lot.
  2 Comments
Andrew Sykes
Andrew Sykes on 1 Apr 2014
It's not clear from your description of the problem that the integral will converge. For this integral to converge, you will need;
f1(x)./f2(x) -> 1 as x -> -inf or inf
(this condition alone won't suffice, but first check that this is indeed the case).
smashing
smashing on 1 Apr 2014
Hi Andrew, I tried a solution and it seems ok: y=integral(@(x) log2((f1(x))./(f2(x)+eps)+eps), -inf, inf).

Sign in to comment.

Answers (0)

Categories

Find more on Performance and Memory in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!