9、常微分方程初值问题数值解法.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
§1 引 言 §2 简单的数值方法与基本概念 §3 龙格—库塔(Runge-Kutta)法 §4 收敛性与稳定性 §5 线性多步法 n=5;h=1/n; x=0:h:1; y(1)=1; for i=1:n k1=-20*y(i); k2=-20*(y(i)+h/2*k1); k3=-20*(y(i)+h/2*k2); k4=-20*(y(i)+h*k3); y(i+1)=y(i)+h/6*(k1+2*k2+2*k3+k4); end format short e; x,y 选做:P382, 7. 一、线性多步法的一般公式 二、Adams显式与隐式公式 三、米尔尼方法与辛普森方法(P366) 四、汉明方法(P367) 五、预测—校正方法(P368) * 第9章 常微分方程初值问题数值解法 一、欧拉法和后退欧拉法 clear; y=1, x=0, %初始化 for n=1:10 y=1.1*y-0.2*x/y, x=x+0.1, end y = 1 x = 0 y = 1.1000 x = 0.1000 y = 1.1918 x = 0.2000 y = 1.2774 x = 0.3000 y = 1.3582 x = 0.4000 y = 1.4351 x = 0.5000 y = 1.5090 x = 0.6000 y = 1.5803 x = 0.7000 y = 1.6498 x = 0.8000 y = 1.7178 x = 0.9000 y = 1.7848 x = 1.0000 二、梯形方法 三、单步法的局部截断误差与阶 四、改进的欧拉公式(预测—校正法) clear x=0,yn=1 %初始化 for n=1:10 yp=yn+0.1*(yn-2*x/yn); %预测 x=x+0.1; yc=yn+0.1*(yp-2*x/yp) ; yn=(yp+yc)/2 %校正 end 作业:P381, 1, 2(1). 一、显式龙格—库塔法的一般形式 二、二阶显式龙格—库塔方法 三、三阶与四阶显式R—K方法 阶数p和段数r(计算函数值次数)的关系 1 2 3 4 4 5 6 r-2 p 1 2 3 4 5 6 7 r≥8 r 解:h=0.2; x=0:0.2:1; y(1)=1; for i=1:5, k1=y(i)-2*x(i)/y(i); k2=y(i)+h/2*k1-(2*x(i)+h)/(y(i)+h/2*k1); k3=y(i)+h/2*k2-(2*x(i)+h)/(y(i)+h/2*k2); k4=y(i)+h*k3-2*(x(i)+h)/(y(i)+h*k3); y(i+1)=y(i)+h/6*(k1+2*k2+2*k3+k4); end x,y x = 0 0.2000 0.4000 0.6000 0.8000 1.0000 y = 1.0000 1.1832 1.3417 1.4833 1.6125 1.7321 四、变步长R—K方法 选择步长问题的提出. 选择步长问题的两个考虑: 怎样衡量和检验计算结果的精度? 如何依据所获得的精度处理步长? 通过步长加倍或减半处理步长的方法称为变步长方法. 作业:P381, 2(1), 5(1). 一、收敛性与相容性 二、绝对稳定性与绝对稳定性域 h=0.025; x=0:0.025:0.1; y1(1)=1;y2(1)=1; for i=1:4 y1(i+1)=-1.5*y1(i); end for i=1:4 y2(i+1)=y2(i)/3.5; end t=0:0.001:0.1; w=exp(-100*t); plot(x,y1,+,x,y2,.,t,w,-) *

文档评论(0)

wpxuang12 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档