当前位置:文档之家› 微分方程的基础知识及解析解

微分方程的基础知识及解析解

微分方程的基础知识及解析解微分方程的基础知识与练习(一)微分方程基本概念:首先通过一个具体的问题来给出微分方程的基本概念。

(1)一条曲线通过点(1,2),且在该曲线上任一点M (x ,y )处的切线的斜率为2x ,求这条曲线的方程。

解 设曲线方程为)(x y y =.由导数的几何意义可知函数)(x y y =满足x dxdy 2= (1) 同时还满足以下条件:1=x 时,2=y (2)把(1)式两端积分,得⎰=xdx y 2 即 C x y +=2 (3)其中C 是任意常数。

把条件(2)代入(3)式,得1=C ,由此解出C 并代入(3)式,得到所求曲线方程:12+=x y (4)(2)列车在水平直线路上以20s m /的速度行驶;当制动时列车获得加速度2/4.0s m -.问开始制动后多少时间列车才能停住,以及列车在这段时间里行驶了多少路程?解 设列车开始制动后t 秒时行驶了s 米。

根据题意,反映制动阶段列车运动规律的函数)(t s s =满足:4.022-=dt s d (5) 此外,还满足条件:0=t 时,20,0===dt ds v s (6) (5)式两端积分一次得:14.0C t dtds v +-== (7) 再积分一次得2122.0C t C t s ++-= (8)其中21,C C 都是任意常数。

把条件“0=t 时20=v ”和“0=t 时0=s ”分别代入(7)式和(8)式,得0 ,2021==C C把21,C C 的值代入(7)及(8)式得,204.0+-=t v (9)t t s 202.02+-= (10)在(9)式中令0=v ,得到列车从开始制动到完全停止所需的时间:)(504.020s t ==。

再把5=t 代入(10)式,得到列车在制动阶段行驶的路程).(5005020502.02m s =⨯+⨯-=上述两个例子中的关系式(1)和(5),(6)都含有未知函数的导数,它们都是微分方程。

1.微分方程的概念一般地,凡含有未知函数、未知函数的导数及自变量的方程,叫做微分方程。

未知函数是一元函数的方程叫做常微分方程;未知函数是多元函数的方程,叫做偏微分方程。

我们只研究常微分方程。

微分方程中所出现的未知函数的最高阶导数的阶数,叫做微分方程的阶。

例如,方程(1)是一阶微分方程;方程(5)是二阶微分方程方程。

又如,方程()x y y y y y 2sin 5'12''10'''44=+-+-是四阶微分方程。

一般地,n 阶微分方程的形式是()(,,',...,)0,n F x y y y = (11)其中F 是个2+n 变量的函数。

这里必须指出,在方程(11)中,)(n y 是必须出现的,而)1(,...,',,-n y y y x 等变量则可以不出现。

例如n 阶微分方程01)(=+n y中,除)(n y 外,其他变量都没有出现。

由前面的例子我们看到,在研究某些实际问题时,首先要建立微分方程,然后找出满足微分方程的函数,就是说,找出这样的函数 ,把这函数代入微分方程能使该方程成为恒等式。

这个函数就叫做该微分方程的解。

例如,函数(3)和(4)都是微分方程(1)的解;函数(8)和(10)都是微分方程(5)的解。

如果微分方程的解中含有任意常数,且任意常数的个数与微分方程的阶数相同,这样的解叫做微分方程的通解。

例如,函数(3)是方程(1)的解,它含有一个任意常数,而方程(1)是一阶的,所以函数(3)是方程(1)的通解。

又如,函数(8)是方程的解,它含有两个任意常数,而方程(5)是二阶的,所以函数(8)是方程(5)的通解。

由于通解中含有任意常数,所以它还不能完全确定地反映某一客观事物的规律性,必须确定这些常数的值。

为此,要根据问题的实际情况提出确定这些常数的条件。

例如,例1中的条件(2),例2中的条件(6),便是这样的条件。

设微分方程中的未知函数为)(x y y =,如果微分方程是一阶的,通常用来确定任意常数的条件是0x x =时,0y y =,或写成 00|y y x x ==其中0x ,0y 都是给定的值;如果微分方程是二阶的,通常用来确定任意常数的条件是:0x x =时,0y y =,'1y y =或写成 00|y y x x ==,0'|1x x y y ==其中0x ,0y 和1y 都是给定的值。

上述条件叫做初始条件。

确定了通解中的任意常数以后,就得到了微分方程的特解。

例如(4)式是方程(1)满足条件(2)的特解;(10)式是方程(5)满足条件(6)的特解。

求微分方程),('y x f y =满足初始条件00|y y x x ==的特解这样一个问题,叫做一阶微分方程的初值问题,记作⎩⎨⎧===.|),,('00y y y x f y x x (13) 二阶微分方程的初值问题是00''(,,'),|,'|1x x x x y f x y y y y y y ===⎧⎪⎨==⎪⎩ 3、 例题例1 验证:函数kt C kt C x sin cos 21+= (14)是微分方程0222=+x k dtx d (15) 的解。

解 求出所给函数(14)的导数,cos sin 21kt kC kt kC dtdx +-= )sin cos (sin cos 212221222kt C kt C k kt C k kt C k dtx d +-=--= 把22dtx d 及x 的表达式代入方程(15)得 )sin cos (212kt C kt C k +-+)sin cos (212kt C kt C k +0≡函数(14)及其导数代入方程(15)后成为一个恒等式,因此函数(14)是微分方程(15)的解。

用程序来实现:>> syms k t C1 C2;>> x=C1*cos(k*t)+C2*sin(k*t);>> diff(x,t,2)+k^2*xans =k^2*(C1*cos(k*t) + C2*sin(k*t)) - C1*k^2*cos(k*t) - C2*k^2*sin(k*t) >> simple(ans)(二)微分方程的解 一、几个会用到的函数:1、solve 函数:Matlab 中solve 函数主要是用来求解线性方程组的解析解或者精确解。

solve 函数的语法定义主要有以下四种:solve(‘eq ’)solve(‘eq ’, ‘var ’)solve(‘eq1’,’eq2’, …,’ eqn ’)g = solve(‘eq1’, ‘eq2’, …,’ eqn ’, ‘var1’, ‘var2’, …, ‘varn ’)eq 代表字符串形式的方程,var 代表的是变量。

例1:解方程02=++c bx ax程序是:syms a b c x;solve('a*x^2+b*x+c') ( 也可写成solve('a*x^2+b*x+c=0') )当没有指定变量的时候,matlab 默认求解的是关于x 的解,求解的结果为: ans =-(b + (b^2 - 4*a*c)^(1/2))/(2*a)-(b - (b^2 - 4*a*c)^(1/2))/(2*a)d当指定变量为b 的时候:solve('a*x^2+b*x+c','b')求解的结果为:ans =-(a*x^2 + c)/xs = -(a*x^2 + c)/x例2:对于方程组⎩⎨⎧=-=+5111y x y x 的情况S=solve('x+y=1','x-11*y=5');S.xS.y>> S=[S.x,S.y](这里或者写成x=S.x y=S.y) 如果解得是一个方程组,而且采用了形如[a,b]=solve(a+b=1, 2a-b=4ab) 的格式,那么,在MATLAB R2014a 中没问题,可以保证输出的a ,b 就等于相应的解,但是在R2012b 等早先版本中不能保证输出的顺序就是你声明变量时的顺序。

所以最好采用g=solve(a+b=1, 2a-b=4ab)这种单输出格式,这样输出的是一个结构体,g.a 和g.b 就是对应的解。

S =[ 4/3, -1/3]一、 微分方程的解析解格式:dsolve(‘方程1’, ‘方程2’,…‘方程n’, ‘初始条件’, ‘自变量’)记号: 在表达微分方程时,用字母D 表示求微分,D2y 、D3y 等表示求高阶微分.任何D 后所跟的字母为因变量,自变量可以指定或由系统规则选定为确省,默认自变量是t例如,微分方程 022=dx yd 应表达为:D2y=0.例1:求解微分方程22x xe xy dxdy -=+,并加以验证. 求解本问题的Matlab 程序为:syms x y %line1y=dsolve('Dy+2*x*y=x*exp(-x^2)','x') %line2diff(y,x)+2*x*y-x*exp(-x^2) %line3simplify(diff(y,x)+2*x*y-x*exp(-x^2)) %line4说明:(1) 行line1是用命令定义x,y 为符号变量.这里可以不写,但为确保正确性,建议写上;(2) 行line2是用命令求出的微分方程的解:1/2*exp(-x^2)*x^2+exp(-x^2)*C1(3) 行line3使用所求得的解.这里是将解代入原微分方程,结果应该为0,但这里给出:-x^3*exp(-x^2)-2*x*exp(-x^2)*C1+2*x*(1/2*exp(-x^2)*x^2+exp(-x^2)*C1)(4) 行line4 用 simplify() (simple())函数对上式进行化简,结果为 0, 表明)(x y y =的确是微分方程的解.例2:先求微分方程0'=-+x e y xy 的通解,再求在初始条件e y 2)1(=下的特解,并画出特解函数的图形.求解本问题的 Matlab 程序为:syms x yy=dsolve('x*Dy+y-exp(x)=0', 'x')结果y =(exp(x)+C1)/x求特解两个方法1.y=dsolve('x*Dy+y-exp(x)=0','y(1)=2*exp(1)', 'x')结果y =(exp(x)+exp(1))/x2.C1= solve('2*exp(1)=exp(1)+C1','C1')结果C1 =exp(1)y =(exp(x)+exp(-x^2)结果(exp(x)+exp(1))/xezplot(y)例3:求微分方程组⎪⎪⎩⎪⎪⎨⎧=--=++035y x dtdy e y x dt dx t 在初始条件0|,1|00====t t y x 下的特解,并画出解函数的图形.求解本问题的 Matlab 程序为:syms x y ta=dsolve('Dx+5*x+y=exp(t)','Dy-x-3*y=0','x(0)=1','y(0)=0','t');x=a.xy=a.ysimple(x);simple(y);ezplot(x,y,[0,1.3]);axis auto %坐标刻度选默认值例4 先求微分方程的通解,再求微分方程的特解.⎪⎩⎪⎨⎧===++15)0(',0)0(029422y y y dx dydx yd程序是:dsolve('D2y+4*Dy+29*y=0','y(0)=0,Dy(0)=15','x') ans =(3*sin(5*x))/exp(2*x)例5 求微分方程组的通解.⎪⎪⎪⎩⎪⎪⎪⎨⎧+-=+-=+-=zy x dt dzzy x dt dy zy x dt dx244354332程序是:A=dsolve('Dx=2*x-3*y+3*z,Dy=4*x-5*y+3*z,Dz=4*x-4*y+2*z','t'); >> x=A.xy=A.yz=A.z。

相关主题