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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 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()
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....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 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()
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
Partager