0

正如标题所说,我想知道如何从 Matlab 颂歌中检索二阶导数。我试图模拟的系统由 12 个一阶微分方程描述。

让我们解释一下:

...

[T,Y] = ode113(@sixdofsolver,time,Y0,options,settings);

T = 1700x1 矢量

Y = 1700x12 矩阵

现在如果我这样做:

[dY] = sixdofsolver(T,Y,settings)

dY = 12x1 矢量

我本来希望有一个像 Y 一样大小的矩阵。

我究竟做错了什么?

4

1 回答 1

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 likey(:,1) ,y(:,2)这样的变量, ..., y(:,12)。您可能需要执行其他操作,例如切换到元素运算符。从您提供的内容中,我无法为您提供更多帮助。

于 2013-10-06T15:39:29.213 回答