微分方程的数值解法matlab(四阶龙格—库塔法)教学内容.ppt
《微分方程的数值解法matlab(四阶龙格—库塔法)教学内容.ppt》由会员分享,可在线阅读,更多相关《微分方程的数值解法matlab(四阶龙格—库塔法)教学内容.ppt(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 微分方程微分方程(wi fn fn chn)的数值解法的数值解法四阶龙格四阶龙格库塔法库塔法(The Fourth-Order RungeKutta Method)第一页,共36页。常微分方程常微分方程(wi fn fn chn)(Ordinary differential equations,ODE)n初值问题初值问题-给出初始值给出初始值n边值问题边值问题-给出边界条件给出边界条件与初值常微分方程与初值常微分方程(wi fn fn chn)解算有关的指令解算有关的指令ode23 ode45 ode113 ode23tode15s ode23sode23tb第二页,共36页。一一.解解OD
2、E的基本的基本(jbn)机理机理:2.把把高高阶阶方方程程(fngchng)转转换换成成一一阶阶微微分方程分方程(fngchng)组组1.列出微分方程列出微分方程(wi fn fn chn)初始条件初始条件令令(2.1)(2.2)(2.3)第三页,共36页。例:著名例:著名(zhmng)的的Van der Pol方程方程令令 降为一阶降为一阶初始条件初始条件第四页,共36页。3.根据根据(gnj)式式(2.2)编写计算导数的编写计算导数的M函数函数文件文件-ODE文件文件把把t,Y作为作为(zuwi)输入宗量,把输入宗量,把 作为作为(zuwi)输出宗量输出宗量%M function file
3、 name:dYdt.m function Yd=f(t,Y)Yd=f(t,Y)的展开式的展开式例例Van der Pol方程方程(fngchng)%M function file name:dYdt.m function Yd=f(t,Y)Yd=zeros(size(Y);第五页,共36页。4.使编写使编写(binxi)好的好的ODE函数文件和初值函数文件和初值 供微分方程解算指令(供微分方程解算指令(solver)调用)调用Solver解算指令解算指令(zhlng)的的使用格式使用格式t,Y=solver(ODE函数文件名函数文件名,t0,tN,Y0,tol);ode45输出输出(shch
4、)宗宗量形式量形式说明:说明:t0:初始时刻;:初始时刻;tN:终点时刻:终点时刻Y0:初值;:初值;tol:计算精度:计算精度第六页,共36页。例题例题1:著名:著名(zhmng)的的Van der Pol方程方程%主程序主程序(chngx)(程序(程序(chngx)名:名:VanderPol _ex1.m)t0=0;tN=20;tol=1e-6;Y0=0.25;0.0;t,Y=ode45(dYdt,t0,tN,Y0,tol);subplot(121),plot(t,Y)subplot(122),plot(Y(:,1),Y(:,2)解法解法1:采用:采用(ciyng)ODE命令命令第七页,共
5、36页。Van der Pol方程方程(fngchng)%子程序子程序(chngx)(程序(程序(chngx)名:名:dYdt.m)function Ydot=dYdt(t,Y)Ydot=Y(2);-Y(2)*(Y(1)2-1)-Y(1);或写为或写为function Ydot=dYdt(t,Y)Ydot=zeros(size(Y);Ydot(1)=Y(2);Ydot(2)=-Y(2)*(Y(1).2-1)-Y(1);第八页,共36页。第九页,共36页。解法指令解题类型特 点适合场合ode45非刚性非刚性采用采用4、5阶阶RungeKutta法法大多数场合的首选算法大多数场合的首选算法ode2
6、3非刚性非刚性采用采用Adams算法算法较低精度(较低精度(103)场合)场合ode113非刚性非刚性多步法;采用多步法;采用Adams算法;高算法;高低精度均可(低精度均可(103106)ode45计算时间太长时计算时间太长时取代取代ode45ode23t适度刚适度刚性性采用梯形法则算法采用梯形法则算法适度刚性适度刚性ode15s刚性刚性多步法;采用多步法;采用2阶阶Rosenbrock算式,精度中等算式,精度中等当当ode45失败时使用;失败时使用;或存在质量矩阵时或存在质量矩阵时ode23s刚性刚性一步法;采用一步法;采用2阶阶Rosenbrock算式,低精度算式,低精度低精度时,比低精
7、度时,比ode15s有有效;或存在质量矩阵时效;或存在质量矩阵时ode23tb刚性刚性采用梯形法则反向数值微分两采用梯形法则反向数值微分两阶段算法,低精度阶段算法,低精度低精度时,比低精度时,比ode15s有有效;或存在质量矩阵时效;或存在质量矩阵时各种各种solver 解算指令解算指令(zhlng)的特点的特点第十页,共36页。二二.四四 阶阶 Runge-Kutta 法法对对 I=a,b作分割作分割(fng)步长第十一页,共36页。初值问题的数值初值问题的数值解法分为两大类解法分为两大类单步法-Runge-Kutta 方法(fngf)多步法-Admas方法(fngf)计算 的近似值 时只用
8、到 ,是自开始方法 uRunge-Kutta法是常微分方程的一种(y zhn)经典解法uMATLAB 对应命令:ode45第十二页,共36页。四阶四阶Runge-Kutta公式公式(gngsh)第十三页,共36页。四四 阶阶 Runge-Kutta 法计算法计算(j sun)流程图流程图开始开始(kish)Next ifor i=1:N Plot初始条件:初始条件:;积分步长:积分步长:迭代次数:迭代次数:输出(shch)结果子程序计算End第十四页,共36页。三三.Runge-Kutta 法解法解Van der Pol 方程的方程的Matlab 程序结构程序结构主程序:主程序:RK_vand
9、erpol.m 子程序:子程序:RK_sub.m(函数(函数(hnsh)文件)文件)第十五页,共36页。解法解法2:采用:采用(ciyng)Runge_Kutta法编程计法编程计算算主程序:主程序:RK_vanderpol.mt0=0;tN=20;y0=0.25;0;h=0.001;t=t0:h:tN;N=length(t);j=1;for i=1:N t1=t0+h;K1=RK_sub(t0,y0);K2=RK_sub(t0+h/2,y0+h*K1/2);K3=RK_sub(t0+h/2,y0+h*K2/2);K4=RK_sub(t0+h,y0+h*K3);y1=y0+(h/6)*(K1+2
10、*K2+2*K3 +K4);yy1(j)=y1(1);yy2(j)=y1(2);t0=t1;y0=y1;j=j+1;endsubplot(121),plot(t,yy1,t,yy2);gridsubplot(122),plot(yy2,yy1);grid第十六页,共36页。第十七页,共36页。子程序:子程序:RK_sub.m function ydot=vdpol(t,y)ydot=zeros(size(y);ydot(1)=y(2);ydot(2)=-y(2)*(y(1)2-1)-y(1);或写为:或写为:ydot=y(1);-y(2)*(y(1)2-1)-y(1);第十八页,共36页。四四
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微分方程 数值 解法 matlab 四阶龙格 库塔法 教学内容
限制150内