收藏 分销(赏)

一阶常微分方程的初值问题求解.doc

上传人:pc****0 文档编号:6864626 上传时间:2024-12-22 格式:DOC 页数:4 大小:68.50KB 下载积分:10 金币
下载 相关 举报
一阶常微分方程的初值问题求解.doc_第1页
第1页 / 共4页
一阶常微分方程的初值问题求解.doc_第2页
第2页 / 共4页


点击查看更多>>
资源描述
一阶常微分方程的初值问题 1.欧拉方法 欧拉公式: 算法(欧拉方法) (1)给定整数N; (2); (3) (4)对k=2,3,…N+1做: (5)返回 基于欧拉方法的Matlab程序如下: function [x,y]=odeEuler(f,y0,a,b,h) n=(b-a)/h; x=a:h:b; y(1)=y0; for i=1:n y(i+1)=y(i)+h*feval(f,x(i),y(i)); end 2.改进的欧拉公式: 算法(改进欧拉方法): (1) 给定整数N; (2) ; (3) (4) 对k=2,3,…N+1做: (5) 返回 基于改进欧拉方法的Matlab程序如下: function [x,y]=odeIEuler(f,a,b,y0,h) n=(b-a)/h; x=a:h:b; y(1)=y0; for i=1:n k1=h*feval(f,x(i),y(i)); k2=h*feval(f,x(i+1),y(i)+k1); y(i+1)=y(i)+0.5*(k1+k2); end 3.一类应用广泛的高精度的显式单步法-----龙格-库塔(Runge-Kutta)方法,简称R-K方法 标准四阶四段龙格-库塔公式 算法(标准四阶四段龙格-库塔方法) (1)给定整数N; (2); (3) (4)对k=2,3,…N+1做: (5)返回 基于标准四阶四段龙格-库塔方法Matlab程序如下: function [x,y]=oderk4(f,a,b,h,y0) n=(b-a)/h; x=a:h:b; y(1)=y0; for i=1:n; k1=h*feval(f,x(i),y(i)); k2=h*feval(f,x(i)+h/2,y(i)+k1/2); k3=h*feval(f,x(i)+h/2,y(i)+k2/2); k4=h*feval(f,x(i)+h,y(i)+k3); y(i+1)=y(i)+1/6*(k1+2*k2+2*k3+k4); end 其中:f为常微分方程的右端项,a,求解区间的左右端点,h为自变量的步长,y0微分方程的初值,x,y分别为计算完成时的自变量取值和对应点上的函数值。 4.标准四阶四段龙格-库塔方法应用实例 function z= f(x,y) z=y-2x/y; function [x,y]=oderk4(f,a,b,h,y0) n=(b-a)/h; x=a:h:b; y(1)=y0; for i=1:n; k1=h*feval(f,x(i),y(i)); k2=h*feval(f,x(i)+h/2,y(i)+k1/2); k3=h*feval(f,x(i)+h/2,y(i)+k2/2); k4=h*feval(f,x(i)+h,y(i)+k3); y(i+1)=y(i)+1/6*(k1+2*k2+2*k3+k4); end 运行结果: >>[x,y]=oderk4(‘f’,0,1,0.1,1) x = Columns 1 through 9 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 Columns 10 through 11 0.9000 1.0000 y = Columns 1 through 9 1.0000 1.0954 1.1832 1.2649 1.3416 1.4142 1.4832 1.5492 1.6125 Columns 10 through 11 1.6733 1.7321
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服