第7讲MATLAB连续模型求解方法.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7讲MATLAB连续模型求解方法

第7 讲 MATLAB 连续模型求解方法 作者:卓金武, MathWorks 中国 连续模型是指模型是连续函数的一类模型总称,具体建模方法主要是微分方程建模。 微分方程建模是数学建模的重要方法,因为许多实际问题的数学描述将导致求解微分 方程的定解问题。把形形色色的实际问题化成微分方程的定解问题,大体上可以按以 下几步: 1. 根据实际要求确定要研究的量(自变量、未知函数、必要的参数等)并确定坐标 系。 2. 找出这些量所满足的基本规律(物理的、几何的、化学的或生物学的等等)。 3. 运用这些规律列出方程和定解条件。 MATLAB 在微分模型建模过程中的主要作用是求解微分方程的解析解, 将微分方 程转化为一般的函数形式。 另外, 微分方程建模, 一定要做数值模拟, 即根据方 程的表达形式,给出变量间关系的图形,做数值模拟也需要用 MATLAB 来实现。 微分方程的形式多样,微分方程的求解也是根据不同的形式采用不同的方法, 在建 模比赛中, 常用的方法有三种: 1. 用 dsolve 求解常见的微分方程解析解 2. 用 ODE 家族的求解器求解数值解 3. 使用专用的求解器求解 1. 常规微分方程的求解 微分方程在 MATLAB 中固定的表达方式, 这些基本的表达方式如下表所示: 对于通常的微分方程,一般需要先求解析解,那么 dsolve 是首先考虑的求解器, 因为dsolve 能够求解解析解,其具体的用法如下: [实例]求微分方程 xy+y-e^x=0 在初始条件 y(1)=2e 下的特解,并画出解函数的图 形. 求解本问题的 Matlab 程序为: syms x y y=dsolve(x*Dy+y-exp(x)=0,y(1)=2*exp(1),x) ezplot(y) 微分方程的特解为:y=1/x*exp(x)+1/x*exp (1) (Matlab 格式),即 y=(e+e^x)/x ,此 函数的图形如图 1: 图 1 y 关于x 的函数图象 2. ODE 家族求解器 如果微分方程的解析形式求解不出来, 那么退而求其次的办法是求解数值解,那么 这个时候就需要用 ODE 家族的求解器求解微分方程的数值解啦。 因为没有一种算法可以有效地解决所有的 ODE 问题,为此,MATLAB 提供了多种 求解器,对于不同的 ODE 问题,采用不同的 Solver 。MATLAB 中常用的微分方程 数值解的求解器及特点如下表所示。 要特别提醒的是:ode23 、ode45 是极其常用的用来求解非刚性标准形式一阶常微分 方程(组)初值问题解的 Matlab 的常用程序,其中: ode23 采用龙格-库塔2 阶算法,用3 阶公式作误差估计来调节步长,具有低等的精 度. ode45 则采用龙格-库塔4 阶算法,用5 阶公式作误差估计来调节步长,具有中等的 精度. [实例]导弹追踪问题 设位于坐标原点的甲舰向位于 x 轴上点 A(1, 0) 处的乙舰发射导弹,导弹头始终对 准乙舰。如果乙舰以最大的速度 v0 (是常数)沿平行于 y 轴的直线行驶,导弹的速度 是 5*v0 ,求导弹运行的曲线方程,以及乙舰行驶多远时,导弹将它击中? 记导弹的速度为 w ,乙舰的速率恒为v0 。设时刻 t 乙舰的坐标为 (X(t),Y(t)) ,导弹的 坐标为 (x(t),y(t)) 。当零时刻,(X(0),Y(0))=(1,0) ,(x(0),y(0))=(0,0),建立微分方程模 型: 因乙舰以速度v0 沿直线 x=1 运动,设 v0 =1 ,w=5 ,X=1 ,Y=t ,因此导弹运动轨迹 的参数方程为: MATLAB 求解数值解程序如下: (1) 定义方程的函数形式: function dy=eq2(t,y) dy=zeros(2,1); dy(1

文档评论(0)

xiaozu + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档