预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共23页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

为等距节点的步长4、变步长方法记以上方法在计算yn+1时,仅用到yn,因而成为一步法如线性多步法的一般形式为§6.6方程组及高阶问题 一阶方程组 对于一阶微分方程组的初值问题:设xi=x0+ih(i=1,2,3,……),yi,zi为节点xi上的近似解,则有改进的欧拉格式为:再如经典R-K格式为:对于具有三个或三个以上方程的方程组的初值问题,也可用类似方法处理.。用经典R-K方法求解,按(6. 2、改进的Euler公式 另一个是控制飞行器运动姿态的系统,由于惯性小, 如果,则(*)式称为显式k步法; tic,[t,y]=ode23s('examstiff',[0,10],y0);toc x0=[0,0,eps]'; 2高阶方程 当上式成立时,即可以作为的近似值 对于一阶微分方程组的初值问题: 0,-10,10; 与此对应的还有多步法,在计算yn+1时,不仅用到yn, 取h=0. 如果,则(*)式称为隐式k步法; 这是一个一阶微分方程组的初值问题,对此可用节中的方法来求解。 改进的欧拉法具有2阶精度 Ode23s刚性,单步法,采用2阶Rosenbrock法,精度较低,可解决ode15s效果不好的刚性方程.(6.8)上述方法同样可以用来处理三阶或更高阶的微分方程(或方程组)的初值问题。用经典R-K方法求解,按(6.7)及(6.8)进行计算: 取h=0.1,因而实际计算时,只需考察 上述方法同样可以用来处理三阶或更高阶的微分方程(或方程组)的初值问题。 如果,则(*)式称为隐式k步法; xdot=[-8/3,0,x(2); 例如用经典R-K方法为 令新变量,代入(6. 速度相差十分悬殊的子系统,一个是控制飞行器质心运动的系 特别的P<=4时,可得到P阶精度算法 可以将原先单个方程中的f和y看作向量来处理,这样就可把前面介绍的各种算法推广到一阶方程组中应用。 另一个是控制飞行器运动姿态的系统,由于惯性小, 用经典R-K方法求解,按(6. Ode23tb刚性,TR-BDF2,即R-K的第一级用梯形法则,第二级用Gear法. 更好的办法是根据精度自动地选择步长h 3、Runge-Kutta(龙格-库塔)方法 统,当飞行器速度较大时,质心运动惯性较大,因而相对来说 相对来说变化很快,因而整个系统就是一个刚性系统。 Ode15s刚性,多步法,采用Gear’s(或BDF)算法,精度中等. 可以将原先单个方程中的f和y看作向量来处理,这样就可把前面介绍的各种算法推广到一阶方程组中应用。16然后计算i=1时的K1,L1,K2,L2,K3,L3,K4,L4,y2和z2;再计算i=2时K1,L1,…,y3和z3;………依此类推,直到i=9时的y10和z10,即可得到数值解: 。 Ode23非刚性,单步法,二三阶Runge-Kutta,精度低 Ode45非刚性,单步法,四五阶Runge-Kutta,精度较高,最常用 Ode113非刚性,多步法,采用可变阶(1-13)AdamsPECE算法,精度可高可低 Ode15s刚性,多步法,采用Gear’s(或BDF)算法,精度中等.如果ode45很慢,系统可能是刚性的,可试此法 Ode23s刚性,单步法,采用2阶Rosenbrock法,精度较低,可解决ode15s效果不好的刚性方程. Ode23t适度刚性,采用梯形法则,适用于轻微刚性系统,给出的解无数值衰减. Ode23tb刚性,TR-BDF2,即R-K的第一级用梯形法则,第二级用Gear法.精度较低,对于误差允许范围比较差的情况,比ode15s好.functionxdot=lorenz(t,x) xdot=[-8/3,0,x(2); 0,-10,10; -x(2),28,-1]*x; x0=[0,0,eps]'; [t,x]=ode23('lorenz',[0,100],x0); plot3(x(:,1),x(:,2),x(:,3)); plot(x(:,1),x(:,2)); plot(x(:,2),x(:,3)); plot(x(:,1),x(:,3));21functionyp=examstiff(t,y) yp=[-2,1;998,-998]*y+[2*sin(t);999*(cos(t)-sin(t))]; y0=[2;3]; tic,[t,y]=ode113('examstiff',[0,10],y0);toc tic,[t,y]=ode45('examstiff',[0,10],y0);toc tic,[t,y]=ode23('examstiff',[0,10],y0);toc tic,[t,y]=ode23s('examstiff',[0,10],y0);toc tic,[t,y]=ode15s('examstiff',[0,