常微分方程和常微分方程组的求解
一、实验目的:实验目的:熟悉Matlab软件中关于求解常微分方程和常微分方程组的各种命令,掌握利用Matlab软件进行常微分方程和常微分方程组的求解。二、相关知识在MATLAB中,由函数dsolve解决常微分方程(组)的求解问题,其具体格式如下:Xdsolve‘eq
1’’eq
2’…函数dsolve用来解符号常微分方程、方程组,如果没有初始条件,则求出通解,如果有初始条件,则求出特解。dy1例1:求解常微分方程dxxy的MATLAB程序为:dsolveDy1xyx,注意,系统缺省的自变量为t,因此这里要把自变量写明。结果为:lambertwC1expx1x1其中:YlambertwX表示函数关系YexpYX。
2例2:求解常微分方程yyy0的MATLAB程序为:
Y2dsolveyD2yDy20’’x’结果为:Y2expxC2C1C2我们看到有两个解,其中一个是常数。dxtdt5xyedyx3ye2t例3:求常微分方程组dt通解的MATLAB程序为:XYdsolveDx5xyexptDyx3yexp2ttdydx2x10costxt02dtdtdxdy2y4e2ty0t0例4:求常微分方程组dtdt通解的MATLAB程序为:
fXYdsolveDx2xDy10costDxDy2y4exp2tx02y00以上这些都是常微分方程的精确解法,也称为常微分方程的符号解。但是,我们知道,有大量的常微分方程虽然从理论上讲,其解是存在的,但我们却无法求出其解析解,此时,我们需要寻求方程的数值解,在求常微分方程数值解方面,MATLAB具有丰富的函数,我们将其统称为solver,其一般格式为:TYsolverodefu
tspa
y0该函数表示在区间tspa
t0tf上,用初始条件y0求解显式常微分方程
yfty。
solver为命令ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb之一,这些命令各有特点。我们列表说明如下:求解器ode45ODE类型特点一步算法,阶Ru
geKutta45非刚性方法累积截断误差x
3
说明大部分场合的首选算法使用于精度较低的情形计算时间比ode45短适度刚性情形若ode45失效时,可尝试使用当精度较低时,计算时间比ode15s短
一步算法,阶Ru
geKutta23ode23非刚性方法累积截断误差x
3
多步法,Adams算法,高低精ode113ode23tode15sode23s非刚性适度刚性刚性刚性
36度均可达到1010
采用梯形算法多步法,Gear’s反向数值积分,精度中等一步法,阶Rosebrock算法,2低精度。
odefu
为显式常微分方程yfty中的ftytspa
为求解区间,要获得问题在其他指定点t0t1t2上r