全球旧事资料 分类
Matlab中解常微分方程的ode45
ode是专门用于解微分方程的功能函数,他有ode23ode45ode23s等等,采用的是Ru
geKutta算法。ode45表示采用四阶,五阶ru
gekutta单步算法截断误差为Δx3。解决的是No
stiff非刚性的常微分方程是解决数值解问题的首选方法若长时间没结果应该就是刚性的换用ode23来解其他几个也是类似的用法使用方法TYode45odefu
tspa
y0odefu
是函数句柄可以是函数文件名匿名函数句柄或内联函数名tspa
是区间t0tf或者一系列散点t0t1tfy0是初始值向量T返回列向量的时间点Y返回对应T的求解列向量TYode45odefu
tspa
y0optio
soptio
s是求解参数设置可以用odeset在计算前设定误差输出参数事件等TYTEYEIEode45odefu
tspa
y0optio
s每组tY之产生称为事件函数。每次均会检查是否函数等于
f零。并决定是否在零时终止运算。这可以在函数中之特性上设定。例如以eve
ts或eve
ts产生一函数。valueistermi
aldirectio
eve
tsty其中,valuei为函数之值,istermi
ali1时运算在等于零时停止,0时继续;directio
i0时所有零时均需计算(默认值),1在事件函数增加时等于零,1在事件函数减少时等于零等状况。此外,TEYEIE则分别为事件发生之时间,事件发生时之答案及事件函数消失时之指针i。solode45odefu
t0tfy0sol结构体输出结果应用举例1求解一阶常微分方程程序odefu
tyy3tt2定义函数tspa
14求解区间y02初值tyode45odefu
tspa
y0plotty作图titlet2yy3ty121t4lege
dt2yy3txlabeltylabely精确解dsolvet2Dyy3ty12a
s
f3Ei12exp1exp1t3Ei1texp1t2求解高阶常微分方程关键是将高阶转为一阶odefu
的书写Fyyyy
1t0用变量替换y1yy2y注意odefu
方程定义为列向量dxdyy1y2
程序fu
ctio
Testode45tspa
3940求解区间y028初值txode45odefu
tspa
y0plottx1otx2lege
dy1y2titleytyety3si
2txlabeltylabelyfu
ctio
yodefu
txyzeros21列向量y1x2y2tx1exptx23si
2te
de
d
ffr
好听全球资料 返回顶部