Aide dm python

Quant

Aide dm python

Message par Quant » 15 mai 2016 20:34

bonjour, j'ai écrit une fonction pour pouvoir tracer la trajectoire d'un oscillateur, lors de l'execution il m'affiche ce message d'erreur :
ValueError: x and y must have same first dimension.

voici mon code :

from scipy.integrate import odeint
import numpy as np
from pylab import*

def ressort(T,n,p0,q0,m,k):
t = np.linspace(0,T,n)
omega0 = (k/m)**1/2
qprime = lambda t,omega0: (-q0*k/m)*(np.sin(t*omega0))
pprime = lambda t,omega0: -k*q0*omega0*(np.cos(t*omega0))

C = odeint(qprime,q0,t)
D = odeint(pprime,p0,t)
return C , D
def trajectoire(T,n,p0,q0,m,k):
t = np.linspace(0,T,n)
plot(t,ressort(T,n,p0,q0,m,k))
show()

Merci d'avance !

Messages : 9679

Inscription : 30 juil. 2008 16:59

Profil de l'utilisateur : Élève de lycée

Re: Aide dm python

Message par fakbill » 16 mai 2016 20:48

sans un seul x ni un seul y dans le code source...mou haha
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.

Messages : 0

Inscription : 11 déc. 2015 08:24

Profil de l'utilisateur : Élève de lycée

Re: Aide dm python

Message par left_shift » 17 mai 2016 07:45

Modifie la définition de la fonction trajectoire ainsi et ça marchera :

Code : Tout sélectionner

def trajectoire(T, n, p0, q0, m, k):
    t = np.linspace(0, T, n)
    C, D = ressort(T, n, p0, q0, m, k)
    plot(t, C)
    plot(t, D)
    show()

Messages : 9679

Inscription : 30 juil. 2008 16:59

Profil de l'utilisateur : Élève de lycée

Re: Aide dm python

Message par fakbill » 17 mai 2016 10:21

Merci de donner les messages de erreurs en entier...
Lire la aide de plot et comprendre que plot plot des couples de points... Donc il mange deux vecteurs de même taille.
Il faut apprendre à debugger. Donner la solution n'aide pas.
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.

Répondre