版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MathematicsLaboratory阮小娥博士ExperimentsinMathematics数学实验2、了解微分方程数值解思想,掌握两种简单的微分方程数值解方法。3、学会根据实际问题建立简单微分方程数学模型。实验目的1、学会用MATLAB软件求解微分方程的初值问题.4、了解计算机数据仿真、数据模拟的基本方法。实验十二缉私艇追赶走私船模型实验微分方程数值解(理论).用MATLAB软件求微分方程解析解、数值解.微分方程模型实验:缉私艇追赶走私船.问题的进一步扩展.实验内容1.微分方程数值解一阶常微分方程的初值问题:数值解方法:欧拉方法、欧拉两步法、改进的欧拉方法欧拉方法:是一种求解给定初值的常微分方程的一阶数值解方法。对于方程设y=y(x)是它的解,则在解y=y(x)的曲线上每一点处的切线的斜率等于f(x,y)在该点处的值。所以,过初始点A0(x0,y0),做切线与直线x=x1交点的纵坐标y1近似代替y=y(x)在x=x1处的函数值y(x1),即然后再过点A1(x1,y1),以f(x1,y1)为斜率做切线,与直线x=x2交点的纵坐标y2近似代替y=y(x)在x=x2处的函数值y(x2),即A0x0x1x2A1A2这样依次类推得到上述微分方程的解在x=xn+1处函数值的近似计算公式,待求的曲线为蓝色,它的折线近似为红色A0x0x1x2x3A1A2A3A4x4特别地,如果节点之间是等分的,则有这就是著名的欧拉(Euler)公式。事实上,上述公式是用函数y(x)在xn处的向前差商代替函数在这点处的导数,从而将微分方程离散化。同样,如果用函数y(x)在xn+1处的向后差商代替导数值,就得后退的欧拉公式注意:这两个公式虽然具有相同的精度,但也是有区别的,前者是计算yn+1的显示公式,后者是隐式公式。将上两式算术平均即得梯形公式:梯形公式消去了欧拉公式和后退的欧拉公式误差的主要部分,因此比它们具有更高的精度。这是一个隐式公式,可采用迭代法求解。通常先用欧拉公式提供一个yn附近的初始迭代值,然后再用梯形公式做迭代。2)欧拉两步法用函数y(x)在xn处的中心差商代替微分方程中的导数,这就是欧拉两步法公式。它比欧拉公式、后退的欧拉公式具有更高的精度。3)改进的欧拉公式欧拉公式虽然简单,但是误差较大,梯形公式虽然提高了精度,但因其是隐式的,所以计算麻烦,工作量较大。通常将这两种方法结合,得到改进的欧拉公式,具体如下:步骤1先由欧拉公式得到y(xn+1)的一个初始近似值,称为预测值步骤2对预测值再用梯形公式校正一次得yn+1,称为校正值整个过程(称预测-校正系统)可以表示成这就是改进的欧拉公式。当然也可以将欧拉两步法与梯形方法结合。再解释:则用函数y(x)在区间[xn,xn+1]上的平均斜率代替了曲线在点xn的斜率。得到启发:只要对曲线在区间[xn,xn+1]上的平均斜率提供一种算法,就可以得到一种计算yn+1的公式。如果设法在区间内多预测几个点的斜率值,然后将这些点处斜率值的加权平均值作为曲线在区间上的平均值,由此构造出由yn计算yn+1的精度更高的计算公式,这就是龙格-库塔方法的基本思想。2.用MATLAB软件求微分方程的解析解例1dsolve('D2y=exp(x)','x')ans=exp(x)+C1*x+C2dsolve('D2y=exp(x)')ans=1/2*exp(x)*t^2+C1*t+C2dsolve('D2y=exp(x)','y(0)=1,Dy(0)=2','x')
ans=exp(x)+x3.编程计算微分方程数值解例2(1)直接在命令窗执行命令dsolve('Dy=3/x*y+x^3*(exp(x)+cos(x))-2*x','y(pi)=(exp(pi)+2/pi)*pi^3','x')ans=x^3*exp(x)+x^3*sin(x)+2*x^2szy_eu=[];y=(exp(pi)+2/pi)*pi^3;forx=pi:0.1:2*piy=y+0.1*(3/x*y+x^3*(exp(x)+cos(x))-2*x);szy_eu=[szy_eu,y];endszy_eut=pi:0.1:2*pi;f=t.^3.*exp(t)+t.^3.*sin(t)+2*t.^2;plot(t,szy_eu,'r-','linewidth',2)holdonplot(t,f,'b*--')(2)取步长0.1,用欧拉公式求数值解
zhao1201.mx=pi:0.1:2*pi;h=0.1;y=(exp(pi)+2/pi)*pi^3;szy_imeu=[y];fori=1:length(x)-1jzj=y+h*(3/x(i)*y+x(i)^3*(exp(x(i))+cos(x(i)))-2*x(i));yy=y+h/2*(3/x(i)*y+x(i)^3*(exp(x(i))+cos(x(i)))-2*x(i)+3/x(i+1)*jzj+x(i+1)^3*(exp(x(i+1))+cos(x(i+1)))-2*x(i+1));szy_imeu=[szy_imeu,yy];y=yy;endszy_imeuplot(x,szy_imeu,'r-','linewidth',2)f=x.^3.*exp(x)+x.^3.*sin(x)+2*x.^2;holdonplot(t,f,'b*--')(3)取步长0.1,用改进的欧拉公式求数值解
zhao12024.用MATLAB软件求微分方程数值解MATLAB软件求常微分方程数值解的指令有ode23,de23t和ode45,分别表示二三阶龙格—库塔法,二三阶龙格—库塔梯形法和四五阶龙格—库塔法。最简单的使用格式为ode23('fname',[xs,xe],sv)其中用单引号引起的是存储微分方程的函数文件名,xs表示自变量的初始值,xe表示自变量的终止值,sv表示迭代初始向量值。该命令执行后自动画出微分方程数值解曲线。例3使用格式:fc.mfunctionf=fc(x,y)f=2*y+x+2在MATLAB命令窗中执行命令ode23(‘fc’,[0,1],1)5.模型实验:缉私艇追赶走私船海上边防缉私艇发现距c公里处有一走私船正以匀速a沿直线行驶,缉私艇立即以最大速度b追赶,在雷达的引导下,缉私艇的方向始终指向走私船。问缉私艇何时追赶上走私船?并求出缉私艇追赶的路线方程。xyco(1)建立模型走私船初始位在点(0,0),方向为y轴正方向,缉私艇的初始位在点(c,0),在时刻t,走私船的位置到达点R(0,at),缉私艇的位置到达D(x,y)可得缉私艇追击走私船过程的数学模型:(2)模型求解求解析解令:--zhao1203.m表示追赶时间。表示走私船跑过的距离。取c=3千米,a=0.4千米/分钟,分别取b=0.6,0.9,1.2千米/分钟时,缉私艇追赶路线的图形为定义m文件函数:functiony=zx(t,y)y=0.5*((t/3)^0.5-(3/t)^0.5)ode23('zx',3,0.0005,0)
用MATLAB软件求数值解设c=3千米,a=0.4千米/分钟,b=0.8千米/分钟,r=a/b=0.5,用二三阶龙格-库塔算法计算数值解:6动态仿真当建立动态系统的微分方程模型很困难时,可以用计算机仿真法对系统进行分析研究。所谓计算机仿真就是利用计算机对实际动态系统的结构和行为进行编程、模拟和计算,以此来预测系统的行为效果。走私船初始位在点(0,0),方向为y轴正方向,缉私艇的初始位在点(c,0),走私船的位置到达点缉私艇的位置到达点
追赶方向可用方向余弦表示为:时间步长缉私艇的位置:则仿真算法:
第二步:计算动点缉私艇D在时刻
时的坐标
计算走私船R在时刻
时的坐标第一步:设置时间步长,速度a,b及初始位置仿真算法步骤:第三步:计算缉私艇与走私船这两个动点之间的距离:
根据事先给定的距离,判断缉私艇是否已经追上了走私船,从而判断退出循环还是让时间产生一个步长,返回到第二步继续进入下一次循环;
第四步:当从上述循环退出后,由点列
和可分别绘制成两条曲线即为缉私艇和走私船走过的轨迹曲线。
取c=3千米,a=0.4千米/分钟,b=0.8千米/分钟,r=a/b=0.5显示船与艇行进路线程序clc;clear;c=3;a=0.4/60;b=0.8/60;d=0.01;dt=2;t=0;jstx=c;jsty=0;zscx=0;zscy=0;while(sqrt((jstx-zscx)^2+(jsty-zscy)^2)>d)plot(jstx,jsty,'ro','markersize',15);holdonplot(zscx,zscy,'b*','markersize',15);pause(0.01)t=t+dt;jstx=jstx-b*dt*jstx/sqrt(jstx^2+(a*t-jsty)^2);jsty=jsty+b*dt*(a*t-jsty)/sqrt(jstx^2+(a*t-jsty)^2);zscy=a*t;endfprintf('追上所需时间t=%.0f\n',t);fprintf('缉私艇的位置=(%.5f,%.5f)\n',jstx,jsty);fprintf('走私船的位置=(%.5f,%.5f)\n',zscx,zscy);zhao1204.m结果分析计算机仿真法计算的结果依赖于时间迭代步长的选取和程序终止条件的设定,修改终止条件的设定和减小时间迭代步长可以提高计算精度,减小误差。
上机任务李继成(书)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024护理安全培训
- 物理因子疗法及康复护理水疗法
- 医护理系彭芳
- 实验室主任安全培训
- 大班语言活动生字表
- 对新员工的财务培训
- 7月珠宝活动策划方案
- 数学学案:课堂导学函数的表示方法第课时分段函数
- 2岁护理方法和技巧
- 健康扶贫培训教材
- 第五单元学雷锋在行动(教案)全国通用五年级下册综合实践活动
- 服装店人员不稳定分析报告
- GB 37219-2023充气式游乐设施安全规范
- NB-T 47013.7-2012(JB-T 4730.7) 4730.7 承压设备无损检测 第7部分:目视检测
- 《梯形的认识》(课件)-四年级上册数学人教版
- 肝吸虫护理查房课件
- 北京开放大学《现代管理专题》终结性考试复习题库(附答案)
- 小腿抽筋的原因以及缓解和自救方法定稿
- 2023年度高级会计实务真题及答案解析
- 南开大学答辩通用模板
- 国网福建省电力有限公司高校毕业生招聘笔试真题2021
评论
0/150
提交评论