第8讲-常微分方程数值解法_第1页
第8讲-常微分方程数值解法_第2页
第8讲-常微分方程数值解法_第3页
第8讲-常微分方程数值解法_第4页
第8讲-常微分方程数值解法_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

OrdinaryDifferentialEquations,ODE,一阶常微分方程的初值问题:节点:x1x2xn步长为常数,一欧拉方法(折线法)yi+1=yi+hf(xi,yi)(i=0,1,n-1)优点:计算简单。缺点:一阶精度。二改进的欧拉方法,改进的欧拉公式可改写为它每一步计算f(x,y)两次,截断误差为O(h3),精确解:,functiont,y=Heun(ode,tspan,h,y0)t=(tspan(1):h:tspan(end);n=length(t);y=y0*ones(n,1);fori=2:nk1=feval(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步k+1阶显式方法三步法(k=2),四步法(k=3),Adams内插公式(Adams-Moulton公式)是一类k+1步k+2阶隐式方法三步法(k=2),Adams预估-校正方法(Adams-Bashforth-Moulton公式)一般取四步外插法与三步内插法结合。,#include#include#include#defineTRUE1main()intnstep_pr,j,k;floath,hh,k1,k2,k3,k4,t_old,t_limit,t_mid,t_new,t_pr,y,ya,yn;doublefun();printf(nFourth-OrderRunge-KuttaSchemen);while(TRUE)printf(Intervaloftforprinting?n);scanf(%f,dofor(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/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.6en,t_new,y);while(t_new=t_limit);printf(-n);printf(Maximumtlimitexceededn);printf(Type1tocontinue,or0tostop.n);scanf(%d,doublefun(y,t)floaty,t;floatfun_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种不同的算法。如果低精度算法与高精度算法的结果相同,则没有必要减小h。,Ode23非刚性,单步法,二三阶Runge-Kutta,精度低Ode45非刚性,单步法,四五阶Runge-Kutta,精度较高,最常用Ode113非刚性,多步法,采用可变阶(1-13)AdamsPECE算法,精度可高可低Ode15s刚性,多步法,采用Gears(或BDF)算法,精度中等.如果ode45很慢,系统可能是刚性的,可试此法Ode23s刚性,单步法,采用2阶Rosenbrock法,精度较低,可解决ode15s效果不好的刚性方程.Ode23t适度刚性,采用梯形法则,适用于轻微刚性系统,给出的解无数值衰减.Ode23tb刚性,TR-BDF2,即R-K的第一级用梯形法则,第二级用Gear法.精度较低,对于误差允许范围比较差的情况,比ode15s好.,Matlab函数,Matlabsode23(Bogacki,Shampine),Runge-Kutta-Fehlberg方法(RKF45),4阶Runge-Kutta近似,5阶Runge-Kutta近似,局部误差估计,Matlabsode45isavariationofRKF45,VanderPol:,functionxdot=vdpol(t,x)xdot(1)=x(2);xdot(2)=-(x(1)2-1)*x(2)-x(1);xdot=xdot;%VDPOLmustreturnacolumnvector.%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;0.25;t,x=ode45(vdpol,t0,tf,x0);plot(t,x);figure(101)plot(x(:,1),x(:,2);,Lorenz吸引子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);,functionyp=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);toctic,t,y=ode45(examstiff,0,10,y0);toctic,t,y=ode23(examstiff,0,10,y0);toctic,t,y=ode23s(examstiff,0,10,y0);toctic,t,y=ode15s(examstiff,0,10,y0);toctic,t,y=ode23t(examstiff,0,10,y0);toctic,t,y=ode23tb(examstiff,0,10,y0);toc,刚性方程,向后差分方法(Gearsmethod)隐式Runge-Kutta法,functionf=weissinger(t,y,yp)f=t*y2*yp3-y3*yp2+t*(t2+1)*yp-t2*y;t0=1;y0=sqrt(3/2);yp0=0;%guessy0,yp0=decic(weissinger,t0,y0,1,yp0,0);%求出自洽初值。保持y0不变t,y=ode15i(weissinger,1,10,y0,yp0);ytrue=sqrt(t.2+0.5);plot(t,ytrue,t,y,o),线性隐式ODE:,完全隐式ODE(Matlab7):,Weissinger方程:,functionyp=ddefun(t,y,Z)yp=zeros(2,1);%definelags=1,3yp(1)=Z(1,2)2+Z(2,1)2;yp(2)=y(1)+Z(2,1);functiony=ddehist(t)y=zeros(2,1);y(1)=1;y(2)=t-2;,lags=1,3;sol=dde23(ddefun,lags,ddehist,0,1);holdon;plot(sol.x,sol.y(1,:),b-);plot(sol.x,sol.y(2,:),r-);,延迟微分方程,Sol=dde23(ddefun,lags,ddehist,tspan),初值:,有限差分法二阶线性边值问题,差分离散:,bvp4c,线性边值问题的打靶法:二阶线性边值问题(11)的可以通过求解下面两个初值问题获得。,原来边值问题的解可以表示为:,非线性边值问题的打靶法,(IVP1),(IVP2),符号计算y=dsolve(D2y=-a2*y,x)%求通解y=dsolve(D2y=-a2*y,y(0)=1,Dy(pi/a)=0,x)x,y=dsolve(Dx=4x-2y,Dy=2x-y,t),Pdetool求解区域,定义边界,网格划分,计算,画图,保存文件求解,边条,解析解,演示求解过程,Stokes问题,Q1-P0有限元离散,Navier-Stokes问题,MAC差分离散,物理问题的控制方程:,前台阶流(AMach3WindTunnelwithaStep)模拟放置在风洞中的前台阶流动。风洞尺寸:宽1.0,长3.0,台阶高0.2,放置在距风洞左边界0.6个单位长度处。,Sod问题Sod问题是在激波

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论