NaN (not a number) in numerical integration

9 views (last 30 days)
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 Comments
Sulaymon Eshkabilov
Sulaymon Eshkabilov on 3 Nov 2021
Could you ples show your equation written in math formulation format (not MATLAB embedded code)?

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 3 Nov 2021
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)
Warning: Infinite or Not-a-Number function value encountered.
out = NaN
syms A
fa = f(A)
fa = 
limit(fa, A, 0)
ans = 
limit(fa, A, inf)
ans = 
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

More Answers (1)

the cyclist
the cyclist on 3 Nov 2021
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)
Warning: Infinite or Not-a-Number function value encountered.
out = NaN
a = 0.36:1.e-6:0.37;
figure
plot(a,f(a))

Categories

Find more on Mathematics 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!