Matlab 中解常微分方程的 ode45 ode 是专门用于解微分方程的功能函数,他有 ode23,ode45,ode23s等等,采纳的是 Runge-Kutta 算法。ode45 表示采纳四阶,五阶 runge-kutta 单步算法,截断误差为(Δx)^3。解决的是 Nonstiff(非刚性)的常微分方程.是解决数值解问题的首选方法,若长时间没结果,应该就是刚性的,换用 ode23 来解.其他几个也是类似的用法使用方法[T,Y] = ode45(odefun,tspan,y0)odefun 是函数句柄,可以是函数文件名,匿名函数句柄或内联函数名 tspan 是区间 [t0 tf] 或者一系列散点[t0,t1,。..,tf]y0 是初始值向量 T 返回列向量的时间点 Y 返回对应 T 的求解列向量[T,Y] = ode45(odefun,tspan,y0,options) options 是求解参数设置,可以用 odeset 在计算前设定误差,输出参数,事件等[T,Y,TE,YE,IE] =ode45(odefun,tspan,y0,options)每组(t,Y)之产生称为事件函数。每次均会检查是否函数等于零。并决定是否在零时终止运算。这可以在函数中之特性上设定.例如以 events 或@events 产生一函数。[value, isterminal,direction]=events(t,y)其中,value(i)为函数之值,isterminal(i)=1 时运算在等于零时停止,=0 时继续;direction(i)=0 时所有零时均需计算(默认值), +1 在事件函数增加时等于零, —1 在事件函数减少时等于零等状况.此外,TE, YE, IE 则分别为事件发生之时间,事件发生时之答案及事件函数消逝时之指针i.sol =ode45(odefun,[t0 tf],y0。.。) sol 结构体输出结果应用举例1 求解一阶常微分方程程序: odefun=@(t,y) (y+3*t)/t^2; %定义函数tspan=[1 4]; %求解区间y0=-2; %初值[t,y]=ode45(odefun,tspan,y0);plot(t,y) %作图title(’t^2y'’=y+3t,y(1)=—2,1