Page 1 sur 1

Aide dm python

Publié : 15 mai 2016 20:34
par Quant
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 !

Re: Aide dm python

Publié : 16 mai 2016 20:48
par fakbill
sans un seul x ni un seul y dans le code source...mou haha

Re: Aide dm python

Publié : 17 mai 2016 07:45
par left_shift
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()

Re: Aide dm python

Publié : 17 mai 2016 10:21
par fakbill
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.