NaN (not a number) in numerical integration
조회 수: 9 (최근 30일)
이전 댓글 표시
I am trying to integrate the following expression over the variable alpha
ep=0.2;
u=0.2;
lam=0.7;
n=1000;
f=@(alpha) power((1-ep+ep*exp(u^(-1)*alpha)),n).*lam^(-1).*exp(-lam^(-1)*alpha);
out = quad(f,0,Inf)
When I try to solve this, I get NaN value. How can I solve this problem?
Thanks
댓글 수: 2
Sulaymon Eshkabilov
2021년 11월 3일
Could you ples show your equation written in math formulation format (not MATLAB embedded code)?
채택된 답변
Walter Roberson
2021년 11월 3일
ep=0.2;
u=0.2;
lam=0.7;
n=1000;
f=@(alpha) power((1-ep+ep*exp(u^(-1)*alpha)),n).*lam^(-1).*exp(-lam^(-1)*alpha);
out = quad(f,0,Inf)
syms A
fa = f(A)
limit(fa, A, 0)
limit(fa, A, inf)
Look at your expression. You have an exponential in alpha, being raised to 1000. With alpha starting from 0, the expression being raised to 1000 has a minimum value of 1, so raising the value to 1000 is going to increase rapidly.
If you ignore the +4/5 then you can see that you have exp(-10/7 alpha) * exp(5000 alpha), which combines to roughly exp(4999 alpha). Clearly that is going to give you an infinite integral when you go as far as alpha = infinity
댓글 수: 0
추가 답변 (1개)
the cyclist
2021년 11월 3일
Looks like your function becomes infinite. Here's a plot zooming in where it happens
ep=0.2;
u=0.2;
lam=0.7;
n=1000;
f=@(alpha) power((1-ep+ep*exp(u.^(-1).*alpha)),n).*lam.^(-1).*exp(-lam.^(-1).*alpha);
out = quad(f,0,Inf)
a = 0.36:1.e-6:0.37;
figure
plot(a,f(a))
댓글 수: 0
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!