表1 解常微分方程主要MATLAB指令
主题词
意义
主题词
意义
ode45
4、5阶Runge-kutta法
ode23s
刚性方程组二阶Rosenbrock法
ode23
2、3阶Runge-kutta法
ode23tb
刚性方程组低精度算法
ode113
多步Adams算法
bvpinit
边值问题预估计
odeset
解ode选项设置
bvp4c
边值问题解法
ode23t
适度刚性问题梯形算法
deval
微分方程解的求值
ode15s
刚性方程组多步Gear法
微分方程的相关知识
1、微分方程的概念
含有未知的函数及其某些阶的导数以及自变量本身的方程称为微分方程。如果未知函数是一元函数,称为常微分方程。如果未知函数是多元函数,称为偏微分方程。联系一些未知函数的一组微分方程称为微分方程组。微分方程中出现的未知函数的导数的最高阶数称为微分方程的阶。如果方程中未知函数及其各阶导数都是一次的,称为线性常微分方程。若各系数为常数,称之为常系数(或定常、自治、时不变)的。
2、初等积分法
有些方程可以直接通过积分求解。例如,一阶常系数线性常微分方程
y’=ay+b (a!=0)
可化为
dy/(ay+b)=dt
两边积分可得通解为:
y(t)=Cexp(at)-a^-1b
其中C为任意常数
3、常系数线性微分方程
例1 求x’’+0.2x’+3.92x=0的通解。
解: 特征方程为
λ²+0.2λ+3.92=0
>> roots([1 0.2 3.92])
ans =
-0.1000 + 1.9774i
-0.1000 - 1.9774i
求得共轭复根-0.1000 ±1.9774i,从而通解为:
x(t)=Aexp(-0.1t)cos(1.9774t)+Bexp(-0.1t)sin(1.9774t)
其中A,B为任意常数。
4、初值问题数值解
除常系数线性微分方程可用特征根法求解,少数特殊方程可用初等积分法求解外,大部分微分方程无显式解,应用中主要依靠数值解法。
考虑一阶常微分方程组初值问题
y’=f(t,y), t0
其中y=(y1,y2,…,ym)T,f=(f1,f2,…,fm)T,y0=(y10,y20,…,ym0)T,这里T表示转置。
所谓数值解就是寻求解y(t)在一系列离散点t0
高阶微分方程初值问题可以化为一阶常微分方程组,已给一个n阶方程,即
,则上式可化为一阶方程组
解:编写如下程序:
clear
f=inline('y-2*x/y','x','y');
a=0;
b=1;
h=0.1;
n=(b-a)/h;
x=zeros(1,n+1);
y=zeros(1,n+1);
y(1)=1;
for i=1:n+1
x(i)=a+(i-1)*h;</