NaN (not a number) in numerical integration
9 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Muna Tageldin
el 3 de Nov. de 2021
Respondida: Walter Roberson
el 3 de Nov. de 2021
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 comentarios
Sulaymon Eshkabilov
el 3 de Nov. de 2021
Could you ples show your equation written in math formulation format (not MATLAB embedded code)?
Respuesta aceptada
Walter Roberson
el 3 de Nov. de 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)
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 comentarios
Más respuestas (1)
the cyclist
el 3 de Nov. de 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)
a = 0.36:1.e-6:0.37;
figure
plot(a,f(a))
0 comentarios
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!