How to avoid NAN in a integration?

2 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)

Community Treasure Hunt

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

Start Hunting!