正如标题所说,我想知道如何从Matlab ode中检索二阶导数。 我试图模拟的系统由12个一阶微分方程描述。
我们来解释一下:
...
[T,Y] = ode113(@sixdofsolver,time,Y0,options,settings);
T = 1700x1载体
Y = 1700x12矩阵
如果我这样做:
[dY] = sixdofsolver(T,Y,settings)
dY = 12x1载体
我原本希望有一个像Y一样大小的矩阵。
我做错了什么?
答案 0 :(得分:2)
你走在正确的轨道上。您的集成函数sixdofsolver
可能首先由Matlab的ODE求解器使用。这些函数在一个时间点(和单个状态值)评估函数,而不是在一段时间内评估函数。
您需要重写sixdofsolver
函数,以便它可以处理多个时间,或者您需要基于它来创建新函数。换句话说,您需要对集成函数进行矢量化。您可能有y(1)
,y(2)
,...,y(12). Well, now the input state vector is a matrix so you need to use something like
y(:,1),
y(:,2){{1 }}。您可能需要执行其他操作,例如切换到逐元素运算符。我不能从你提供的内容中得到更多帮助。