常微分方程及其matlab求解毕业论文设计.doc
常微分方程及其matlab求解目 录摘要1关键字1引言1第一章 一阶微分方程的初等解法11.1 变量分离微分方程与变量代换11.1.1变量分离微分方程21.1.2 可化为变量分离微分方程的类型21.2线性分式方程31.3线性方程与伯努利方程41.4全微分方程与积分因子61.4.1 全微分方程61.4.2 积分因子71.5一阶隐方程81.5.1可解出y或x的方程的解法81.5.2 不显含y(或x)的方程101.6 matlab 在一阶方程中的应用10第二章 高阶微分方程的解法132.1 线性微分方程的一般理论131 齐次线性微分方程的解的性质与结构132.非奇次线性微分方程与常数变易法142.2常系数线性微分方程的解法141.复值函数与复值解152.3.非齐次线性微分方程的比较系数法182.4用matlab解高阶线性方程20第三章 线性微分方程组243.1矩阵指数243.2基解矩阵的计算251.矩阵A存在n个线性无关的特征向量的情形253.3用MATLAB解线性方程组29致 谢30参考文献30Ordinary Differential Equation And Carry On By MATLAB30Abstract30Keywords30 常微分方程及其matlab求解 摘要:本文主要讨论了一阶常微分方程和高阶常微分方程的相关解法问题,并用matlab求解相关方程文章首先探讨了一阶常微分方程的解法,讨论的主要类型有:变量可分离方程、可化为变量可分离方程的类型、齐次方程、一阶线性微分方程;在解决这些类型的一阶常微分方程时,用到的方法有:变量分离法和一阶线性方程的常数变易法然后讨论了高阶常微分方程的解法的问题,所讨论的解法有:非齐线性方程的常数变易法、常系数齐线性方程的欧拉待定指数法和非齐线性方程的比较系数法最后简单讨论了线性微分方程组的解法和性质。关键字: 一阶常微分方程 高阶常微分方程 解法 matlabOrdinary Differential Equation And Carry On By MATLAB Abstract: This paper mainly discusses some related solutions of the first-order and higher-order ordinary differential equations and solve the relevant equations with matlab. This paper firstly introduces the basic concept of differential equations on such a basis, the paper probes into the solutions of the first-order differential equations including the main types such as variable separable equation, separable variable equations which can be translated into the equation homogeneous equation,and a linear differential equations To solve such types of first-order differential equation, the methods can be used: variable separation and a linear equation of constant change of lawThen,it discusses the solutions of the higher-order differential equation The solution are non-homogeneous linear equation of constant variation , Euler be determined index of constant coefficient of linear equations, nonhomogeneous linear equations comparison method . Finally,Briefly discussed the solution of linear differential equations and their properties.Keywords: first-order ordinary differential equations; higher-order ordinary differential equations; Solution; MATLAB引言: 常微分方程作为现代数学的一个重要分支,它的产生几乎与微积分是同时代的,经过历史的演变,它已经是各种应用学科和数学理论研究都不可缺少的工具。随着计算机技术的飞速发展,更使它的应用渗透到力学、天文、物理等各个领域。遗憾的是,绝大多数微分方程定解问题的解不能以实用的解析形式来表示,这就产生了理论与应用的矛盾:一方面,人们建立了大量实用的数学模型,列出了反映客观现象的微分方程;另一方面,人们又无法得到这些方程的准确解以定量地描述客观过程。从20世纪80年代以来,世界各国所开发的数学类科技软件多达几十种,在我国流行的数学软件主要有四种:MATLAB、Mathematica、Maple和MathCAD。其中,MATLAB有着其它几种数学软件无法比拟的优势和适用面,近几年,MATLAB已成为科学工作者首选的数学软件。本文把微分方程求解和MATLAB有机的结合起来,全面介绍了微分方程的求解在MATLAB中的实现,使得让数学基础不深厚的读者同样能轻易利用MATLAB解决较高深的微分方程问题。第一章 一阶微分方程的初等解法1.1 变量分离微分方程与变量代换 变量分离微分方程是一种最简单也是最基本的可用初等方法求解的微分方程类型,对一般的微分方程总是设法寻求适当的变量代换,将其化为变量分离微分方程来求解。1.1.1变量分离微分方程形如 (1.1)的方程,称为变量分离微分方程,其中分别是的连续函数。如果,方程改写为: (1.2)如果是方程的解,且,则在解的定义域内满足 (1.3)两边积分得 (1.4)则是由隐函数方程 (1.5)所确定的函数,对一切允许值C,都将是方程的解,即(1.5)实际给出了方程的通解公式。如果有实根(k=1,2,3,,m),则可以验证(k=1,2,3,m)也能是方程的解。有时可以通过扩大常数C的取值范围,使其包含于通解表达式中。1.1.2 可化为变量分离微分方程的类型对于方程 在变量代换下变成 (1.6)整理得: (1.7)不难看出,得到的方程为变量分离微分方程当且仅当: (1.8)由此我们可得出以下结论: 变量代换能化为变量分离微分方程的一般类型为: (1.9)其中均为任意的连续函数,在变量代换u下,方程化为变量分离方程 (1.10)求出(1.10)的解,用代回原变量,即求的原方程解.1.2线性分式方程 我们把形如 (1.11) 的方程称为线性分式方程,这里均为常数。 当时,方程(1-11)是齐次方程,当不全为零时,如何化为某种已知的可解类型? 当的情形。设,则方程可以写成 (1.12)令,方程就化为变量分离微分方程 (1.13) 当时解方程组 (1.14)设所求得的解为 。作坐标平移变换 (1.15)将方程(1.11)变成齐次方程 (1.16)经过变换将方程(1-16)化为变量微分方程。求解所得变量微分方程后,逐步代回原来的变量,求得原方程的解。1.3线性方程与伯努利方程 我们把一阶线性方程通常写成其标准形式: (1.17)其中,为连续函数,当时,方程成为: (1.18)称方程(1.18)为方程(1.17)对应的齐次线性方程,而称(1.17)为非齐次线性方程。齐次线性方程(1.18)是变量分离微分方程,可求其通解为: (1.19)为了求(1.17)的解,设想用两个新的未知函数 的乘积表示原来的未知函数,即: (1.20)代入方程得 (1.21)将其整理得: (1.22)设为齐次方程的解,则方程变成 (1.23)这是一个变量分离微分方程,很容易求得其通解为; (1.24)最后得到非齐次线性方程的通解 (1.25)以上这种方法被称为常数变易法。 形如 (1.26)的方程称为伯努利方程,将方程(1.26)两边同时除以,方程变成由于即关于y的导数恰好为的1-n(常数)倍,于是方程化为令伯努利方程化为了线性方程求得此线性方程的通解,代回原变量,就可得到伯努利方程的通解。此外,如果n>0,则y=0显然也是伯努利方程的解。1.4全微分方程与积分因子全微分方程是另一种既简单又基本的可积方程类型,一般的方程可以通过求得其积分因子,乘以积分因子而化成全微分方程求解,这是一阶微分方程初等积分方法的第二种有效途径。1.4.1 全微分方程我们讨论一阶对称形方程M(x,y)dx+N(x,y)dy=0. (1.27) 而且约定M(x,y),N(x,y)在所考虑的单连通区域G都具有一阶连续偏导数。如果其左端恰好是一个全微分,即存在一个可微的二元函数u(x,y),使得M(x,y)dx+N(x,y)dy=du(x,y), (1.28)则称这个方程为全微分方程,u(x,y)称为左端全微分的一个原函数. 根据数学分析中关于线积分与路径无关的几个等价命题及全微分方程的定义,方程(1.27)为全微分方程的充分必要条件是:在所考虑的单连通区域G内有 (1.29)如果方程(1.27)是全微分方程,设u(x,y)是使得条件(1.28)成立的可微函数,则方程(1.27)就成为du(x,y)=0.设函数y=(x)是方程(1.27)的解,则 (1.30)从而 (1.31)这里C是某个常数。这表明,全微分方程(1.27)的解是由隐方程u=(x,y)=C (1.32)所确定的隐函数。反之,对于保证隐方程(1.32)有解的任意常数C,方程(1.32)确定的隐函数是则,于是 (1.33)这表明是全微分方程(1.27)的解。总而言之,全微分方程(1.27)的解是由隐函数方程(1.32)所确定的隐函数,反之由方程(1.32)所确定的隐函数也是必然是全微分方程(1.27)的解。求出方程(1.27)左端微分式的原函数u(x,y)成为解全微分方程的关键。利用与路径无关的线积分化为定积分求这个原函数的方法,不失一般性,取,有 (1.34)最后得到全微分方程(1.27)的通解为u(x,y)=C,这里C为任意常数。1.4.2 积分因子下面我们看这样一个简单的方程ydx-xdy=0.它显然不是全微分方程,但只要分别乘以下列因子方程就分别化为这些都是全微分方程,相应得到方程的通解分别为由此可见,非全微分方程可以通过乘以某个非零因子而化为全微分方程,并且这样的因子还不是唯一的,相应于方程乘以不同的这样的因子化成的全微分方程所得到的通解在形式上还可以是多样的。如果存在连续可微的函数使得 (1.35)成为一个全微分方程,则称为方程(1.27)的一个积分因子.显然,方程(1.35)与方程(1.27)是同解的.为了求方程(1.27)的积分因子,首先需了解作为方程(1.27)的因子所具备的条件.根据积分因子的定义及全微分方程的充要条件(1.33),为方程(1.27)的积分因子当且仅当即 (1.36)这意味着要求一般方程(1.27)的积分因子,需要一个一阶线性偏微分方程(1.36),这比解方程(1.27)本身反而困难得多.尽管如此,我们可以考虑求某些特殊形式的积分因子,以简化条件(1.36)使其求解成为可能.1.5一阶隐方程接着我们讨论一阶隐方程. (1.37)如果可以将从方程中解出,求解方程就归结到一个或几个显示微分方程的求解问题.,但是如果难以从方程中解出,则可以采用引进参数的办法使之变成导数已解出的方程类型,这就是现在主要介绍的方法。1.5.1可解出y或x的方程的解法 1.首先讨论形如 (1.38)的方程的解法,这里假设函数有连续的偏导数。 引进参数,则(1.38)变为 (1.39)将(1.39)两边对x 求导数,并以代入,得到 (1.40)方程(1.40)是关于x,p的一阶微分方程,但它的导数已解出,于是我们可以按照前面的方法给出解。若已求得(1.40)的通解的形式为: , (1.41) 代入(1.39)得 (1.42)若已求得(1.40)的通解的形式为: (1.43)则得到(1.38)的参数形式的通解为 (1.44)其中p为参数,c为任意常数。若已求得(1.40)的通解的形式为: (1.45)则得到(1.38)的参数形式的通解为: (1.46)其中p为参数,c为任意常数。2.形如: (1.47)的方程的求解方法与方程(1.38)的求解方法完全类似,这里假设函数有连续偏导数。 引进参数则(1.47)变为: (1.48)将式(1.48)两边对y 求导数,然后以代入,得到 (1.49)方程(1.49)是关于y,p的一阶微分方程,但是它的导数已解出,可按照之前的方法求解。设求得通解为: (1.50)则(1.47)的通解为: (1.51)1.5.2 不显含y(或x)的方程 3.现在讨论形如 =0 (1.52)的方程的解法。记,从几何的观点看,代表Oxp平面上的一条曲线,设把这曲线表示为适当的参数形式 (1.53)这里t为参数,在注意到,沿方程(1.52)的任何一条积分曲线上,恒满足基本条件,以(1.53)代入上式得 (1.54)两边积分,得到 (1.55)于是得到方程(1.52)的参数形式的通解为 (1.56)C为任意常数。1.6 matlab 在一阶方程中的应用设计举例1 求方程的通解和满足初始条件的解.>>clear all;eq='(1+x*exp(x*y)*Dy=-(1+y*exp(x*y)'sols=dsolve(eq,'x')y=dsolve(eq,'y(0)=-1','x')运行结果如下sols=-(x*C1+x2+lambertw(x*exp(-(C1+x)/xy=-(x2+lambertw(x*wxp(-x2)/x设计举例2判断方程为线性方程,绘出积分曲线簇.>>maple(with(DEtools));maple(odeadvisor(x*diff(y(x),x)+y(x)=sin(x)上机运行显示_ linear表示方程确实为线性。再运行如下程序:eq='x*Dy+y=sin(x)'y=dsolve(eq,'x')for i=-4:0.5:4ezplot(subs(y,'C1',i),-4,4,-5,5,5)hold onend运行结果如下y =-(C2 + cos(x)/x 设计举例3 求单变量积分因子的函数与求形如的积分因子.function mu=intfactor(M,N)G=diff(M,y)-diff(N,;x);if diff(G/N,y)= =0 mu=exp(int(G/N,x);elseif diff(G/M,x)= =0 mu=exp(int(-G/M,y);else mu=Empty;endend以下面两个方程为例调用这个函数求出积分因子:>>syms x yeq1=exp(x)+3*y2+2*x*y*Dy=0;M=exp(x)+3*y2;N=2*x*y;mu1=intfactor(M,N)eq2=y+(exp(1/y)-x)*Dy=0;M=y;N=exp(1/y)-x;mu2=intfactor(M,N)分别返回所求积分因子为mn1=和mu2=1/.下面是求形如的积分因子的例子:>>eq3=y+(x-3*x3*y2)*Dy=0;M=y;N=x-3*x3*y2;G=diff(M,y)-diff(N,x);f=simple(G/y*N-x*M)根据运行所得的f=-3/x/y,再运行>>mu=subs(exp(int(-3/u,u),u,x*y)求得积分因子为mu=1/(x*y) .设计举例4验证齐次方程有形如的积分因子. 我们只要验证乘以原方程后会是全微分方程.>>cleareq=sym(x2*y-2*x*y+(3*x2*y-33)*Dy=0)M=sym(x2*y-2*x*y2);N=sym(3*x2*y-x3);mu=simple(1/(x*M+y*N)eq1=simple(mu*eq)首先请注意到这里都是用sym()定义方程与函数表达式,因为要对它们进行乘积的运算.这里求出了用乘以原方程以后的新方程:eq1=1/y-2/x+3/y*Dy-x/y2*Dy=0.为了用Maple的DEtools中的方程类型判断指令odeadvisor,得先将它的形式加以改变:>>maple(with(DEtools);Maple(odeadvisor(1/y(x)-2/x+(3/y(x)-x/y(x)2*diff(y(x),x)=0,exact)答案是ans=_ exact.设计举例5解隐方程先试图在MATLAB中直接用dsolve求解,sols=dsolve(Dy+2*x*Dy-y=0,x)结果返回一个形式相当复杂的显式解.对于某些隐方程,我们通过Maple接口,用dsolve指令加上参数implicit可能求出方程的参数形式的解.>>clear allsols=maple(dsolve(diff(y(x),x)3+2*x*diff(y(x),)-y(x)=0,implicit)返回的结果为sols=x(_T)=1/_T2*(-3/4*_T4+_C1),y=(_T)=_T3+2/_T*(-3/4*_T4+_C1),y(x)=0有时也可以再加上参数parametric制定返回参数形式的解.>>sols=maple(dsolve(diff(y(x),x)3+2*x*diff(y(x),x)-y(x)=0,parametric,implicit)返回结果形式上略有不同:sols=x(_T)=1/4*(-3*_T4+2*_C1)/_T2, y(_T)=1/2*(-_T4+2*_C1)/_T.第二章 高阶微分方程的解法2.1 线性微分方程的一般理论我们讨论如下的n阶线性微分方程 (2.1)其中都是区间上的连续函数。如果,则方程变为: (2.2)我们称之为n阶齐次线性微分方程,而称(2.1)为n阶非齐次线性微分方程。定理1 如果都是区间上的连续函数,则对于任一及任意的,方程(2.1)存在唯一解,定义于区间上,且满足初值条件 (2.3)1 齐次线性微分方程的解的性质与结构首先讨论齐次线性微分方程 定理2 如果是方程2.2的k个解,则它们的线性组合也是2.2的解,这里是任意常数。特别地,当时,即方程2.2有解 (2.4)它含有n个任意常数,我们需要知道2.4在什么条件下能够成为2.2的通解,为了讨论需要,我们引进函数线性相关和线性无关及朗斯基行列式等概念。如果存在不全为零的常数,使得恒等式对于所有都成立,称这些函数是线性相关的,否则就称线性无关。由定义在区间上的k个可微k-1次的函数所组成的行列式称为朗斯基行列式。定理 3 若函数在区间上线性相关,则在a,b上它们的朗斯基行列式。否则定理 4 n阶齐次线性微分方程2.2一定存在n个线性无关的解。定理5 如果 是方程2.2的n个线性无关的解,则方程2.2的通解可表示为: (2.5)其中是任意常数。2.非奇次线性微分方程与常数变易法考虑n阶非齐次线性微分方程 (2.1)易见(2.2)是它的特殊形式,可指出两者之间解的性质和结构有十分密切的联系,可直接验证如下性质 性质1 如果方程(2.2)的解,则也是(2.1)的解性质2 方程(2.1)的任意两个解之差必是(2.2)的解其次我们有如下的定理定理6 设为方程(2.2)的基本解组,而是方程(2.1)的某一解,则方程(2.1)的通解可表为: (2.6)其中 为任意常数2.2常系数线性微分方程的解法1.复值函数与复值解如果对于区间中的每一实数t,有复数与它对应,其中是在区间上定义的实数,是虚数单位,我们称为在区间上给定了一个复值函数。在讨论常系数线性微分方程时,函数将起着重要的作用,这里K是复数常数,设是任一复数,这里是实数,而t为实变量。我们定义 (2.7)可推得 (2.8a) (2.8b)如果以表示复数的共轭复数,那么容易得: (2.9)定理7 如果方程(2.2)中所有系数都是实值函数,而 是方程的复值解,则的实部、虚部和共轭复值解函数也都是方程(2.2)的解2.2设齐次线性微分方程中所有系数都是常数,即方程有如下形状 (2.10)其中为n阶常系数齐次线性微分方程.正如我们前面所指出的,它的求解问题可以归结为代数方程求根问题,现在就来具体讨论方程(2.10)的解法.按照一般的理论,为了求方程(4.10)的通解,只需要求出它的基本解组.下面介绍求(2.10)的基本解组的特征根法回顾一阶常系数齐次线性微分方程,我们知道它有形如的解,且它的通解就是.这启示我们对于方程(2.10)也去试求指数函数形式的解 , (2.11)其中是待定常数,可以是实的,也可以是复的.注意到其中是的n次多项式.易知,(2.11)为方程(2.10)的解的充要条件是是代数方程 (2.12)的根.因此,方程(2.12)将起着预示方程(2.10)的解的特性的作用,我们称它为方程(2.10)的特征方程,它的根就称为特征根.下面根据特征根的不同情况分别进行讨论.(1) 特征根是单根的情形设是特征方程(2.12)的n个彼此不相等的根,则相应地方程(2.10)有如下n个解: (2.13)我们指出这n个解在区间上线性无关,从而组成方程的基本解组.事实上,这时如果均为实数,则2.13是方程的线性无关的实数解。如果特征方程有复根,复根将成对出现。设,则,也是特征根,因而与这对共轭复根对应的,方程2.10两个复值解 (2.14a) (2.14b)根据定理7,它们的实部和虚部也是方程的根,这样一来,对应于特征方程的一对共轭复根,我们可求得方程2.10的两个实根 (2)特征根有重根的情形 设特征方程有k重根,则如所周知, (2.15)先设,即特征方程有因子,于是也就是特征方程的形状为 (2.16)而对应的2.10变为 (2.17)易见它有k个解,而且它们是线性无关的,这样一来,特征方程的k重零根就对应于方程(2.10)的k个线性无关解。如果,我们作变量变换,注意到 (2.18)可得 (2.19)于是(2.10)化为:其中仍为常数,而相应的特征方程为 (2.20)直接计算得, (2.21)可见(2.12)的根,对应于(2.20)的根,而且重数相同,这样问题就化为前面已经讨论过的情形了。我们知道,方程(2.20)的对应于方程(2.19)的个解,因而对应于特征方程(2.12)的,方程(2.10)有个解 (2.22)同样,假设特征方程(2.10)的其他根的重数依次为,而且,则方程(2.10)对应地有解 (2.23)这样(2.22)和(2.23)就组成全部2.10的全部解。对于特征方程有重复根的情况,譬如假设是k重特征根,则也是k重特征根,仿(1)一样处理,我们将得到方程(2.10)的2k个实值解 2.3.非齐次线性微分方程的比较系数法现在讨论常系数非齐次线性微分方程 (2.24)的求解问题,这里是常数。本来有了前面的讨论结果这一问题已经可以解决了,但是求解往往是比较繁琐的,而且必须经过积分运算,下面介绍当具有某些特殊形状时所适用的方法比较系数法类型设,其中及为实常数,那么方程(2.24)有形如 (2.25)的特解,其中k为特征方程F()=0的根的重数(单根相当于k=1;当不是特征根时,取k=0),而是待定常数,可以通过比较系数来确定. 如果,则此时现在再分两种情形讨论.(a) 在不是特征根的情形,即,因而,这时取k=0,以代入方程(2.24),并比较t的同次幂的系数,得到常数必须满足的方程 (2.26)注意到,这些待定常数可以从方程组(2.26)唯一地逐个确定出来.(b)在是k重特征根的情形,而,也就是.这时相应地,方程(2.24)将为 (2.27)令,则方程(2.27)化为 (2.28)对方程()来说,由于已不是它的特征根.因此,由(1)知它有形如的特解,因而方程(2.28)有特解满足这表明是t的m+k次多项式,其中t的幂次的项带有任意常数.但因我们只需要知道一个特解就够了.我们特别地取这些任意常数均为零,于是我们得到方程(2.28)的一个特解这里是已确定了的常数.如果,则此时可像 做法一样,作变量变换,将方程(2.24)化为 (2.29)其中都是常数.并且特征方程(2.12)的根对应于方程(2.29)的特征方程的零根,并且重数也相同.因此,利用上面的结果就有如下结论:在不是特征方程(2.12)的根的情形,方程(2.29)有特解从而方程(2.24)有特解;在是特征方程(2.12)的k重根的情形,方程(2.29)有特解,从而方程(2.24)有特解类型设,其中为常数,而A(t),B(t)是带实数系数的t的多项式,其中一个的次数为m,而另一个的次数不超过m,那么我们有如下结论:方程(2.24)有形如 (2.30)的特解,这里k为特征方程的根的重数,而P(t),Q(t)均为