AttributeError: 'module' object has no attribute
TITIB
Messages postés
127
Statut
Membre
-
_Ritchi_ Messages postés 22354 Date d'inscription Statut Contributeur Dernière intervention -
_Ritchi_ Messages postés 22354 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je suis quasi-débutant en ce qui concerne la pratique de python et je suis confronté à un message d'erreur que je n'arrive pas à résoudre.
Voici le code en question:
Pour info: il s'agit d'un début de résolution des équations concernant la décharge d'un condensateur dans un circuit RLC.
L'exécution me conduit au message d'erreur:
"AttributeError: 'module' object has no attribute 'uc' "
Paradoxalement, si je change la ligne 32 "y = np.uc(x)" par "y=np.cos(x)":
... il n'y a plus d'erreur et une courbe est tracée....
Je vous remercie de m'aider à comprendre et à corriger mon erreur dans le programme initial.
Je travaille sous Python 2.7.3 (Windows 32 b).
Merci d'avance
Je suis quasi-débutant en ce qui concerne la pratique de python et je suis confronté à un message d'erreur que je n'arrive pas à résoudre.
Voici le code en question:
import numpy as np
import matplotlib.pyplot as plt
from math import *
R=10 # R en Ohm
L=0.2 # L en H
C=1E-6 # C en F
U0=20000 # Uc(t=0) en V
I0=0 # I(t=0) en A
Omega0=1/sqrt(L*C)
print 'Omega0=',Omega0
lambd=R/(2*L)
print 'lambda=',lambd
alpha=lambd/Omega0
print 'alpha=',alpha
Q=1/(2*alpha)
print 'Q=',Q
Delta_prime=lambd**2-Omega0**2
print 'Delta_prime=',Delta_prime
x = np.linspace(0, 2.48E-2, 249)
print(x)
def uc(x) :
if Delta_prime < 0:
return U0 * ( cos ( Omega0 * x) + lambd /Omega0 * sin ( Omega0 * x) ) * exp ( -lambd * x )
else:
return 0
print 'Uc(2E-4)=',uc(2E-4)
print 'Uc(2E-2)=',uc(2E-2)
y = np.uc(x)
#y=np.cos(x)
print(y)
plt.plot(x,y)
plt.show()
Pour info: il s'agit d'un début de résolution des équations concernant la décharge d'un condensateur dans un circuit RLC.
L'exécution me conduit au message d'erreur:
"AttributeError: 'module' object has no attribute 'uc' "
Paradoxalement, si je change la ligne 32 "y = np.uc(x)" par "y=np.cos(x)":
import numpy as np
import matplotlib.pyplot as plt
from math import *
R=10 # R en Ohm
L=0.2 # L en H
C=1E-6 # C en F
U0=20000 # Uc(t=0) en V
I0=0 # I(t=0) en A
Omega0=1/sqrt(L*C)
print 'Omega0=',Omega0
lambd=R/(2*L)
print 'lambda=',lambd
alpha=lambd/Omega0
print 'alpha=',alpha
Q=1/(2*alpha)
print 'Q=',Q
Delta_prime=lambd**2-Omega0**2
print 'Delta_prime=',Delta_prime
x = np.linspace(0, 2.48E-2, 249)
print(x)
def uc(x) :
if Delta_prime < 0:
return U0 * ( cos ( Omega0 * x) + lambd /Omega0 * sin ( Omega0 * x) ) * exp ( -lambd * x )
else:
return 0
print 'Uc(2E-4)=',uc(2E-4)
print 'Uc(2E-2)=',uc(2E-2)
#y = np.uc(x)
y=np.cos(x)
print(y)
plt.plot(x,y)
plt.show()
... il n'y a plus d'erreur et une courbe est tracée....
Je vous remercie de m'aider à comprendre et à corriger mon erreur dans le programme initial.
Je travaille sous Python 2.7.3 (Windows 32 b).
Merci d'avance
A voir également:
- Attributeerror: module has no attribute
- Cisco eap fast module - Forum Windows 8 / 8.1
- Nº sur clavier ✓ - Forum Bureautique
- Igfxtray module ✓ - Forum Virus
- Pas de module ci - Forum TV & Vidéo
- Manque cam module - Forum TNT / Satellite / Réception
2 réponses
Salut, la fonction uc() n'existe pas dans Numpy. C'est toi qui l'a créé.
J'ai l'impression que tu utilises Numpy sans savoir utiliser Python. Tu devrais peut-être revoir tes priorités.
J'ai l'impression que tu utilises Numpy sans savoir utiliser Python. Tu devrais peut-être revoir tes priorités.
Bonjour,
Voici ce que j'aurais fait:
Ritchi
Voici ce que j'aurais fait:
import numpy as np
import matplotlib.pyplot as plt
from math import *
R=10 # R en Ohm
L=0.2 # L en H
C=1E-6 # C en F
U0=20000 # Uc(t=0) en V
I0=0 # I(t=0) en A
Omega0=1/sqrt(L*C)
print 'Omega0=',Omega0
lambd=R/(2*L)
print 'lambda=',lambd
alpha=lambd/Omega0
print 'alpha=',alpha
Q=1/(2*alpha)
print 'Q=',Q
Delta_prime=lambd**2-Omega0**2
print 'Delta_prime=',Delta_prime
y=[]
x = np.linspace(0, 2.48E-2, 249)
def uc(x) :
if Delta_prime < 0:
return (U0 * ( cos ( Omega0 * x) + lambd /Omega0 * sin ( Omega0 * x) ) * exp ( -lambd * x ))
else:
return 0
for z in x:
y.append(uc(z))
plt.plot(x,y)
plt.show()
Ritchi