武汉大学数值分析课件第8讲常微分方程数值解法(编辑修改稿)内容摘要:

iy)2/( 1hiy  )( 1)2/( 1 hihi yy)2/( 1hiy 自适应: 使用 2个不同的 h。 如果一个大的 h和一个小的 h得到的解相同,那么减小 h就没有意义了;相反如果两个解差别大,可以假设大 h值得到的解是不精确的。 使用相同的 h值, 2种不同的算法。 如果低精度算法与高精度算法的结果相同,则没有必要减小 h。 Ode23 非刚性 , 单步法 , 二三阶 RungeKutta,精度低 Ode45非刚性 , 单步法 , 四五阶 RungeKutta,精度较高 ,最常用 Ode113非刚性 , 多步法 , 采用可变阶 (113)Adams PECE 算法 , 精度可高可低 Ode15s 刚性 , 多步法 ,采用 Gear’s (或 BDF)算法 , 精度中等 . 如果 ode45很慢 , 系统可能是刚性的 ,可试此法 Ode23s 刚性 , 单步法 , 采用 2阶 Rosenbrock法 , 精度较低 , 可解决 ode15s 效果不好的刚性方程 . Ode23t 适度刚性 , 采用梯形法则 ,适用于轻微刚性系统 ,给出的解无数值衰减 . Ode23tb 刚性 , TRBDF2, 即 RK的第一级用梯形法则 ,第二级用 Gear 法 . 精度较低 , 对于误差允许范围比较差的情况 ,比 ode15s好 . Matlab 函数 Matlab’s ode23 (Bogacki, Shampine) ).9865(72),(),432(9),43,43(),21,2(),(4321114321123121kkkkheyhxfkkkkhyyhkyhxfkhkyhxfkyxfknnnnnnnnnnnRungeKuttaFehlberg方法 (RKF45) ).401141041859256535442278,2(),410484551336808216439,(),3272962197720021971932,1312(),329323,83(),41,4(),(543216432153214213121hkhkhkhkhkyhxfkhkhkhkhkyhxfkhkhkhkyhxfkhkhkyhxfkhkyhxfkyxfknnnnnnnnnnnn4阶 RungeKutta近似 hkhkhkhkyz nn 54311 51410421972565140821625 5阶 RungeKutta近似 hkhkhkhkhkyynn 654311 552509564302856112825665613516 局部误差估计 11   nn zyMatlab’s ode45 is a variation of RKF45 0)1( 2  xxxx xxxx211221221)1( xxxxxxVan der Pol: function xdot = vdpol(t,x) xdot(1) = x(2)。 xdot(2) = (x(1)^2 1)*x(2) x(1)。 xdot = xdot39。 % VDPOL must return a column vector. % xdot = [x(2)。 (x(1)^2 1)*x(2) x(1)]。 % xdot = [0 , 1。 1 ,(x(1)^2 1)] *x。 t0 = 0。 tf = 20。 x0 = [0。 ]。 [t,x] = ode45(@vdpol,[t0,tf],x0)。 plot(t,x)。 figure(101) plot(x(:,1),x(:,2))。 Lorenz吸引子 function xdot = lorenz(t,x) xdot = [ 8/3, 0, x(2)。 0, 10, 10。 x(2), 28, 1]*x。 x0 = [0,0,eps]39。 [t,x] = ode23(39。 lorenz39。 ,[0,100],x0)。 plot3(x(:,1),x(:,2),x(:,3))。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。