How to integrate this function numerically?
    7 views (last 30 days)
  
       Show older comments
    
    Mohamed Nedal
 on 14 Dec 2019
  
    
    
    
    
    Commented: Mohamed Nedal
 on 15 Dec 2019
            Hello everyone, 
I'm stuck at this equation and I want to integrate it numerically  

where 

and r = 695510, a = -0.0021, b = 1.34, Wo = 438.1 
I need to integrate the first equation numerically to get V as a function of R 
Numerical integration from R = 10, where it is assumed V = U, to 215 should give V(R). 
I appreciate your help. 
Thank you, 
2 Comments
  Walter Roberson
      
      
 on 14 Dec 2019
				Is e the base of the natural logarithms? And is it acting as a constant multiplier or is e being raised to the part after it?
Accepted Answer
  Chuguang Pan
      
 on 14 Dec 2019
        You can use Euler formula. V(n+1)=V(n)+h*f(R,V(n)), which f(R,V) is the right side of differential equation.
But you need to know the initial value V(10).
r=695510;a=-0.0021;b=1.34;Wo=438.1;
h=0.1;%Integral step size, you can change this value
N=100;%It means that you want to integral from 10 to 10+h*N
V=zeros(1,N+1);%Initialization V array
V(1)=?;%Need to know the initial value V(10)
for n=1:N
    R=10+(n-1)*h;
    W=Wo*sqrt(1-exp(1)*(2.8-R)/8.1);
    V(n+1)=V(n)+h*r*a*R^(-b)*(1-W/V(n));
end
X=10+(0:N)*h;
Y=V;
plot(X,Y);
12 Comments
  Chuguang Pan
      
 on 15 Dec 2019
				result_V=zeros(1,length(Vtest));% save last V for every Vtest
result_t=zeros(1,length(Vtest));% save last t for every Vtest 
for i=1:length(Vtest) %for every Vtest
    V=zeros(1,N+1);
    V(1)=Vtest(i);
    %do the computing
    result_V=V(end); %using end to index last value of array V
    result_t=t(end); %using end to index last value of array t
end
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


