[SS03数值积分法仿真.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文档。上传文档
查看更多
[SS03数值积分法仿真

数值积分的基本性能 数值积分算法的性能包含: 定性特征:稳定性 时间粒度:计算速度 空间粒度:计算精度 不同的数值积分方法的具有不同的稳定性。 同一个模型采用不同的积分算法和不同的积分步长h,稳定性不同。 计算速度和计算精度 各种数值积分方法的差分方程是对原微分方程的近似逼近,并且因为计算机的字长有限,存在明显的截断误差。 这些误差都和计算步距h密切相关,所以计算步距是影响计算精度、速度和稳定性的重要因素。 h取得较大,计算时间少,截断误差大; h取得较小,截断误差就会减小,但在给定时间范围内,计算次数必然增加,使误差积累增加。 截断误差、累计舍入误差与步长h 截断误差、累计舍入误差与步长h关系如图。 3.1 预报公式 3.2 校正公式 3.3 Adams公式 根据前面的分析,我们可以将预报和校正公式统一写成: 显式Adams系数 隐式Adams系数 3.4 多步法的特点 与单步法相比,相同精度下,使用过去多步信息,计算量小。 隐式法的精度高,稳定性好,但在计算y(n+k)时需要用到f[y(n+k),t(n+k)],只能采用迭代法计算。 缺点之一是不能自启动,需用单步法计算初始值才能启动计算。 4.2 一般算法的稳定性分析 根据上例可得数值积分方法稳定域的一般方法。 设系统测试方程为: 而数值积分公式为: 只有当 时,算法稳定。 各种数值积分算法的稳定域参见书P96图3.9 主要算法的稳定性 一阶、二阶Admas法为恒稳算法,其他算法条件稳定。 除恒稳法外,其他算法的步长h必须限制在最小时间的数量级 对龙格-库塔法,阶次k增大,稳定域略微增大。 对Admas法,阶次k增大,稳定域反而缩小。 第五节 Matlab实现 ODE (Ordinary Differentaial equation)解法 模型描述 算法描述 算法仿真 微分方程模型描述 Lorenz曲线 数值积分算法描述 matlab中的数值积分算法函数的格式如下: function [tout,yout] =solver(ModelName,tspan,x0,option) 数值积分算法描述 %一阶Euler算法,filename:svEuler function [tout,yout] =svEuler(odeFcn,tspan,y0) t0=tspan(1);t1=tspan(2); if length(tspan)3, h=(t1-t0)/1000; else h=tspan(3); tout = [t0:h:t1]; N =length(y0); M =length(tout)-1; tout = [t0:h:t1]; yout=[y0;zeros(M,N)]; for i=1:M k1 = h*feval(odeFcn,tout(i),y0); y0=y0+k1; yout(i+1,:)=y0; end end 数值积分算法描述 function [tout,yout] =svRungeKutta4(odeFcn,tspan,y0) t0=tspan(1);t1=tspan(2); if length(tspan)3, h=(t1-t0)/1000; else h=tspan(3); tout = [t0:h:t1]; N =length(y0); M =length(tout)-1; tout = [t0:h:t1]; yout=[y0;zeros(M,N)]; for i=1:M k1 = h*feval(odeFcn,tout(i), y0); k2 = h*feval(odeFcn,tout(i)+h/2, y0+0.5*k1); k3 = h*feval(odeFcn,tout(i)+h/2,y0+0.5*k2); k4 = h*feval(odeFcn,tout(i)+h, y0+k3); y0=y0+(k1+2*k2+2*k3+k4)/6; yout(i+1,:)=y0; end end 微分方程模型描述 在Matlab文件中调用方法为: [t,y]=svEuler(@eqLorenz,[0,100],x0); ode45 ODE45 Solve non-stiff differential equations, medium order method. [TOUT,YOUT] = ODE45(ODEFUN,TSPAN,Y0) with TSPAN = [T0 TFINAL] integrates the system of di

文档评论(0)

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

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

1亿VIP精品文档

相关文档