如何从SciPy的odeint获得dy / dt

时间:2015-09-08 02:59:45

标签: python scipy odeint

我想从SciPy的dy/dt以及y本身获得odeint

我知道odeint可以获得dy/dt=func(y0,t)的解决方案。 但是,我也需要dy/dt

我正在处理一个结构动态系统,其中:

y : displacement
dy/dt : velocity
d(dy/dt)/dt : acceleration (force)

我将系统分为两个系统:

dy/dt = x
dx/dt = func(y0,x0,t)

然后,odeint(func, [y0's, x0's])完美无缺。 但是,最终目标是在系统上获得力量。

非常感谢提前^^

1 个答案:

答案 0 :(得分:0)

为了确保我正确理解您的问题:

(d2x)/(dt2) = F(x,t)  // your second order system that you wish to solve, to simplify the problem I assume that dim(x) = 1

/* your system transformed to first order system of 2 equations
 * x[0] is your dx/dt (velocity), x[1] is your x (displacement)
 */

dxdt[1] = x[0];
dxdt[0] = F(x[1],t);

您将获得的结果是:

  • x [0] - 速度
  • x [1] - 置换
  • t - time

要计算你必须要做的加速度:

acc = F(x[1],t);

我希望这就是你所要求的。祝你好运。