第十章 常微分方程(组)的求解-2014120120190541
- 格式:ppt
- 大小:108.00 KB
- 文档页数:25
常微分方程的解法总结前言常微分方程(Ordinary Differential Equation,ODE)是研究一阶或高阶导数与未知函数之间关系的数学方程。
在物理学、工程学和计算机科学等领域,常微分方程扮演着重要的角色。
解决常微分方程是这些领域中许多问题的关键。
本文将总结常用的常微分方程解法方法,帮助读者加深对常微分方程的理解并提供解决问题的思路。
一、可分离变量法可分离变量法是一种常见且简单的求解常微分方程的方法。
它适用于形如dy/dx = f(x)g(y)的一阶常微分方程。
解题思路:1.将方程写成dy/g(y) = f(x)dx的形式,将变量进行分离。
2.两边同时积分得到∫(1/g(y))dy = ∫f(x)dx。
3.求出积分后的表达式,并整理得到解 y 的表达式。
使用这种方法解决常微分方程的步骤相对简单,但要注意确认分母不为零以及选取合适的积分常数。
二、特殊方程类型的求解除了可分离变量法,常微分方程还存在一些特殊的方程类型,它们可以通过特定的方法进行解决。
1. 齐次方程齐次方程是指形如dy/dx = F(y/x)的方程。
其中,F(t) 是一个只有一个变量的函数。
解题思路:1.令 v = y/x,即 y = vx。
将方程转化为dy/dx = F(v)。
2.对于dv/dx = F(v)/x这个方程,可以使用分离变量法进行求解。
3.求出 v(x) 后,将其代入 y = vx 得到完整的解。
2. 齐次线性方程齐次线性方程是指形如dy/dx + P(x)y = 0的方程。
解题思路:1.使用积分因子法求解,将方程乘以一个积分因子,使得左边变成一个可积的形式。
2.求积分因子的方法是根据公式μ = e^(∫P(x)dx),其中 P(x) 是已知的函数。
3.通过乘积的方式求解完整的方程。
3. 一阶线性常微分方程一阶线性常微分方程是指形如dy/dx + P(x)y = Q(x)的方程。
解题思路:1.使用积分因子法,将方程乘以一个积分因子,使得左边变成一个可积的形式。
如何求解常微分方程?常数变易法、积分因子法,函数变换法。
大致与微积分同时产生。
事实上,求y′=f(x)的原函数问题便是最简单的微分方程。
I.牛顿本人已经解决了二体问题:在太阳引力作用下,一个单一的行星的运动。
他把两个物体都理想化为质点,得到3个未知函数的3个二阶方程组,经简单计算证明,可化为平面问题,即两个未知函数的两个二阶微分方程组。
用现在叫做“首次积分”的办法,完全解决了它的求解问题。
17世纪就提出了弹性问题,这类问题导致悬链线方程、振动弦的方程等等。
总之,力学、天文学、几何学等领域的许多问题都导致微分方程。
在当代,甚至许多社会科学的问题亦导致微分方程,如人口发展模型、交通流模型……。
因而微分方程的研究是与人类社会密切相关的。
当初,数学家们把精力集中放在求微分方程的通解上,后来证明这一般不可能,于是逐步放弃了这一奢望,而转向定解问题:初值问题、边值问题、混合问题等。
但是,即便是一阶常微分方程,初等解(化为积分形式)也被证明不可能,于是转向定量方法(数值计算)、定性方法,而这首先要解决解的存在性、唯一性等理论上的问题。
方程对于学过中学数学的人来说是比较熟悉的;在初等数学中就有各种各样的方程,比如线性方程、二次方程、高次方程、指数方程、对数方程、三角方程和方程组等等。
这些方程都是要把研究的问题中的已知数和未知数之间的关系找出来,列出包含一个未知数或几个未知数的一个或者多个方程式,然后取求方程的解。
但是在实际工作中,常常出现一些特点和以上方程完全不同的问题。
比如:物质在一定条件下的运动变化,要寻求它的运动、变化的规律;某个物体在重力作用下自由下落,要寻求下落距离随时间变化的规律;火箭在发动机推动下在空间飞行,要寻求它飞行的轨道,等等。
物质运动和它的变化规律在数学上是用函数关系来描述的,因此,这类问题就是要去寻求满足某些条件的一个或者几个未知函数。
也就是说,凡是这类问题都不是简单地去求一个或者几个固定不变的数值,而是要求一个或者几个未知的函数。
18—1 常微分方程数值解法2§1 引言§2 Euler 方法§3 Runge -Kutta 方法§4 单步法的收敛性与稳定性§5 线性多步法§6 方程组与高阶方程的情况§7 边值问题的数值解法3§1 引言微分方程:关于一个未知函数的方程,方程中含有未知函数的(偏)导数,以及自变量等,其中关于未知函数导数的最高次数称为微分方程的阶数.例如:0)()(')()(''=++−x c y x b y x a x y4实际中,很多问题的数学模型都是微分方程. 常微分方程作为微分方程的基本类型之一,在理论研究与工程实际上应用很广泛. 很多问题的数学模型都可以归结为常微分方程. 很多偏微分方程问题,也可以化为常微分方程问题来近似求解.微分方程的应用情况5对于一个常微分方程:'(,) ,[,]dy y f x y x a b dx==∈为了使解存在,一般要对函数f 施加限制条件,例如要求f 对y 满足Lipschitz 条件:1212(,)(,)f x y f x y L y y −≤−6同时,一个有解的微分方程通常会有无穷多个解例如cos() sin(),dyx y x a a R dx=⇒=+∀∈为了使解唯一,需要加入一个限定条件. 通常会在端点出给出,如下面的初值问题:(,),[,]()dyf x y x a b dx y a y ⎧=∈⎪⎨⎪=⎩7常微分方程的解是一个函数,但是,只有极少数特殊的方程才能求解出来,绝大多数是不可解的.并且计算机没有办法对函数进行运算. 一般考虑其近似解法,一种是近似解析法,如逼近法、级数解法等,另一种是本章介绍的数值解法.8§2 Euler 方法92-1 Euler 公式对常微分方程初值问题:⎩⎨⎧==00')(),(y x y y x f y 数值求解的关键在于消除其中的导数项——称为离散化. 利用差商近似逼近微分是离散化的一个基本途径.10现在假设求解节点为),,1,0(m i ih a x i "=+=,其中ma b h −=为步长,这些节点相应的函数值为)(,),(1m x y x y ". 在点n x 处,已知))(,()('n n n x y x f x y =用n x 的向前差商nn n n x x x y x y −−++11)()(近似代替)('n x y ,如§1,则得到所谓的Euler 公式1(,)n n n n y y hf x y +=+——单步、显式格式11Euler 公式的局部截断误差:假设)(n n x y y =情况下,11)(++−n n y x y 称为局部截断误差.'''2311''23()()()()()2()(,()(()))2n n n n n n n n n y x y x y y x hy x h O h y x h y x f x y x h O h ++−=+++−−=+故有)(2)(''211n n n x y h y x y ≈−++. 122-2 后退的Euler 公式同样对常微分方程初值问题,在1+n x 点,已知))(,()(111'+++=n n n x y x f x y ,如果用向后差商hx y x y n n )()(1−+代替)(1'+n x y ,则得到后退的Euler 公式:111(,)n n n n y y hf x y +++=+——单步、隐式格式13相对于以上可以直接计算1+n y 的Euler 公式(显式),上式是隐式公式. 一般来讲,显式容易计算,而隐式具有更好的稳定性.求解上述公式,通常使用迭代法:对于给定的初值)0(1+n y,计算(1)()111(,)(0,1,)k k n n n n y y f x y k ++++=+=", 如果)(1lim k n k y +∞→收敛,则其极限必满足上述后退Euler 公式.14局部截断误差:假设)(n n x y y =,则),()(111++++=n n n n y x hf x y y .由于)]()[,())(,(),(1111111+++++++−+=n n n y n n n n x y y x f x y x f y x f η且''''2111(,())()()()()n n n n n f x y x y x y x hy x O h +++==++15则有'2''31111(,)[()]()()()()n y n n n n n n y hf x y y x y x hy x h y x O h η++++=−++++将此式减去式2'''31()()()()()2n n n n h y x y x hy x y x O h +=+++ 可得,2''311111()(,)[()]()()2n n y n n n n h y x y hf x y x y y x O h η+++++−=−−+16考虑到21111(,)()1(,)y n y n hf x O h hf x ηη++=++−,则有22''3''11()()()()22n n n n h h y x y y x O h y x ++−=−+≈−172-3 梯形公式由于上述两个公式的局部截断误差绝对值相等,符号相反,故求其算术平均得到梯形公式:111[(,)(,)]2n n n n n n hy y f x y f x y +++=++——单步、隐式格式18梯形法同样是隐式公式,可用下列迭代公式求解:(0)1(1)()111(,)[(,)(,)]2n n n n k k n n n n n n y y hf x y h y y f x y f x y +++++⎧=+⎪⎨=++⎪⎩局部截断误差:类似于后退Euler ,可计算出)(12)('''311n n n x y h y x y −≈−++192-4 改进的Euler 公式上述用迭代法求解梯形公式虽然提高了精度,但计算量也很大. 实际上常采用的方法是,用Euler 公式求得初始值(预测),然后迭代法仅施行一次(校正)——改进的Euler 公式:1111(,)[(,)(,)]2n n n n n n n n n n y y f x y hy y f x y f x y ++++⎧=+⎪⎨=++⎪⎩20估计上式中第二式当1+n y 为准确值时的局部截断误差:''11113(3)()()(()[()()])2()12n n n n n n n hy x y y x y x y x y x hy x ++++−=−++≈−212-5 Euler 两步公式如果用中心差商hx y x y n n 2)()(11−+−代替)('n x y ,则得Euler 两步公式112(,)n n n n y y hf x y +−=+——两步、显式格式22假设1−n y 及n y 均为准确值,利用Taylor 展式容易计算Euler 两步公式的局部截断误差为:11113(3)()()(()2(,()))()3n n n n n n n y x y y x y x hf x y x h y x +++−−=−+≈23此式与梯形公式相结合,得到如下的预测-校正公式:111112(,)[(,)(,)]2n n n n n n n n n n y y hf x y hy y f x y f x y −++++⎧=+⎪⎨=++⎪⎩假设第一式中的1−n y 及n y ,以及第二式中的n y 及1+n y 均是准确值,则有,2441)()(1111−≈−−++++n n n n y x y y x y 从而可得以下的事后估计式,111111114()()51()()5n n n n n n n n y x y y y y x y y y ++++++++⎧−≈−−⎪⎪⎨⎪−≈−⎪⎩25可以期望,以上式估计的误差作为计算结果的补偿,可以提高计算精度.以n p 及n c 分别表示第n 步的预测值和校正值,则有以下的“预测-改进-校正-改进”方案(其中在1+n p 与1+n c 尚未计算出来的前提下,以n n c p −代替11++−n n c p :26预测:'112n n n hy y p +=−+预测的改进:)(5411n n n n c p p m −−=++计算:),(11'1+++=n n n m x f m校正:)(2'1'1++++=n n n n m y hy c校正的改进:)(511111++++−+=n n n n c p c y计算:),(11'1+++=n n n y x f y27例 用Euler 方法求解初值问题2'[0,0.6](0)1y y xy x y ⎧=−−∈⎨=⎩取0.2h =,要求保留六位小数. 解:Euler 迭代格式为2210.2()0.80.2k k k k k k k k y y y x y y x y +=+−−=−因此2821000(0.2)0.80.20.8y y y x y ≈=−= 22111(0.4)0.80.20.6144y y y x y ≈=−=23222(0.6)0.80.20.461321y y y x y ≈=−=29例 用改进的Euler 方法求解初值问题2'sin 0[0,0.6](0)1y y y x x y ⎧++=∈⎨=⎩取0.2h =,求(0.2),(0.4)y y 的近似值,要求保留六位小数.解:改进的Euler 格式为212211110.2(sin )0.2(sin sin )2k k k k k k k k k k k k k y y y y x y y y y x y y x +++++⎧=+−−⎪⎨=+−−−−⎪⎩30即,222110.820.08sin 0.1(0.80.2sin )sin k k k k k k k k y y y x y y x x ++=−−−则有1(0.2)0.807285y y ≈=,2(0.4)0.636650y y ≈=31§3 Runge -Kutta 方法Def.1如果一种方法的局部截断误差为)(1+p h O ,则称该方法具有p 阶精度. 323-2 Runge —Kutta 方法的基本思想上述的Taylor 级数法虽然可得到较高精度的近似公式,但计算导数比较麻烦. 这里介绍不用计算导数的方法.))(,()()()('1h x y h x f h x y hx y x y n n n n n θθθ++=+=−+——平均斜率.33如果粗略地以),(n n y x f 作为平均斜率,则得Euler 公式;如果以221K K +作为平均斜率,其中),(1n n y x f K =,),(112hK y x f K n n +=+,则得改进的Euler 公式.343-3 二阶的Runge -Kutta 方法对点n x 和)10(≤<+=+p ph x x n p n ,用这两点斜率的线性组合近似代替平均斜率,则得计算公式:11122121()(,)(,)n n n n n p n y y h K K K f x y K f x y phK λλ++⎧=++⎪=⎨⎪=+⎩35现确定系数p ,,21λλ,使得公式具有二阶精度. 因为,取n y 为()n y x ,则'1(,)(,())'()n n n n n nK f x y f x y x y x y === 再把2K 在),(n n y x 处展开,有36'21(,)(,)n p n n n n K f x y phK f x ph y phy +=+=++代入可得,'2''31122()()n n n n y y hy ph y O h λλλ+=++++'2(,)(,)(,)()n n x n n y n n n f x y f x y ph f x y phy O h =+⋅+⋅+'2(')(,)()n x y n n y ph f f y x y O h =+⋅+⋅+'''2()n n y ph y O h =+⋅+37相比较二阶Taylor 展开''2'12n n n n y h hy y y ++=+,有,⎪⎩⎪⎨⎧==+211221p λλλ满足此条件的公式称为二阶Runge -Kutta 公式.38可以验证改进的Euler 公式属于二阶Runge -Kutta 公式. 下列变形的Euler 公式也是二阶Runge -Kutta 公式:12121(,)(,)22n n n n n n y y hK K f x y h h K f x y K +⎧⎪=+⎪=⎨⎪⎪=++⎩393-4 三阶Runge -Kutta 公式同二阶Runge -Kutta 公式,考虑三点,,(01)n n p n q x x x p q ++≤≤≤试图用它们的斜率321,,K K K 的线性组合近似代替平均斜率,即有如下形式的公式:1112233121312()(,)(,)(,())n n n n n n n n y y h K K K K f x y K f x ph y phK K f x qh y qh rK sK λλλ+=+++⎧⎪=⎪⎨=++⎪⎪=+++⎩40把32,K K 在),(n n y x 处展开,通过与)(1+n x y 在n x 的直接Taylor 展式比较,可确定系数s r q p ,,,,,,321λλλ,满足下式,从而使得上述公式具有三阶精度,41特别地,2,1,1,21,32,61231=−======s r q p λλλ是其一特例.123232223311213161p q p q pqs r s λλλλλλλλ++=⎧⎪⎪+=⎪⎪⎪+=⎨⎪⎪=⎪⎪+=⎪⎩423-5 四阶Runge -Kutta 公式相同的方法,可以导出下列经典的四阶Runge -Kutta 公式:112341213243(22)6(,)(,)22(,)22(,)n n n n n n n n n n h y y K K K K K f x y h h K f x y K h h K f x y K K f x h y hK +⎧=++++⎪⎪=⎪⎪⎪=++⎨⎪⎪=++⎪⎪=++⎪⎩43例 用经典四阶Runge —Kutta 方法求解初值问题'83[0,0.4](0)1y y x y =−⎧∈⎨=⎩,取0.2h =,求(0.4)y 的近似值,要求保留六位小数.解:四阶Runge —Kutta 格式为44112341211123122241330.2(22)6(,)830.2(,)83(0.1) 5.6 2.120.2(,)83(0.1) 6.32 2.372(,0.2)83(0.2) 4.208 1.578k k k k k k k k k k k kk k k k ky y K K K K K f x y y K f x y K y K yK f x y K y K y K f x y K y K y ++++⎧=++++⎪⎪==−⎪⎪⎪=+=−+=−⎨⎪⎪=+=−+=−⎪⎪⎪=+=−+=−⎩则10.5494 1.2016k k y y +=+,45故12(0.2) 2.3004,(0.4) 2.4654y y y y ≈=≈=.注:由准确解382()33xy x e −=−可得(0.2) 2.300792,(0.4) 2.465871y y ==46§5 线性多步法基本思想:在计算1+i y 之前,已计算出一系列的近似值i y y ,,1",如果充分利用这些已知信息,可以期望会获得更高精度的)(1+i x y 的近似值1+i y .基本方法:基于数值积分与基于Taylor 展开的构造方法.475-1 基于数值积分的构造方法对方程),('y x f y =两边从i x 到1+i x 积分,则得∫++=+1),()()(1i ix x i i dxy x f x y x y 设)(x P r 是f (x , y )的插值多项式,由此可得以下的一般形式的计算公式:∫++=+1)(1i ix x r i i dxx P y y 48例 取线性插值))(,())(,()(11111+++++−−+−−=i i i i ii i i i i r x y x f x x x x x y x f x x x x x P ,则得到梯形法:)],(),([2111+++++=i i i i i i y x f y x f hy y495-2 Adams 显式公式在区间],[1+i i x x 上利用r +1个数据点),(,),,(),,(11r i r i i i i i f x f x f x −−−−"构造插值多项式)(x P r ,由牛顿后插公式(注意到:j i j i j f f −Δ=∇)j i jrj j i r f j t th x P −=Δ⎟⎟⎠⎞⎜⎜⎝⎛−−=+∑0)1()(其中!)1()1(j j s s s j s +−−=⎟⎟⎠⎞⎜⎜⎝⎛". 50可得10rj i i rj i jj y y h f αΔ+−==+∑——Adams 显式公式其中1(1)j j t dt j α−⎛⎞=−⎜⎟⎝⎠∫,它可写成:∑=−++=rj ji rj i i f h y y 01β515-3 Adams 隐式公式在区间],[1+i i x x 上利用r +1个数据点),(,),,(),,(1111+−+−++r i r i i i i i f x f x f x "构造插值多项式)(x P r ,由牛顿后插公式101)1()(+−=+Δ⎟⎟⎠⎞⎜⎜⎝⎛−−=+∑j i jrj ji r f j t th x P 可得*11rj i i rj i j j y y h f α+−+==+Δ∑——Adams 隐式公式52其中01(1)jj t dt j −−⎛⎞α=−⎜⎟⎝⎠∫,它又可写成: *11ri i rj i j j y y h f β+−+==+∑535-4 Adams 预测-校正公式以r =3时的Adams 显式与隐式公式为例. 此时,显式公式为)9375955(243211−−−+−+−+=i i i i i i f f f f hy y 利用Taylor 展式,容易计算局部截断误差为)(720251)5(5i x y h . 54)5199(242111−−+++−++=i i i i i i f f f f hy y 同样利用Taylor 展开可得,其局部截断误差为5(5)19()720i h y x −. 隐式公式为55⎪⎩⎪⎨⎧+−++=−+−+=−−+++−−−+)519),(9(24)9375955(24211113211i i i i i i i i i i i i i f f f y x f hy y f f f f h y y 注 利用2-5节的相同作法同样可以构造更精确的计算过程.可构造利用显式预测,隐式校正的计算公式:56§6 方程组与高阶方程的情形6-1 一阶方程组常微分方程初值问题为⎩⎨⎧==00)(),('y x y y x f y 此时T m y y y ),,(1"=,Tm f f f ),,(1"=. 此时上述的一切方法均可使用,只是注意y 与f 此时为向量.576-2 化高阶方程为一阶方程组解下列的m 阶方程()(1)'(1)(1)000000(,,',,)(),'(),,()m m m m y f x y y y y x y y x y yx y −−−⎧=⎨===⎩""令)1(21,,',−===m m y y y y y y ",则有58'12'23'1'12(,,,,)m m m m y y y y y yy f x y y y −⎧=⎪=⎪⎪⎨⎪=⎪⎪=⎩#"初始条件为:)1(00'002001)(,,)(,)(−===m m y x y y x y y x y "。
常微分方程解法常微分方程是数学中的一门重要分支,研究描述自然界和社会现象中变化规律的方程。
解常微分方程的方法多种多样,下面将介绍常见的几种解法。
一、分离变量法分离变量法适用于形如dy/dx=f(x)g(y)的一阶常微分方程。
解题步骤如下:1. 将方程写成dy/g(y)=f(x)dx的形式,将变量分离。
2. 对两边同时积分,得到∫dy/g(y)=∫f(x)dx。
3. 左边的积分可以通过换元或者使用常见函数的积分公式进行计算。
4. 右边的积分可以通过与左边的积分结果进行比较来判断是否需要使用特殊的积分技巧。
5. 对左右两边同时积分后,解出方程中的积分常数。
6. 将积分常数代回原方程中,得到完整的解。
二、常数变易法常数变易法适用于形如dy/dx+p(x)y=q(x)的一阶常微分方程。
解题步骤如下:1. 先求出对应的齐次方程dy/dx+p(x)y=0的通解。
2. 假设原方程的特解为y=u(x)v(x),其中u(x)是一个待定的函数,v(x)是齐次方程的通解。
3. 将y=u(x)v(x)代入原方程中,整理后得到关于u(x)和v(x)的方程。
4. 解出关于u(x)的方程,得到u(x)的值。
5. 将u(x)的值代入v(x)中,得到特解。
6. 特解与齐次方程的通解相加,即得到原方程的完整解。
三、二阶齐次线性方程解法二阶齐次线性方程的一般形式为d^2y/dx^2+p(x)dy/dx+q(x)y=0。
解题步骤如下:1. 求解对应的齐次方程d^2y/dx^2+p(x)dy/dx+q(x)y=0的特征方程r^2+p(x)r+q(x)=0,其中r为未知数。
2. 求解特征方程得到两个不同的根r1和r2。
3. 根据r1和r2的值,得到齐次方程的通解y=c1e^r1x+c2e^r2x,其中c1、c2为任意常数。
四、变量替换法变量替换法适用于形如dy/dx=f(y/x)的一阶常微分方程。
解题步骤如下:1. 进行变量替换,令u=y/x,即y=ux。
常微分方程的基本概念与解法常微分方程是数学中的一门重要分支,用于描述自然界中的各种变化规律。
本文将介绍常微分方程的基本概念和常见的解法。
一、常微分方程的概念常微分方程是关于未知函数的导数和自变量之间的关系式,其中自变量通常表示时间。
一般形式为dy/dx = f(x, y),其中y是未知函数,f(x, y)是已知函数。
常微分方程可分为一阶常微分方程和高阶常微分方程两种。
1. 一阶常微分方程一阶常微分方程是指未知函数的导数只涉及到一阶导数的方程。
一阶常微分方程的一般形式为dy/dx = f(x, y),也可以写成f(x, y)dx - dy = 0。
其中f(x, y)是已知函数,x是自变量,y是未知函数。
2. 高阶常微分方程高阶常微分方程是指未知函数的导数涉及到高阶导数的方程。
高阶常微分方程的一般形式为d^n y/dx^n = f(x, y, dy/dx, d^2 y/dx^2, ..., d^(n-1) y/dx^(n-1)),其中n为正整数,f是已知函数,x是自变量,y是未知函数。
二、常微分方程的解法解常微分方程的方法多种多样,根据方程的类型和特点选择不同的解法。
1. 可分离变量法当方程可以写成dy/dx = g(x)h(y)的形式时,可以使用可分离变量法解方程。
这种方法的关键是将变量分离,即将含有y的项移到方程的一边,含有x的项移到方程的另一边,然后分别积分得到x和y的表达式。
2. 线性常微分方程的求解线性常微分方程是指方程可以写成dy/dx + P(x)y = Q(x)的形式。
对于线性常微分方程,可以使用积分因子法求解。
首先找到一个函数u(x),使得dy/dx + P(x)y = Q(x)乘以u(x)后变为全导数,则原方程可以写成d(uy)/dx = Q(x)u(x)的形式。
然后对等式两边进行积分并解得y的表达式。
3. 齐次线性常微分方程的求解齐次线性常微分方程是指方程可以写成dy/dx = f(y/x)的形式。
第⼗章常微分⽅程(组)求解⼀、求微分⽅程的解(⼀)相关函数(命令)及简介1, dsolve('equ1','equ2',…):Matlab 求微分⽅程的解析解。
equ1,equ2,…为⽅程(或条件)。
写⽅程(或条件)时⽤Dy 表⽰y 关于⾃变量的⼀阶导数,⽤D2y 表⽰y 关于⾃变量的⼆阶导数,依次类推。
2, simplify(s):对表达式s 使⽤maple 的化简规则进⾏化简。
例如: syms xsimplify(sin(x)^2+cos(x)^2) ans=13,[r,how]=simple(s):由于Matlab 提供了多种化简规则,simple 命令就是对表达式s ⽤各种规则进⾏化简,然后⽤r 返回最简形式,how 返回形成这种形式所⽤的规则。
例如: syms x[r,how]=simple(cos(x)^2-sin(x)^2) r=cos(2*x) how=combine4,[T,Y]=solver(odefun,tspan,y0),求微分⽅程的数值解。
(1)其中的solver 为命令ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb 之⼀。
(2)odefun 是显式常微分⽅程:00(,),().dyf t y dty t y ?==? (3)在积分区间0[,]f tspan t t =上,从0t 到f t ,⽤初始条件0y 求解。
(4)要获得问题在其他指定时间点012,,,...t t t 上的解,则令012[,,,...,]f tspan t t t t =(要求是单调的)(5)因为没有⼀种算法可以有效地解决所有的ODE 问题,为此,Matlab 提供了多种求解器solver ,对于不同的ODE 问题,采⽤不同的solver 。
求解器solver ODE 类型特点说明ode45 ⾮刚性单步算法:4,5阶的Runge-Kutta ⼤部分场合的⾸选算法⽅程;累计截断误差达3()x ?ode23 ⾮刚性单步算法:2,3阶的Runge-Kutta 使⽤于精度较低的情形⽅程;累计截断误差达3()x ?ode113 ⾮刚性多步法:Adams 算法;⾼低精度均计算时间⽐ode45短可到3610~10--。