python 中摆的泰勒级数

Taylor series for pendulum in python

我有一个学校的问题,要模拟基于泰勒级数展开的钟摆运动。

Angular 频率 d 2 θ d t 2 = − m G R I sin ⁡ ( θ )

我对 python 很陌生。我现在知道如何使用欧拉方法进行模拟了。

  for n in range(N_t):

  u[n+1] = u[n] + dt*v[n]

  v[n+1] = v[n] + dt*(m*g*r/I)*sin(u[n])

如何使用泰勒展开模拟它? 我应该 运行 只使用下面的代码吗?

f′′(x0) = 2a2

在等式 u''=f(u) 中,您可以通过应用链和乘积法则推导此等式,并将 ODE 代回 u 的所有二阶导数,从而获得高阶导数。 uu' 的值取自当前状态向量。

u''' = f'(u)u'
u^{(4)} = f''(u)*u'^2 + f'(u)*u'' 
        = f''(u)*u'^2 + f'(u)*f(u)
u^{(5)} = f'''(u)*u'^3 + 3f''(u)*u'*f(u) + f'(u)^2*u' 

还有一种系统的方法是利用automatic/algorithmic微分的泰勒级数算法

我假设你的代码是这个意思,

我还假设 u := θ 和 v := θ'。

所以,sin(x) 的泰勒展开为

现在你的等式是

所以,你可以从上面的等式计算出u和v。或者,不知道你们老师有没有让你们先算积分,再用泰勒级数