NaN (not a number) in numerical integration
    7 views (last 30 days)
  
       Show older comments
    
    Muna Tageldin
 on 3 Nov 2021
  
    
    
    
    
    Answered: Walter Roberson
      
      
 on 3 Nov 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 Comments
  Sulaymon Eshkabilov
      
 on 3 Nov 2021
				Could you ples show your equation written in math formulation format (not MATLAB embedded code)?
Accepted Answer
  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)
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 Comments
More Answers (1)
  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)
a = 0.36:1.e-6:0.37;
figure
plot(a,f(a))
0 Comments
See Also
Categories
				Find more on Linear Algebra 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!






