常微分方程数值解法
【作用】微分方程建模是数学建模的重要方法,因为许多实际问题的数学描述将导致求解微
分方程的定解问题。把形形色色的实际问题化成微分方程的定解问题,大体上可以按以下几步:1根据实际要求确定要研究的量自变量、未知函数、必要的参数等并确定坐标系。2找出这些量所满足的基本规律物理的、几何的、化学的或生物学的等等。3运用这些规律列出方程和定解条件。
基本模型1发射卫星为什么用三级火箭2人口模型3战争模型4放射性废料的处理
通常需要求出方程的解来说明实际现象,并加以检验。如果能得到解析形式的解固然是便于分析和应用的,但是我们知道,只有线性常系数微分方程,并且自由项是某些特殊类型的函数时,才可以得到这样的解,而绝大多数变系数方程、非线性方程都是所谓“解不出来”的于是对于用微分方程解决实际问题来说,数值解法就是一个十分重要的手段。1改进Euler法:
2龙格库塔(Ru
geKutta)方法:
【源程序】1改进Euler法:
fu
ctio
xyeulerprofu
x0x1y0
fu
为函数,x0,x1为x区间,y0为初始值,
为子区间个数
if
argi
5
50e
dhx1x0
x1x0y1y0fori1
xi1xihy1yihfevalfu
xiyiy2yihfevalfu
xi1y1yi1y1y22e
d调用comma
d窗口fi
li
e2y2x22xxyeulerprof0110
x求解函数y2y222x,0≤x≤,y01
2龙格库塔(Ru
geKutta)方法:
tysolverFtspa
,y0
这里solver为ode45,ode23,ode113,输入参数F是用M文件定义的微分方程yfxy右
端的函数。tspa
t0tfi
al是求解区间,y0是初值。注:ode45和ode23变步长的,采用Ru
geKutta算法。
fode45表示采用四阶五阶Ru
geKutta算法,它用4阶方法提供候选解,5阶方法控制误差,是一种自适应步长(变步长)的常微分方程数值解法,其整体截断误差为Δx5。解决的是No
stiff非刚性常微分方程。
ode45是解决数值解问题的首选方法,若长时间没结果,应该就是刚性的,可换用ode23试试
例如:
odefu
tyy3tt2定义函数tspa
14求解区间y02初值tyode45odefu
tspa
y0plotty作图titlet2yy3ty121t4lege
dt2yy3txlabeltylabely精确解dsolvet2Dyy3ty12
a
s3Ei11t3exp1Ei112exp1exp1t
求解高阶常微分方程
需要求解的高阶常微分方程:
求解的关键是将高阶转为一阶odefu
的书写Fyyyy
1t0用变量替换y1yy2y注意odefu
方程定义为行向量程序fu
ctio
Testode45tspa
求解区间y028初值txode45odefu
tspa
y0plr