微分方程的基础知识及解析解
态度决定命运-开国元帅排名
微分方程的基础知识及解析解
微分方程的基础知识与练习
(一)微分方程基本概念:
首先通过一个具体的问题来给出微分方程的基本概念。
(1)一条曲线通过点(1,2),且
在该曲线上任一点M(x,y)处的切线
的斜率为2x,求这条曲线的方程。
解
设曲线方程为
yy(x)
.由导数的几何意义可知函数
yy(x)
满足
dy
2x
(1)
dx
同时还满足以下条件:
x1
时,
y2
(2)
把(1)式两端积分,得
y
2xdx
即
yx
2
C
(3)
其中C是任意常数。
把条件(2)代入(3)式,得
C1
,
由此解出C并代入(3)式,得到所求曲线方程:
yx
2
1
(4)
(2)列车在水平直线路上以20
ms
的速度行驶;当制动时列车获得加速度
0.4ms
2
.问开始制动后多少时间列车才能停住,以及列车在这段时间里行驶了
多少路程?
解 设列车开始制动后
t
秒时行驶了
s
米。
根据题意,反映制动阶段列车运
动规律的函数
ss(t)
满足:
d
2
s
0.4
(5)
dt
2
此外,还满足条件:
t0
时,
s0,v
ds
20
(6)
dt
(5)式两端积分一次得:
ds
v0.4tC
1
(7)
dt
再积分一次得
s0.2t
2
C
1
tC
2
(8)
其中
C
1
,C
2
都是任意常数。
把条
件“
t0
时
v20
”和“
t0
时
s0”分别代入(7)式和(8)式,
得
C
1
20,
C
2
0
把
C
1
,C
2
的值代入(7)及(8)式得
v0.4t20,
(9)
s0.2t
2
20t
(10)
在(9)式中令
v0
,得到列车从开始制动到完全停止所需的时间:
t
20
50(s)
。
0.4
再把
t5
代入(10)式,得到列车在制动阶段行驶的路程
s0.250
2
2050500(m).
上述两个例子中的关系式(1)和(5),(6)都含有未知函数的导数,它们
都是微分方程。
1.微分方程的概念
一般地,凡含有未知函数、未知函数的导数及自变量的方程,叫做微分方
程。未知函数是一元函数的方程叫做常微分方程;未知函数是多元函数的方程,
叫做偏微分方程
。我们只研究常微分方程。微分方程中所出现的未知函数的最
高阶导数的阶数,叫做微分方程的阶。
例如,方程(1)是一阶微分方程;方程(5)是二阶微分方程方程。又如,方
程
y
4
4y'''10y''12y'5ysin2x
是
四阶微分方程。
一般地,
n
阶微分方程的形式是
F(x,y,y',...,y
(n)
)0,
(11)
其中F是个
n2
变量的函数。这里必须指出,在方程(11)中,
y
(n)
是必须出
现的,而
x,y,y',...,y
(n1
)
等变量则可以不出现。例如
n
阶微分方程
y
(n)
10
中,除
y
(n)
外,其他变量都没有出现。
由前面的例子我们看到
,在研究某些实际问题时,首先要建立微分方程,
然后找出满足微分方程的函数,就是说,找出这样的函
数 ,把这函数代入微分
方程能使该方程成为恒等式。这个函数就叫做该微分方程的解。
例如
,函数(3)和(4)都是微分方程(1)的解;函数(8)和(10)都是
微分方程(5)的解。 <
br>如果微分方程的解中含有任意常数,且任意常数的个数与微分方程的阶数
相同,这样的解叫做微分
方程的通解。例如,函数(3)是方程(1)的解,它
含有一个任意常数,而方程(1)是一阶的,所以
函数(3)是方程(1)的通解。
又如,函数(8)是方程的解,它含有两个任意常数,而方程(5)是
二阶的,
所以函数(8)是方程(5)的通解。
由于通解中含有任意常数,所以它还不能完全
确定地反映某一客观事物的规
律性,必须确定这些常数的值。为此,要根据问题的实际情况提出确定这些
常
数的条件。例如,例1中的条件(2),例2中的条件(6),便是这样的条件。
设微分方
程中的未知函数为
yy(x)
,如果微分方程是一阶的,通常用来确
定任意常数的条
件是
xx
0
时,
yy
0
,
或写成
y|
xx
0
y
0
其中
x
0
,
y
0
都是给定的值;如果微分方程是二阶的,通常用来确定任意常数的条件是:
xx
0
时,
yy
0
,
y'y1
或写成
y|
xx
0
y
0
,
y'|
xx
0
y1
其中
x
0
,
y
0
和
y1
都是给定的值
。上述条件叫做初始条件。
确定了通解中的任意常数以后,就得到了微分方程的特解。例如(4)式
是
方程(1)满足条件(2)的特解;(10)式是方程(5)满足条件(6)的特解。
求微分方程
y'f(x,y)
满足初始条件
y
|
xx
0
y
0
的特解这样一个问
题,叫做一阶微分方程
的初值问题,记作
y'f(x,y),
(13)
y|y.
0
xx
0
二阶微分方程的初值问题是
y''f(x,y,y'),
y|y,y'|y1
0xx
0
xx
0
3、 例题
例1 验证:函数
xC
1
cosktC
2
sinkt
(14)
是微分方程
d
2
x
2
kx0
(15)
2
dt
的解。
解 求出所给函数(14)的导数
dx
kC
1
sinktkC
2
coskt,
dt
d
2
x
222
kCcosktkCsinkt
k(C
1
cosktC
2
sinkt)
12
2
dt
d
2
x
把
2
及
x
的表达式
代入方程(15)得
dt
k
2
(C
1
cosktC<
br>2
sinkt)
+
k
2
(C
1
coskt
C
2
sinkt)
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*x
ans =
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:解方程
ax
2
bxc0
程序是: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)^(12))(2*a)
-(b -
(b^2 - 4*a*c)^(12))(2*a)d
当指定变量为b的时候:
solve('a*x^2+b*x+c','b')
求解的结果为:
ans =
-(a*x^2 + c)xs =
-(a*x^2 + c)x
xy1
例2:对于方程组
的情况
x11y5
S=solve('x+y=1','x-11*y=5');
S.x
S.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 =[ 43, -13]
一、
微分方程的解析解
格式:dsolve(‘方程1’, ‘方程2’,…‘方程n’,
‘初始条件’, ‘自变量’)
记号: 在表达微分方程时,用字母D表示求微分,D2y、D3y
等表示求高阶
微分.
任何D后所跟的字母为因变量,
自变量可以指定或由系统规则选定为确省,默认自变量是t
例如,微分方程
d
2
y
dx
2
0
应表达为:D2y=0.
2
dy
2xyxe
x
,并加以验证.
dx
求解本问题的Matlab 程序为:
syms x y
%line1
y=dsolve('Dy+2*x*y=x*exp(-x^2)','x')
%line2
diff(y,x)+2*x*y-x*exp(-x^2)
%line3
simplify(diff(y,x)+2*x*y-x*exp(-x^2))
%line4
例1:求解微分方程
说明:
(1)
行line1是用命令定义x,y为符号变量.这里可以不写,但为确保正确性,
建议写上;
(2) 行line2是用命令求出的微分方程的解:
12*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*(12*exp(-x^2)*x
^2+exp(-x^2)*
C1)
(4) 行line4 用 simplify()
(simple())函数对上式进行化简,结果为 0,
表
明
yy(x)
的确是微分方程的解.
例2:先求微分方程
xy
'ye
x
0
的通解,再求在初始条件
y(1)2e
下的特<
br>解,并画出特解函数的图形.
求解本问题的 Matlab 程序为:
syms x
y
y=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))x
2.C1= solve('2*exp(1)=exp(1)+C1','C1')
结果C1 =exp(1)
y =(exp(x)+exp(-x^2)
结果(exp(x)+exp(1))x
ezplot(y)
dx
5xye
t
dt例3:求微分方程组
在初始条件
x|
t0
1,y|
t0
0
下的特解,
dy
x3y0
dt
并画出解函数的图形.
求解本问题的 Matlab 程序为:
syms x y t
a=dsolve('Dx+5*x+y=exp(t)','Dy-
x-3*y=0','x(0)=1','y(0)=0','t');
x=a.x
y=a.y
simple(x);
simple(y);
ezplot(x,y,[0,1.3]);axis auto
%坐标刻度选默认值
例4 先求微分方程的通解,再求微分方程的特解.
d
2
y
4
dy
2
29y0
dx
y(0)0
dx
<
br>
,y'(0)15
程序是:dsolve('D2y+4*Dy+29*y=0',
'y(0)=0,Dy(0)=15','x')
ans =
(3*sin(5*x))exp(2*x)
例5 求微分方程组的通解.
dx
dt
2x3y3z
dy
4x5y3z
dt
dz
dt
4x4y2z
程序是: <
br>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.x
y=A.y
z=A.z