matlab ode45用法
ode45表示采用四阶-五阶Runge-Kutta算法,它用4阶方法提供候选解,5阶方法控制误差,是一种自适应步长(变步长)的常微分方程数值解法,其整体截断误差为(Δx)^5。解决的是Nonstiff(非刚性)常微分方程。
ode45语法:
[T,Y] = ode45(odefun,tspan,y0)
[T,Y] = ode45(odefun,tspan,y0,options)
[T,Y,TE,YE,IE] = ode45(odefun,tspan,y0,options)
sol = ode45(odefun,[t0tf],y0...)
[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)
在设置了事件参数后的对应输出
TE 事件发生时间
YE 事件发生时之答案
IE 事件函数消失时之指针i
sol =ode45(odefun,[t0 tf],y0...)
sol 结构体输出结果
扩展资料:
如何在function里使用ode45输出值
(1) 主程式 (test.m)
边界值为 Y(1/1.5)=alpha=0 Y(1)=beta=0
用 shooting method 去解二阶 ode 的边界值问题,
解 ode 使用的指令为 ode45
(2)Function (funtest1.m)
解4 条first-order initial value problems
但a 的值是要从判断解出来的值运算後,是否有大於 1 来设定
H=0.25;
m=1.2;
si=((Y/x)^2-Y*Y'/x+(Y')^2)^0.5
if si>1
a=(si.^m-1)/(H*si)
elseif si<=1
a=0
end
参考资料:百度百科-ode45