Серия Тейлора для маятника в питоне - PullRequest
0 голосов
/ 28 октября 2018

У меня есть вопрос из школы, чтобы имитировать движение маятника на основе расширения ряда Тейлора.

Угловая частота d 2 θ dt 2 = - m GRI 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

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

Я предполагаю, что вы имели в виду это из своего кода,

enter image description here

Я также предполагаю, что u: = θ и v: = θ '.

Итак, разложение Тейлора в sin (x) равно

enter image description here

, и ваше уравнение теперь равно

enter image description here

Итак, вы можете вычислить u и v из приведенного выше уравнения.Или я не знаю, хотел ли ваш учитель сначала вычислить интегралы, а затем использовать ряды Тейлора.

0 голосов
/ 29 октября 2018

В уравнении u''=f(u) вы получаете производные высшего порядка, выводя это уравнение, применяя правило цепочки и произведения и подставляя обратно ОДУ для всех вторых производных u.Значения u и u' взяты из вектора текущего состояния.

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' 

Существует также систематический способ использования арифметики ряда Тейлора для автоматического / алгоритмического дифференцирования.

...