




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1.4.8 解常微分方程解常微分方程 (ordinary differential equation, ode) 一、引言一、引言v微分方程求解的数值算法有多种,常用的有微分方程求解的数值算法有多种,常用的有euler(欧拉法)、(欧拉法)、runge kutta(龙格龙格-库塔法)。库塔法)。veuler法称一步法,用于一阶微分方程。法称一步法,用于一阶微分方程。00yxyyxfdxdy)(),(0 x0 x1 x2 xn xn+1v当给定步长时:当给定步长时:hyyxxyydxdyf010101(x)所以所以 y1 = y0 + hf (x0,y0) y2 = y1 + hf (x1,y1
2、) yi+1 = yi+ hf (xi,yi)vrunge kutta法法 ),(),()(21121211hkyxfkyxfkkkhyynnnnnn 龙格龙格-库塔法:实际上取库塔法:实际上取两点斜率的平均斜率来计算两点斜率的平均斜率来计算的,其精度高于欧拉算法的,其精度高于欧拉算法 。 )(4);););()(23121432113nnnnnnnnnnhkh,yxfkk2hy2hxfkk2hy2hxfk,yxfkk2k2kk6hyy,(,(下面是一个经典下面是一个经典 的四阶龙格库塔公式:的四阶龙格库塔公式:二、解题方法二、解题方法1.编写编写odefile文件格式:文件格式:functi
3、on ydot=odefile(t,y) ydot=待求的函数待求的函数2.选择和调用解常微分方程的指令选择和调用解常微分方程的指令( 常用的有常用的有ode23、ode45)指令格式:指令格式:t,y=ode23(f,tspan,y0,options,p1,p2,) f 求解的求解的odefile的文件名的文件名 tspan 单调递增单调递增(减减)的积分区间的积分区间 y0 初始条件矢量初始条件矢量 options 用用odeset建立的优化选项,如用默认值则不必输入建立的优化选项,如用默认值则不必输入 p1,p2 传递给传递给f的参数,的参数, t,yt是输出的时间列矢量,矩阵是输出的时
4、间列矢量,矩阵y每个列矢量是解的一个每个列矢量是解的一个 分量分量(1)建立建立ode函数文件函数文件% m-function, g1.m function dy=g1(x,y) dy=3*x.2;例例1:解一阶微分方程在:解一阶微分方程在区间区间2,4的数值解的数值解 dy/dx=3x2 y(2)=0.5(2)调用函数文件解微分方程调用函数文件解微分方程x,num_y=ode23(g1,2,4,0.5); % m-function, g3.m function dy=g3(x,y) dy=2*x*cos(y)2; x,num_y=ode23(g3,0,2,pi/4); 例例2:解一阶微分方程
5、在区:解一阶微分方程在区间间0 ,2的数值解的数值解 dy/dx=2xcos2y y(0)=pi/4x 的积分区间的积分区间y的初始条件的初始条件例例3 :解二阶微分方程:解二阶微分方程12)4(0022 vxaadtxd解:解:1.先将方程写成一阶微分方程先将方程写成一阶微分方程 令令y(1)=x, y(2)=dx/dt,4)2()2()1( dtdyydtdy2.建立函数文件建立函数文件yjs.m并存盘并存盘 function ydot = yjs( t,y ) ydot=y(2); 4 ;3.调用函数文件解方程调用函数文件解方程 t,y=ode23(yjs,0:0.1:10,2,1);时
6、间时间t 的积的积分区间分区间初始条件初始条件为方便令为方便令x1=x,x2=x分别对分别对x1,x2求一求一阶导数,整理后写成一阶微分方程组阶导数,整理后写成一阶微分方程组形式形式 x1=x2 x2=x2(1-x12)-x1例:例:x+(x2-1)x+x=0 (t=0,20; x0=0,x0=0.25)1.建立m文件wf.mfunction xdot=wf(t,x)xdot=x(2); x(2)*(1-x(1)2)-x(1);1.建立建立m文件文件2.解微分方程解微分方程2.给定区间、初始值;求解微分方程t,x=ode23(wf, 0,20,0,0.25)plot(t,x), figure(
7、2),plot(x(:,1),x(:,2)例:研究有空气阻力时抛体运动的特征。比较下面三种情况例:研究有空气阻力时抛体运动的特征。比较下面三种情况下的抛体的轨道:没有空气阻力;空气阻力与速度一次方成下的抛体的轨道:没有空气阻力;空气阻力与速度一次方成正比;以及空气阻力与速度二次方成正比。正比;以及空气阻力与速度二次方成正比。vgr2p22vbmtddm 质点运动微分方程为质点运动微分方程为空气阻力的三种情况分别对应方程中参数值为空气阻力的三种情况分别对应方程中参数值为b=0,0.1,0.1,p=0,0,1令令y(1)=x, y(2)=dx/dt, y(3)=y , y(4)=dy/dt,将方程
8、写成一阶微分将方程写成一阶微分方程组方程组(4)d(3)d(2)d(1)dyyyytt222222(4)(2)(4)(4)(4)(2)(2)(2)ppyymbygdtdyyymbydtdy%program ddqxn.mm=1; b=0,0.1,0.1; p=0,0,1; %设置参数设置参数figureaxis(0 9 0 4); %设置坐标轴的范围设置坐标轴的范围hold onfor i=1:3 %解微分方程三次解微分方程三次 t,y=ode45(ddqxnfun,0:0.001:2,0,5,0,8, ,b(i),p(i),m); comet(y(:,1),y(:,3) %画轨道的彗星轨迹画
9、轨道的彗星轨迹end函数文件函数文件ddqxnfun.m如下:如下:function ydot=ddqxnfun(t,y,flag,b,p,m)ydot=y(2); -b/m*y(2)*(y(2).2+y(4).2).(p/2); y(4); -9.8-b/m*y(4)*(y(2).2+y(4).2).(p/2);3.确定求解的条件和要求确定求解的条件和要求t,y=ode23(f,tspan,y0,options,p1,p2,)odeset 建立和修改优化选项建立和修改优化选项语句格式:语句格式:options=odeset(name1,value1, name2,value2,)指定各个参数
10、的取值,对不指定取值的参数,取默认值指定各个参数的取值,对不指定取值的参数,取默认值options=odeset(odeopts,name1,value1,)使用原来的优化选项,但对其中部分参数指定新值使用原来的优化选项,但对其中部分参数指定新值options=odeset(oldopts,newopts)合并了两个优化选项合并了两个优化选项oldopts和和newopts,重复部分取,重复部分取newopts的指定值的指定值 odeset abstol: positive scalar or vector 1e-6 绝对误差。默认绝对误差。默认1e6 bdf: on | off 在使用在使用
11、ode15s时是否使用反向差分公式时是否使用反向差分公式 reltol: positive scalar 1e-3 相对误差。默认相对误差。默认1e3 events: function 设置事件设置事件 initialstep: positive scalar 解方程时使用的初始步长解方程时使用的初始步长 jacobian: matrix | function 设定是否计算雅各比矩阵设定是否计算雅各比矩阵 jpattern: sparse matrix 若返回稀疏雅各比矩阵,为若返回稀疏雅各比矩阵,为on mass: matrix | function 返回质量矩阵返回质量矩阵 masssin
12、gular: yes | no | maybe 质量矩阵是否为奇异矩阵质量矩阵是否为奇异矩阵 maxorder: 1 | 2 | 3 | 4 | 5 ode15s解刚性方程的最高阶数解刚性方程的最高阶数 maxstep: positive scalar 步长上界步长上界 normcontrol: on | off 解向量范数的误差控制解向量范数的误差控制outputsel: vector of integers 选择输出解向量哪个分量选择输出解向量哪个分量 refine: positive integer 细化输出因子细化输出因子 stats: on | off 显示计算成本统计结果显示计算成
13、本统计结果 vectorized: on | off 设定向量形式的设定向量形式的ode函数文件函数文件 outputfcn: function 输出方式,其选项有:输出方式,其选项有:odeplot 按时间顺序画出全部变量的解;按时间顺序画出全部变量的解;odephas2 二维相空间中前两个变量的图形;二维相空间中前两个变量的图形;odephas3 三维相空间中三个变量的图形;三维相空间中三个变量的图形;odeprint 打印输出打印输出 气象学家气象学家lorenz提出一篇论文,名叫一只蝴蝶拍一下翅膀会不会在提出一篇论文,名叫一只蝴蝶拍一下翅膀会不会在taxas州引起龙卷风?论述某系统如果
14、初期条件差一点点,结果会很不州引起龙卷风?论述某系统如果初期条件差一点点,结果会很不稳定,他把这种现象戏称做蝴蝶效应。稳定,他把这种现象戏称做蝴蝶效应。lorenz为何要写这篇论文呢?为何要写这篇论文呢? 这故事发生在这故事发生在1961年的某个冬天,他如往常一般在办公室操作气象电年的某个冬天,他如往常一般在办公室操作气象电脑。平时,他只需要将温度、湿度、压力等气象数据输入,电脑就会依据脑。平时,他只需要将温度、湿度、压力等气象数据输入,电脑就会依据三个内建的微分方程式,计算出下一刻可能的气象数据,因此模拟出气象三个内建的微分方程式,计算出下一刻可能的气象数据,因此模拟出气象变化图。变化图。
15、这一天,这一天,lorenz想更进一步了解某段纪录的後续变化,他把某时刻的想更进一步了解某段纪录的後续变化,他把某时刻的气象数据重新输入电脑,让电脑计算出更多的後续结果。当时,电脑处理气象数据重新输入电脑,让电脑计算出更多的後续结果。当时,电脑处理数据资料的数度不快,在结果出来之前,足够他喝杯咖啡并和友人闲聊一数据资料的数度不快,在结果出来之前,足够他喝杯咖啡并和友人闲聊一阵。在一小时後,结果出来了,不过令他目瞪口呆。结果和原资讯两相比阵。在一小时後,结果出来了,不过令他目瞪口呆。结果和原资讯两相比较,初期数据还差不多,越到後期,数据差异就越大了,就像是不同的两较,初期数据还差不多,越到後期,
16、数据差异就越大了,就像是不同的两笔资讯。而问题并不出在电脑,问题是他输入的数据差了笔资讯。而问题并不出在电脑,问题是他输入的数据差了0.000127,而这,而这些微的差异却造成天壤之别。所以长期的准确预测天气是不可能的。些微的差异却造成天壤之别。所以长期的准确预测天气是不可能的。例:求解lorlenz方程例:求解lorlenz方程zyxydtdzzydtdyyzxdtdx35101038zyxydtdyzydtdyyzxdtdy35(3)1010(2)38(1)设设y(1)=x, y(2)=y, y(3)=z%program lor.maxis(10 50 -50 50 -50 50); %设置坐标轴范围设置坐标轴范围view(3) %设置观察三维图形的视角设置观察三维图形的视角hold ontitle(lonrenz attractor) %图的标题图的标题options =odeset(outputfcn,odephas3) ;%设置输出方式为三维空间三变量图形设置输出方式为三维空间三变量图形t,y=ode23(lorfun,0,20,0,0,eps,options);%odefi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025小鸭苗买卖服务合同
- 智能手机在传染病防控中的应用指南
- 骨科亮点护理实践体系
- 青年医学教师授课比赛实施要点
- 人教版小学一年级语文上册第八单元测试题
- 造口疝气规范化护理要点
- 二手房交易方式之委托交易
- 学校下学期质量管理工作总结模版
- 2024年09月26日更新【Attest】2024年美国媒体使用报告
- 服装合作协议书
- 2025年5G网络在无人机领域的应用可行性研究报告
- 2025四川爱众集团第一批次招聘10人笔试参考题库附带答案详解
- 工业用地开发项目成本分析与资金筹措方案
- 2025年初中地理学业水平考试模拟试卷:地图与地球知识综合训练试题卷及答案
- (人教2024版)英语七年级下册Unit7.4 Section B 1a-2d课件(新教材)
- 2025年广东嘉城建设集团有限公司及其下属公司招聘笔试参考题库含答案解析
- 2025年湖北荆州市监利市畅惠交通投资有限公司招聘笔试参考题库含答案解析
- 酒店入股合同协议书
- 银行sql考试题及答案
- 隔离技术知识试题及答案
- 2025三方贸易协议合同范本 贸易合同范本
评论
0/150
提交评论