Задание 9
Построить дифференциальные уравнения плоского движения твёрдого тела под действием постоянной силы.
Построить функцию численного интегрирования дифференциальных уравнений методом Рунге-Кутта 4(5) (Метод Рунге-Кутта-Мерсона). Проинтегрировать уравнения движения твёрдого тела.
Решая данную задачу получаем СДУ(система дифференциальных уравнений):
(V_x)'=F*cos(phi)/m
(V_y)'=F*sin(phi)/m
Omega'=F*a/J
x'=V_x
y'=V_y
Phi'=omega
Собственно вот мой код.
import math
import pylab
from matplotlib import mlab
from scipy.linalg import solve
from scipy import array
import matplotlib.pyplot as plt
from pylab import *
m=10
F=100
J=10
a=20
count=F*a/J
Nu=F/m
def f(t,var):
return t*count
def rkm45(h,t,t0,tmax,var):
i=0
item=zeros((tmax-t)/h)
while t0<tmax:
t0=t0+h
t=t+h
k1=f(t,var)
k2=f(t+h/3,var+h/3*k1)
k3=f(t+h/3,var+h/6*k1+h/6*k2)
k4=f(t+h/2,var+h/8*k1+3*h/8*k2)
k5=f(t+h,var+h/2*k1-3*h/2*k3+2*h*k4)
item[i]=var
i=i+1
var=var+h*(k1+4*k4+k5)/6
print item
return item
rkm45(0.05,0,0,2,0)
Собственно вопрос, как задать функцию от функции, если то что выше дай бог правильно написано.