mein Problem ist das Folgende:
ich würde gerne eine DGL 2ter Ordnung lösen, allerdings hat diese DGL ein Störglied, welches mir als eine Liste vorliegt.
Diese DGL würde ich gerne mittel scipy.odeint lösen, allerdings schaffe ich nicht die Liste des Störgliedes in die Gleichung einzubauen. Wenn ich eine einzelne Zahl oder np.cos(t) nehme funktioniert es, nur eben bei einer Liste nicht.
Code: Alles auswählen
def model(z,t):
u = np.array([1,1,1,1,1,1,1,1,1,1])
#u = np.cos(t)
return np.array([z[1], u -6*z[1]-10*z[0]])
Ich hoffe ich konnte das Problem verständlich beschreiben.
Über Hilfe wäre ich sehr dankbar

Hier unten noch der dazugehörige Beispielcode.
Code: Alles auswählen
import matplotlib.pyplot as plt
from scipy.integrate import odeint
import numpy as np
# function that returns dz/dt
def model(z,t):
u = np.array([1,1,1,1,1,1,1,1,1,1])
#u = np.cos(t)
return np.array([z[1], u -6*z[1]-10*z[0]])
# initial condition
z0 = [0,4]
# time points
t = np.linspace(0,5,10)
# solve ODE
z = odeint(model,z0,t)
# plot results
plt.plot(t,z[:,0],'b-',label= "x")
plt.ylabel('response')
plt.xlabel('time')
plt.legend(loc='best')
plt.show()