注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Mr.Right

不顾一切的去想,于是我们有了梦想。脚踏实地的去做,于是梦想成了现实。

 
 
 

日志

 
 
关于我

人生一年又一年,只要每年都有所积累,有所成长,都有那么一次自己认为满意的花开时刻就好。即使一时不顺,也要敞开胸怀。生命的荣枯并不是简单的重复,一时的得失不是成败的尺度。花开不是荣耀,而是一个美丽的结束,花谢也不是耻辱,而是一个低调的开始。

网易考拉推荐

4阶龙格-库塔(Runge-kutta)算法MATLAB实现与ode45验证  

2015-06-20 09:15:45|  分类: 编程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
缘起:龙格库塔算法解微分方程的名声显赫,但是自己一直没有编程实现过,没有亲证其效果,总感觉没有学懂、掌握的不牢固。花了一个多小时的时间,将算法的理论、MATLAB实现以及ode45验证总结了下。分享出来希望能对后来同样感到没学懂的人有所帮助。今天是端午节,祝大家端午安康、吉祥如意!

(1)理论

4阶龙格-库塔(Runge-kutta)算法MATLAB实现与ode45验证 - 阿英 - Mr.Right
 
(2)Matlab实现和ode45验证
clc;                                               % Clears the screen
clear all;

h=0.25;                                             % step size
% xf, x location at where you wish to see the solution to the ODE
xf=3 ;
x = 0:h:xf; % Calculates upto xf
y = zeros(1,length(x)); 
y(1) = 1; % initial condition, y(0)
% ODE, y' = (t - y)/2, y(0) = 1
F_xy = @(t, y) (t - y)/2; % change the function as you desire

for i=1:(length(x)-1) % calculation loop
    k_1 = F_xy(x(i),y(i));
    k_2 = F_xy(x(i)+0.5*h,y(i)+0.5*h*k_1);
    k_3 = F_xy((x(i)+0.5*h),(y(i)+0.5*h*k_2));
    k_4 = F_xy((x(i)+h),(y(i)+k_3*h));

    y(i+1) = y(i) + (1/6)*(k_1+2*k_2+2*k_3+k_4)*h;  % main equation
end


% The following finds what is called the 'Exact' solution
x0 = x(1); y0 = y(1);
xspan = [x0 xf];
[x_ode45, y_ode45] = ode45(F_xy,xspan,y0);

% Plotting the Exact and Approximate solution of the ODE.
hold on
xlabel('x');ylabel('y');
title('Exact and Approximate Solution of the ODE by the 4th Order Runge-Kutta Method');
plot(x_ode45,y_ode45,'--','LineWidth',2,'Color',[0 0 1]);            
plot(x,y,'-','LineWidth',2,'Color',[0 1 0]);
legend('Exact','Approximation');
4阶龙格-库塔(Runge-kutta)算法MATLAB实现与ode45验证 - 阿英 - Mr.Right
 
  评论这张
 
阅读(2813)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016