阶常微分方程的初值问题.ppt
《阶常微分方程的初值问题.ppt》由会员分享,可在线阅读,更多相关《阶常微分方程的初值问题.ppt(37页珍藏版)》请在三一文库上搜索。
1、Ordinary Differential Equations,ODE,一阶常微分方程的初值问题: 节点:x1x2 xn 步长 为常数,一 欧拉方法(折线法) yi+1=yi+h f(xi,yi) (i =0,1, , n-1) 优点:计算简单。 缺点:一阶精度。 二 改进的欧拉方法,改进的欧拉公式可改写为 它每一步计算f(x,y)两次,截断误差为O(h3),精确解:,function t,y = Heun(ode,tspan,h,y0) t = (tspan(1):h:tspan(end); n = length(t); y = y0*ones(n,1); for i=2:n k1 = fe
2、val(ode,t(i-1),y(i-1); k2 = feval(ode,t(i),y(i-1)+h*k1); y(i) = y(i-1)+h*(k1+k2)/2; end,三 龙格库塔法(Runge-Kutta) 欧拉公式可改写为 它每一步计算 f (xi,yi) 一次,截断误差为O(h2),标准四阶龙格库塔公式 每一步计算 f (x, y) 四次,截断误差为O(h5),对于两个分量的一阶常微分方程组,用经典4阶 Runge-Kutta 法求解的格式为,n 级显式Runge-Kutta 方法的一般计算格式:,其中,Adams 外插公式(Adams-Bashforth 公式)是一类 k+1
3、步 k+1 阶显式方法 三步法(k=2),四步法(k=3),Adams 内插公式(Adams-Moulton 公式)是一类 k+1 步 k+2 阶隐式方法 三步法(k=2),Adams 预估-校正方法(Adams-Bashforth-Moulton 公式) 一般取四步外插法与三步内插法结合。,#include #include #include #define TRUE 1 main() int nstep_pr, j, k; float h, hh, k1, k2, k3, k4, t_old, t_limit, t_mid, t_new, t_pr, y, ya, yn; double f
4、un(); printf( n Fourth-Order Runge-Kutta Scheme n ); while(TRUE) printf( Interval of t for printing ?n ); scanf( %f, ,do for( j = 1; j = nstep_pr; j+ ) t_old = t_new; t_new = t_new + h; yn = y; t_mid = t_old + hh; yn = y; k1 = h*fun( yn, t_old ); ya = yn + k1/2; k2 = h*fun( ya, t_mid ); ya = yn + k2
5、/2; k3 = h*fun( ya, t_mid ); ya = yn + k3 ; k4 = h*fun( ya, t_new ); y = yn + (k1 + k2*2 + k3*2 + k4)/6; printf( %12.5f %15.6e n, t_new, y ); while( t_new = t_limit ); printf( -n ); printf( Maximum t limit exceeded n ); printf( Type 1 to continue, or 0 to stop.n ); scanf( %d, ,double fun(y, t) float
6、 y, t; float fun_v; fun_v = -y; return( fun_v ); ,四 误差的控制 我们常用事后估计法来估计误差,即从xi出发,用两种办法计算y(xi+1)的近似值。 记 为从xi出发以h为步长得到的y(xi+1)的 近似值,记 为从xi出发以 h/2 为步长跨 两步得到的y(xi+1)的近似值。设给定精度为。如果不等式 成立,则 即为y(xi+1)的满足精度要求的近似值。,自适应: 使用2个不同的h。如果一个大的h和一个小的h得到的解相同,那么减小h就没有意义了;相反如果两个解差别大,可以假设大h值得到的解是不精确的。 使用相同的h值,2种不同的算法。如果低精
7、度算法与高精度算法的结果相同,则没有必要减小h。,Ode23 非刚性, 单步法, 二三阶Runge-Kutta,精度低 Ode45非刚性, 单步法, 四五阶Runge-Kutta,精度较高,最常用 Ode113非刚性, 多步法, 采用可变阶(1-13)Adams PECE 算法, 精度可高可低 Ode15s 刚性, 多步法,采用Gears (或BDF)算法, 精度中等. 如果ode45很慢, 系统可能是刚性的,可试此法 Ode23s 刚性, 单步法, 采用2阶Rosenbrock法, 精度较低, 可解决ode15s 效果不好的刚性方程. Ode23t 适度刚性, 采用梯形法则,适用于轻微刚性系
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微分方程 初值问题
链接地址:https://www.31doc.com/p-8935755.html