0% ont trouvé ce document utile (0 vote)
30 vues2 pages

Programme Activité

Le document présente un code Python utilisant NumPy et Matplotlib pour visualiser le champ électrostatique généré par deux particules chargées. Il crée un maillage de points, calcule les vecteurs et distances des particules, puis représente graphiquement le champ électrique et les particules. La visualisation inclut des cercles représentant les particules et des flèches indiquant la direction du champ électrique.

Transféré par

Lisa
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOC, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
30 vues2 pages

Programme Activité

Le document présente un code Python utilisant NumPy et Matplotlib pour visualiser le champ électrostatique généré par deux particules chargées. Il crée un maillage de points, calcule les vecteurs et distances des particules, puis représente graphiquement le champ électrique et les particules. La visualisation inclut des cercles représentant les particules et des flèches indiquant la direction du champ électrique.

Transféré par

Lisa
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOC, PDF, TXT ou lisez en ligne sur Scribd

import numpy as np

import matplotlib.pyplot as plt


xmin, ymin, xmax, ymax = -4, -3, 4, 3
#réalisation du maillage de points
h = 0.01
X = np.arange(xmin, xmax, h)
Y = np.arange(ymin, ymax, h)
XX, YY = np.meshgrid(X, Y)

#Placement de la particule (charge, abscisse,ordonnée).


wires = [(-1,-2,0),(1,2,0)]
#position des vecteurs
Vect = [np.array([XX-xk, YY-yk]) for qk, xk,yk in wires]
Dist = [np.linalg.norm(Ve, axis=0) for Ve in Vect]
#formule donnant le champ E
E = sum(9E9*qk*Ve/D**2 for (qk, xk, yk), Ve,D in zip(wires, Vect, Dist))
#simplification autours des particules chargées'''
dlimit = 0.5
for D in Dist:
E[0][D<dlimit] = np.nan
E[1][D<dlimit] = np.nan
#représentation
plt.title("Champ électrostatique")
plt.axis('equal')
plt.xlim(xmin, xmax)
plt.ylim(ymin, ymax)
ax = plt.gca()
# Représentation de la section des fils
for qk, xk, yk in wires:
radius = .05*qk
color = 'red' if qk > 0 else 'blue'
circle = plt.Circle((xk, yk), radius, color=color)
ax.add_artist(circle)
# Représentation du champ électrique
step =50
plt.quiver(XX[::step, ::step],
YY[::step, ::step],
E[0, ::step, ::step],
E[1, ::step, ::step],scale=None)
plt.draw()
plt.show()

Vous aimerez peut-être aussi