泰勒摆在泰勒系列

时间:2018-10-28 11:12:49

标签: python ode taylor-series

我在学校时有一个问题,要根据泰勒级数展开模拟摆运动。

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

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

\textblackslash

如何使用taylor扩展对其进行仿真? 我应该只按以下方式运行它吗?

  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])

2 个答案:

答案 0 :(得分:0)

在方程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' 

使用泰勒级数自动/算法微分算法也有系统的方法。

答案 1 :(得分:0)

我想您是从您的代码中得出的意思

enter image description here

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

所以sin(x)的泰勒展开是

enter image description here

现在等式

enter image description here

因此,您可以根据上述公式计算u和v。或者,我不知道您的老师是否要您先计算积分,然后再使用泰勒级数。