




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验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) 满足 并使(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(f,ts,x0,options) %用3级2阶Runge-Kutta公式 t,x=ode45(f,ts,x0,options) %用5级4阶Runge-Kutta公式 命令的输入f是待解方程写成的函数M文件: function dx=f(t,x) Dx=f1;f2;fn;,实验4-常微分方程数值解,2. Runge-Kutta方法的MatLab实现 举例:仿真模拟著名的Lorenz系统混沌图 其中, 先建立一个函数M文件 function xdot=lorenz(t,x) sigma=10;r=28;row=8/3; xdot=-sigma*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系统图 clear all;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) plot3(x(a:b,3),x(a:b,1),x(a:b,2),b);grid on;%画出三维相图 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=1,2,3,4,6等时的相图 翻阅一些参考书,你能得到一些什么结论?,实验4-常微分方程数值解,3. 实例 问题 缉私艇追击走私船 海上边防缉私艇发现距d公里处有一走私船正以匀速a沿直线行驶, 缉私艇立即以最大匀速度v追赶,在雷达的引导下, 缉私艇的方向始终指向走私船.问缉私艇何时追赶上走私船?并求出缉私艇追赶的路线.,S,(1)建立模型,走私船初始位置在点(S0,0), 行驶方向为x轴正方向, 缉私艇的初始位置在点(0,M0), 在时刻t: 走私船的位置到达点:(S0+at,0) 缉私艇到达点M(x,y),S,(2)模型求解 (a)求解析解,令:,令:,(2) 模型求解,(a) 求解析解,当y=0 时:,走私船a=0.4千米/秒, 分别取v=0.6, 0.8, 1.0千米/秒时, 缉私艇追赶路线的图形。,clear all;clf; a=0.4; v=0.6 0.8 1.0;%取不同的速度 r=0.4./v; t=20*r./(a*(1-r.2)%追上的时间 for i=1:3 y=20:-0.01:0; x(:,i)=-0.5*(-40*r(i)+20(-r(i)*(r(i)-1)*y.(1+r(i)+20r(i)*(r(i)+1)*y.(1-r(i)/(1-r(i)2); plot(x(:,i),y);axis(0 30 0 20); hold on end,追赶时间分别为: T=60.0000,33.3333, 23.8095(秒),2),当,时,,缉私艇不可能追赶上走私船。,3),,,,,当,时,,,,缉私艇不可能追赶上走私船。,(b)用MATLAB软件求解析解,MATLAB软件5.3以上版本提供的解常微分方程解析解的指令是 Dsolve, 完整的调用格式是: dsolve(eqn1,eqn2, .) 其中eqn1,eqn2, .是输入宗量,包括三部分: 微分方程、初始 条件、指定变量,若不指定变量,则默认小写字母t为独立变量.书P-69,微分方程的书写格式规定:当y是因变量时,用“Dny”表示y的n阶导数.,例 求微分方程,的通解。,dsolve(Dy=x+x*y,x),Ans=-1+exp(1/2*x2)*C1,dsolve(Dx=1/2*(y/20)r-(20/y)r),x(20)=0,y),Ans=1/2*20(-r)*y(r+1)/(r+1)+1/2*20r/(r-1)*y*(1/y)r-20*r/(r2-1),(c)用MATLAB软件防真,当建立动态系统的微分方程模型很困难时, 我们可以用计算机仿真法对系统进行分析研究. 所谓计算机仿真就是利用计算机对实际动态系 统的结构和行为进行编程、模拟和计算, 以此 来预测系统的行为效果.,追赶方向可用方向余弦表示为:%两点形成的向量的方向余弦,时间步长为,,,则在时刻,时:,仿真算法:,第一步:设置时间步长, 速度a, v及初始距离d,,第二步:,计算动点缉私艇D在时刻,时的坐标,,,计算走私船R在时刻,时的坐标,,,第三步:计算缉私艇与走私船这两个动点之间的距离:,根据事先给定的距离,判断缉私艇是否已经追上了走私船,从而判断 退出循环还是让时间产生一个步长,返回到第二步继续进入下一次循环;,第四步:当从上述循环退出后,由点列,和,可分别绘,制成两条曲线即为缉私艇和走私船走过的轨迹曲线。,缉私艇初始位置,,,走私船初始位置,追击问题的数值模拟(P-66) clear;clf; d=120;v=90;a=80;s0=8;%给出初始条件 T=10;dt=0.001;%选取时间区间T(可以偏大一点),时间微元dt t=0:dt:T;%离散时间表t n=length(t); %离散时间表t长度 x(1)=0;y(1)=d;s(1)=s0;%初始位置、初始距离 for i=1:n x(i+1)=x(i)+v*dt*(s0+a*t(i)-x(i)/sqrt(s0+a*t(i)-x(i)2+y(i)2); y(i+1)=y(i)+v*dt*(-y(i)/sqrt(s0+a*t(i)-x(i)2+y(i)2);%递推算式 、 d=sqrt(s0+a*t(i)-x(i)2+y(i)2);% t(i)时刻的距离 if d0.1 i*dt break end%判断是否已追上,并显示追上时的时间 s(i)=s0+a*t(i); end plot(x,y) %comet(x,y);,(e) 结果分析,用求解析解的方法算得的解是最为精确的; 用数值方法计算的结果依赖于迭代终值的设定, 减小迭代终值可以提高计算精度;用计算机仿 真法计算的结果依赖于时间迭代步长的选取和 程序终止条件的设定,修改终止条件的设定和 减小时间迭代步长可以提高计算精度,减小误差.,实验4-常微分方程数值解,4. 刚性现象与刚性方程 刚性现象 振动系统或包含电容、电感、电阻的电路系统的数学模型一般为: 给定一组参数k=2000.5, r=1000, a=1, b=-1999.5,f(t)=1. 则(*1)的解为 稳态解 快瞬态解 慢瞬态解 对快瞬态解: 时间常数t1=1/2000=0.0005,计算到t=10t1=0.005时,该项已衰减到 ; 对慢瞬态解: 时间常数t2=2,计算到t=10t2=20时它才衰减到 .用数值方法求解时, 精度要达到 , 至少要算到t=20, 需要14286步, 这样大的计算量是由快瞬态解和慢瞬态解的衰减速度相差悬殊造成的, 这现象称为刚性现象, 相应的微分方程称为刚性方程.,实验4-常微分方程数值解,4. 刚性现象与刚性方程 刚性方程 振动、电路及化学反应中出现刚性现象的方程可表示为: (*2) 其中x, f是n维向量, A是nxn矩阵. 当A的特征根 的实部 均为负数时, 方程通解中对应于 的值大的项为快瞬态解,值小的项为慢瞬态解, 称 为刚性比. s10的方程便可认为是刚性方程, 实际问题中可出现s达 的情况. 刚性是问题本身的性质, 与解法无关. 但正是由于这种性质, 用数值方法求解时需要计算到最慢瞬态解衰减成可忽略的小量为止,使得积分区间很长,而为保证计算的稳定性, 当最快瞬态解的 很大时, 又必须使步长充分小, 这就出现了在大区间上用小步长计算的困难情况.,实验4-常微分方程数值解,4. 刚性现象与刚性方程 MatLab求解 Matlab中求解常微分方程的命令ode23, ode45. 由于其步长是按稳定性要求和指定的精度加以调整的, 所以用它们解刚性微分方程时步长会自动变小, 对于大的区间会导致计算时间很长. Matlab中有专门求解刚性方程的命令ode23s, ode15s, 用法与 ode23, ode45相同. 例 解方程 特征根 , 刚性比 . 解析解为,实验4-常微分方程数值解,4. 刚性现象与刚性方程 MatLab求解 function dx=stiff1(t,x) dx=x(1)+2*x(2);-(106+1)*x(1)-(106+2)*x(2); t=0:0.1:1; %t=0:0.1:10; x1=(106
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 财务内部控制问题及整改措施
- 2025年外科手术常见并发症风险评估考试答案及解析
- 公司向个人还款合同范本
- 公司维修雇佣合同协议书
- 劳动教育推广合同协议书
- 建筑工程HSE保证体系及措施
- 房租合同出售协议书范本
- 执业药师证租用协议合同
- 技术股份合同协议书范本
- 居民房屋抗震改造保护方案及措施
- 2025江苏苏州昆山国创投资集团有限公司第二期招聘10人笔试参考题库附带答案详解
- 2025年秋季学期幼儿园园务工作计划
- 2025-2026学年浙教版(2024)初中科学七年级上册教学计划及进度表
- 计算机操作员中级考试题库及答案解析
- 2025至2030年中国应急产业市场供需现状及投资战略研究报告
- 2025-2026学年译林版(三起)(2024)小学英语三年级上册教学计划及进度表
- 中医院临床路径培训课件
- 2025年甘肃普通高中学业水平选择性考试化学真题及答案
- 2024年合肥演艺集团有限公司社会招聘4人笔试备考试题带答案详解
- 厨房用火安全知识培训课件
- 2025年N1叉车司机模拟考试1000题及答案
评论
0/150
提交评论