1. 微分方程的解析解
求微分方程(组)的解析解命令:
dsolve(‘方程1’, ‘方程2’,…‘方程n’, ‘初始条件’, ‘自变量’)
运行结果:u = tan(t-c)
用MATLAB求解微分方程
解 输入命令:dsolve('Du=1+u^2','t')
解 输入命令: y=dsolve('D2y+4*Dy+29*y=0','y(0)=0,Dy(0)=15','x')
运行结果为 : y =3e
-2x
sin(5x)
解 输入命令 :
[x,y,z]=dsolve('Dx=2*x-3*y+3*z','Dy=4*x-5*y+3*z','Dz=4*x-4*y+2*z', 't');
x=simple(x) % 将x化简
y=simple(y)
z=simple(z)
运行结果为:x = (c
1
-c
2
+c
3
+c
2
e
-3t
-c
3
e
-3t
)e
2t
y = -c
1
e
-4t
+c
2
e
-4t
+c
2
e
-3t
-c
3
e
-3t
+c
1
-c
2
+c
3
)e
2t
z = (-c
1
e
-4t
+c
2
e
-4t
+c
1
-c
2
+c
3
)e
2t
2. 用Matlab求常微分方程的数值解
[t,x]=solver(’f’,ts,x
0
,options)
ode45
ode23
ode113
ode15s
ode23s
由待解
方程写
成的m-
文件名
ts=[t
0
,t
f
]
,t
0、
t
f
为
自变量的
初值和终
值
函数的
初值
ode23:组合的2/3阶龙格-库塔-芬尔格算法
ode45:运用组合的4/5阶龙格-库塔-芬尔格算法
自变
量值
函数
值
用于设定误差限(缺省时设定相对误差10
-3
, 绝对误差10
-6
),
命令为:options=odeset(’reltol’,rt,’abstol’,at),
rt,at:分别为设定的相对误差和绝对误差.
1、在解n个未知函数的方程组时,x
0
和x均为n维向量,
m-文件中的待解方程组应以x的分量形式写成.
2、使用Matlab软件求数值解时,高阶微分方程必须
等价地变换成一阶微分方程组.
注意: