1 / 5
文档名称:

阶Runge-Kutta法求解一阶常微分方程.docx

格式:docx   大小:91KB   页数:5页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

阶Runge-Kutta法求解一阶常微分方程.docx

上传人:cby201601 2022/2/23 文件大小:91 KB

下载得到文件列表

阶Runge-Kutta法求解一阶常微分方程.docx

文档介绍

文档介绍:《MATLAB语言及应用》
大作业
姓名:
学号:
学院:
班级:题目编号:
2013年10月13
4阶Runge-Kutta法求解一阶常微分方程。
一、Runge-Kutta法的数学理论
龙格-库塔(Runge-Ku《MATLAB语言及应用》
大作业
姓名:
学号:
学院:
班级:题目编号:
2013年10月13
4阶Runge-Kutta法求解一阶常微分方程。
一、Runge-Kutta法的数学理论
龙格-库塔(Runge-Kutta方法是一种在工程上应用广泛的高精度单步算法。由于此算法精度高,采取措施对误差进行抑制,所以其实现原理也较复杂。该算法是构建在数学支持的基础之上的。龙格库塔方法的理论基础来源于泰勒公式和使用斜率近似表达微分,它在积分区间多预计算出几个点的斜率,然后进行加权平均,用做下一点的依据,从而构造出了精度更高的数值积分计算方法。如果预先求两
个点的斜率就是二阶龙格库塔法,如果预先取四个点就是四阶龙格库塔法。一阶常微分方程可以写作:y'=f(x,y),使用差分概念。
(Yn+1-Yn)/h=f(Xn,Yn1出(近似等于,极限为Yn')
Yn+1=Yn+h*f(Xn,Yn)
另外根据微分中值定理,存在0<t<1,使得
Yn+1=Yn+h*f(Xn+th,Y(Xn+th))
这里K=f(Xn+th,Y(Xn+th)弁为平均斜率,龙格库塔方法就是求得K的一种算法。
利用这样的原理,经过复杂的数学推导(过于繁琐省略),可以得出截断误差为O(hA5)的四阶龙格库塔公式:
K1=f(Xn,Yn);
K2=f(Xn+h2,Yn+(h/2)*K1);
K3=f(Xn+h2,Yn+(h/2)*K2);
K4=f(Xn+h,Yn+h*K3);
Yn+1=Yn+h*(K1+2K2+2K3+K4)*6)
二、Runge-Kutta的算法和流程图
在龙格-库塔法中,四阶龙格-库塔法的局部截断误差约为0(h5),被广泛应用于解微分方程的初值问题。其算法公式为:
yniynh/6ki2k22k3k《kifxn,yn
k2fXnh/2,ynh/2*ki,k3fXnh/2,ynh/2*k2,k4fXnh,ynhk3
流程图:
(1)、四阶龙格-库塔方法流程图:
(2)、实例求解流程图:
开始
输入求解的自变显范围
求出待求简不微分
方程的真值解
用MATLAB自带函数o加
求解待求微分方程
用自编函数四阶龙格一比塔
(R-K)方法求解计求微分方程
结束
二、Runge-Kutta的Matlab实现
function[x,y]=runge_kutta1(ufunc,y0,h,a,b)%参数表