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

上传人:无*** 文档编号:58331810 上传时间:2022-02-27 格式:DOCX 页数:5 大小:55.06KB
返回 下载 相关 举报
阶Runge-Kutta法求解一阶常微分方程_第1页
第1页 / 共5页
阶Runge-Kutta法求解一阶常微分方程_第2页
第2页 / 共5页
阶Runge-Kutta法求解一阶常微分方程_第3页
第3页 / 共5页
点击查看更多>>
资源描述
MATLAB语言及应用大作业姓名:学号:学院:班级:题目编号:2013年10月134阶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)另外根据微分中值定理,存在0t1,使得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/6ki2k22k3kkifxn,ynk2fXnh/2,ynh/2*ki,k3fXnh/2,ynh/2*k2,k4fXnh,ynhk3流程图:(1)、四阶龙格-库塔方法流程图:(2)、实例求解流程图:开始输入求解的自变显范围求出待求简不微分方程的真值解用MATLAB自带函数o加求解待求微分方程用自编函数四阶龙格一比塔(R-K)方法求解计求微分方程结束二、Runge-Kutta的Matlab实现functionx,y=runge_kutta1(ufunc,y0,h,a,b)%参数表顺序依次是微分方程组的函数名称,初始值向量,步长,时间起点,时间终点(参数形式参考了ode45函数)n=floor(b-a)/h);%求步数x(1)=a;%寸间起点y(:,1)=y0;%武初值,可以是向量,但是要注意维数forii=1:nx(ii+1)=x(ii)+h;k1=ufunc(x(ii),y(:,ii);k2=ufunc(x(ii)+h/2,y(:,ii)+h*k1/2);k3=ufunc(x(ii)+h/2,y(:,ii)+h*k22);k4=ufunc(x(ii)+h,y(:,ii)+h*k3);y(:,ii+1)=y(:,ii)+h*(k1+2*k2+2*k3+k4)/6;%按照龙格库塔方法进行数值求解end四、Runge-Kutta的算例实现例:求解常微分方程d(y)/d(x)=-2*y+2*x*x+2*x,0Untitled3
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 营销创新


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!