matlab使用ode45解微分方程组
使用方式:
[t,y] = ode45(odefun,tspan,y0)
功能为:求微分方程组 y′=f(t,y) 从 t0 到 tf 的积分(y可以是个列向量)
这里求的是数值解,y没有显示公式表达,tspan = [t0 tf]为求解时间,
参数说明
y0为初始条件,解数组 y 中的每一行都与列向量 t 中返回的值相对应。
对于方程组(odefun参数)怎么写可参照官方文档
下面为一个常用方式
函数简单时也可以写成匿名函数
写成函数文件时若输入只有t,y,则可以省略@(t,y)
关于@的使用
这是定义函数句柄的标识符
作用是将一个函数封装成一个变量,使其能够像其它变量一样在程序的不同部分传递,所以传递到ode45了嘛
fhandle = @(arglist)body 构造一个匿名函数和该函数的句柄,其中body定义函数的主体,arglist是您可以传递给函数的参数列表
使用时就可以用fhandle(in1,in2,)的形式,body可以是匿名函数也可以是.m文件,相当于重构了函数,( body(in1,in2),相当于在上面重新封装一次 )
简单写法是直接句柄=@函数名
这样写好像还可以提高运行效率啥的这点就不是很清楚了(好像和函数的搜索路径有关)
结语
其它关于ode45的高级用法可以再去探索