ich mache gerade erste Gehversuche mit Python und hoffe, dass Fragen zu scipy hier hinein gehören. Ich habe mich gleich auf den harmonischen Oszillator gestürzt, dessen DGL 2. Ordnung auf zwei DGLs 1. Ordnung reduziert wird. Diese stehen dann (siehe Code) im Array x, wobei x[0] die Auslenkung ist und x[1] die Geschwindigkeit.
Jetzt würde ich anschließend gerne nur die Auslenkung, also x[0], über die Zeit graphisch auftragen. Der Befehl pylab.plot nimmt jetzt allerdings sehr benutzerfreundlich r an und plottet damit alle Einträge des Arrays x!
Wie kann ich denn nur x[0] plotten lassen? Ich hatte es im Stile von pylab.plot(t,r[0]) versucht, aber das gibt mir eine Fehlermeldung aus.
Code: Alles auswählen
from scipy import integrate
import pylab
def deriv(x,t,k,dummy):
return (x[1],-k*x[0])
if __name__ == '__main__':
x0 = [30,0]
t = range(0,100,1)
k = 0.05
dummy = 10
r = integrate.odeint(deriv,x0,t,args=(k,dummy))
pylab.plot(t,r)
pylab.show()
-- Klaus.