码迷,mamicode.com
首页 > 其他好文 > 详细

龙格库塔求解常微分方程

时间:2018-12-22 15:02:41      阅读:264      评论:0      收藏:0      [点我收藏+]

标签:微分方程   http   n+1   数值   5*   函数   end   png   font   

fun.m添加微分方程,通过RK递推下一时刻的函数值

 

主函数如下:

n=90;

x=zeros(1,n+1);
y=zeros(1,n+1);
x(1)=0;
y(1) =1;   %初值
h=0.1;

for i =1:n
    
    x(i+1) = x(i) + h;
    
    y(i+1) = RK(@fun,x(i),y(i),h);
    
    
end

plot(x,y,‘-o‘)

 

fun.m如下:y‘ = 2*(1-y/20)*y -x;  

 

function dy= fun(x,y)

dy  = 2*(1-y/20)*y -x;   

 

RK.m如下:

function y = RK(F_xy,x,y,h)


k_1 = F_xy(x,y);

k_2 = F_xy(x+0.5*h,y+0.5*h*k_1);

k_3 = F_xy((x+0.5*h),(y+0.5*h*k_2));

k_4 = F_xy((x+h),(y+k_3*h));


y = y + (1/6)*(k_1+2*k_2+2*k_3+k_4)*h;  

  

 

 结果如下:

技术分享图片

 

 

 

 

 

 

 

 

  

龙格库塔求解常微分方程

标签:微分方程   http   n+1   数值   5*   函数   end   png   font   

原文地址:https://www.cnblogs.com/skylover/p/10160892.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!