Nie wiem od czego zacząć, ponieważ nie miałem zbyt dużego doświadczenia w tym zakresie, ale konieczne jest rozwiązanie tej części projektu za pomocą komputer.Potrzebujesz pomocy w rozwiązaniu problemu nieliniowego ODE drugiego rzędu w pytonie
mam ODE 2-go rzędu, która ma:
m = 1220
k = 35600
g = 17.5
a = 450000
i b wynosi między 1000 a 10000, w odstępach co 500
x(0)= 0
x'(0)= 5
m*x''(t) + b*x'(t) + k*x(t)+a*(x(t))^3 = -m*g
trzeba znaleźć najmniejszą B tak, że rozwiązanie nigdy nie jest pozytywne. Wiem, jak powinien wyglądać wykres, ale po prostu nie wiem, jak używać odinta, aby uzyskać rozwiązanie równania różniczkowego. Jest to kod mam tak daleko:
from numpy import *
from matplotlib.pylab import *
from scipy.integrate import odeint
m = 1220.0
k = 35600.0
g = 17.5
a = 450000.0
x0= [0.0,5.0]
b = 1000
tmax = 10
dt = 0.01
def fun(x, t):
return (b*x[1]-k*x[0]-a*(x[0]**3)-m*g)*(1.0/m)
t_rk = arange(0,tmax,dt)
sol = odeint(fun, x0, t_rk)
plot(t_rk,sol)
show()
Który tak naprawdę nie produkują dużo niczego.
Jakieś myśli? Dzięki
Jest to przykład tutaj: http://wiki.scipy.org/Cookbook/CoupledSpringMassSystem –