How to avoid NAN in a integration?

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

Andrew Sykes
Andrew Sykes 2014년 4월 1일
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 2014년 4월 1일
Hi Andrew, I tried a solution and it seems ok: y=integral(@(x) log2((f1(x))./(f2(x)+eps)+eps), -inf, inf).

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

답변 (0개)

카테고리

질문:

2014년 4월 1일

댓글:

2014년 4월 1일

Community Treasure Hunt

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

Start Hunting!

Translated by