常微分方程数值解与matlab

常微分方程数值解与matlab

ID:1151382

大小:1.07 MB

页数:25页

时间:2017-11-08

常微分方程数值解与matlab_第1页
常微分方程数值解与matlab_第2页
常微分方程数值解与matlab_第3页
常微分方程数值解与matlab_第4页
常微分方程数值解与matlab_第5页
资源描述:

《常微分方程数值解与matlab》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验4-常微分方程数值解1.求解常微分方程数值方法介绍(1)一阶微分方程求方程(1)的数值解,就是计算(精确)解在一系列离散点的近似值.通常取相等的步长h,于是xn=x0+nh(n=1,2,…).(a)欧拉方法基本思想是在小区间[xn,xn+1]上用差商代替方程(1)左端的导数而方程右端函数f(x,y(x))中的x取[xn,xn+1]上得某一点,公式为(2)实验4-常微分方程数值解(b)Runge-Kutta方法基本思想是用小区间[xn,xn+1]上的若干个点的导数的线性组合代替方程(2)右端的,一般形式为(3)满足并使

2、(3)的局部截断误差-------L级p阶Runge-Kutta公式实验4-常微分方程数值解(2)常微分方程组和高阶方程的数值方法欧拉方法和Runge-Kutta方法可直接推广到求常微分方程组,如对欧拉公式为Runge-Kutta公式有类似的形式.对高阶方程(5)需先降阶化为一阶常微分方程组,降阶方法不唯一.简单、常用的方法是令y1=y,将(5)化为实验4-常微分方程数值解2.Runge-Kutta方法的MatLab实现对微分方程(组)的初值问题Runge-Kutta方法用MatLab命令实现:[t,x]=ode23(@

3、f,ts,x0,options)%用3级2阶Runge-Kutta公式[t,x]=ode45(@f,ts,x0,options)%用5级4阶Runge-Kutta公式命令的输入f是待解方程写成的函数M文件:functiondx=f(t,x)Dx=[f1;f2;…;fn];实验4-常微分方程数值解2.Runge-Kutta方法的MatLab实现举例:仿真模拟著名的Lorenz系统混沌图其中,先建立一个函数M文件functionxdot=lorenz(t,x)sigma=10;r=28;row=8/3;xdot=[-sigm

4、a*x(1)+sigma*x(2);(r-x(3))*x(1)-x(2);x(1)*x(2)-row*x(3)];实验4-常微分方程数值解2.Runge-Kutta方法的MatLab实现画出Lorenz系统图clearall;clf;options=odeset('RelTol',1e-5,'AbsTol',1e-5);tspan=[0,100];x0=[1,2,3];[t,x]=ode45('lorenz',tspan,x0,options);l=length(x(:,1));a=1;b=l;figure(1)plot

5、3(x(a:b,3),x(a:b,1),x(a:b,2),‘b’);gridon;%画出三维相图xlabel('z');ylabel('x');zlabel('y');figure(2)subplot(311);plot(t,x(a:b,1));%画三分量演化图subplot(312);plot(t,x(a:b,2))subplot(313);plot(t,x(a:b,3))实验4-常微分方程数值解2.Runge-Kutta方法的MatLab实现作业报告:著名的Duffing系统(描述弹簧系统性质)其中类似的,分别画出F

6、=1,2,3,4,6等时的相图翻阅一些参考书,你能得到一些什么结论?实验4-常微分方程数值解3.实例问题缉私艇追击走私船海上边防缉私艇发现距d公里处有一走私船正以匀速a沿直线行驶,缉私艇立即以最大匀速度v追赶,在雷达的引导下,缉私艇的方向始终指向走私船.问缉私艇何时追赶上走私船?并求出缉私艇追赶的路线.SS0dM(x,y)(1)建立模型走私船初始位置在点(S0,0),行驶方向为x轴正方向,缉私艇的初始位置在点(0,M0),在时刻t:走私船的位置到达点:(S0+at,0)缉私艇到达点M(x,y)S0dM(x,y)S(2)模

7、型求解(a)求解析解令:令:(2)模型求解(a)求解析解当y=0时:走私船a=0.4千米/秒,分别取v=0.6,0.8,1.0千米/秒时,缉私艇追赶路线的图形。clearall;clf;a=0.4;v=[0.60.81.0];%取不同的速度r=0.4./v;t=20*r./(a*(1-r.^2))%追上的时间fori=1:3y=20:-0.01:0;x(:,i)=-0.5*(-40*r(i)+20^(-r(i))*(r(i)-1)*y.^(1+r(i))+20^r(i)*(r(i)+1)*y.^(1-r(i)))/(1-

8、r(i)^2);plot(x(:,i),y);axis([030020]);holdonend追赶时间分别为:T=60.0000,33.3333,23.8095(秒)2)当时,缉私艇不可能追赶上走私船。3),,当时,,缉私艇不可能追赶上走私船。(b)用MATLAB软件求解析解MATLAB软件5.3以上版本提供的解常微

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。