** Visualisez le champ vectoriel en utilisant matplotlib. À titre d'exemple, tracez les champs magnétiques électrostatiques et statiques appris en physique au lycée. ** **
Chaque programme a un flux
C'est.
Il sera plus facile à comprendre si vous vérifiez l'opération en regardant un exemple concret.
(1) Visualisation du champ électrostatique créé par une charge ponctuelle (2) Champ électrostatique créé par deux charges ponctuelles (dipôles électriques) (3) Champ magnétique statique créé par un courant constant passant par l'origine (4) Champ vectoriel tridimensionnel (champ électrostatique créé par une charge ponctuelle à l'origine)
"""
(1)Champ électrostatique créé par une charge ponctuelle à l'origine
"""
import numpy as np
import matplotlib.pyplot as plt
plt.figure()
LX, LY=2.1,2.1 #Paramètres du maillage
gridwidth=0.33
X, Y= np.meshgrid(np.arange(-LX, LX, gridwidth), np.arange(-LY, LY,gridwidth)) #Génération de maillage
R = np.sqrt(X**2+Y**2) #Distance de l'origine
#Coordonnées de position et charge de la charge ponctuelle
X1,Y1=0,0 #Placement de la charge à l'origine
Q1=1 #Réglage de la quantité de charge
R1=np.sqrt((X-X1)**2+(Y-Y1)**2) #Point arbitraire de cette charge(X,Y)Distance à
plt.plot(X1,Y1,'o',color='blue') #Charge de points de tirage
#Fonction vectorielle F(U(x,y), V(x,y))Défini. L'expression du champ électrostatique est utilisée.
U = Q1*(X-X1)/(R1**2)
V = Q1*(Y-Y1)/(R1**2)
plt.quiver(X,Y,U,V,color='red',angles='xy',scale_units='xy', scale=5.0) #Champ vectoriel de tracé
plt.xlim([-LX,LX]) #Plage de X à dessiner
plt.ylim([-LY,LY]) #Plage de y pour dessiner
#Dessin graphique
plt.grid()
plt.draw()
plt.show()
Champ électrostatique dû à une charge ponctuelle placée à l'origine.
"""
(2)Frais de deux points(Bipolaire électrique)Champ électrostatique créé par
"""
import numpy as np
import matplotlib.pyplot as plt
plt.figure()
LX, LY=2,2
gridwidth=0.2
X, Y= np.meshgrid(np.arange(-LX, LX, gridwidth), np.arange(-LY, LY,gridwidth))
R = np.sqrt(X**2+Y**2)
#Coordonnées de position et charge de deux charges ponctuelles
X1,Y1=1.1,0
Q1=1
R1=np.sqrt((X-X1)**2+(Y-Y1)**2)
plt.plot(X1,Y1,'o',color='blue')
X2,Y2=-1.1,0
Q2=-1
R2=np.sqrt((X-X2)**2+(Y-Y2)**2)
plt.plot(X2,Y2,'o',color='blue')
##
#Paramètres de la fonction vectorielle. 2 charges.
U = Q1*(X-X1)/(R1**2)+Q2*(X-X2)/(R2**2)
V = Q1*(Y-Y1)/(R1**2)+Q2*(Y-Y2)/(R2**2)
plt.quiver(X,Y,U,V,color='red',angles='xy',scale_units='xy', scale=6.5)
plt.xlim([-LX,LX])
plt.ylim([-LY,LY])
#Dessin graphique
plt.grid()
plt.draw()
plt.show()
Un champ électrostatique créé par deux charges ponctuelles (les charges sont respectivement 1 et -1) placées en (-1,1,0) et (1,1,0).
"""
(3)Champ magnétique statique créé par un courant constant passant par l'origine
"""
import numpy as np
import matplotlib.pyplot as plt
plt.figure()
LX, LY=3,3
gridwidth=0.3
X, Y= np.meshgrid(np.arange(-LX, LX, gridwidth), np.arange(-LY, LY,gridwidth))
R = np.sqrt(X**2+Y**2)
#Coordonnées de position et charge de la charge ponctuelle
X1,Y1=0,0
I=1 #Valeur actuelle constante
R1=np.sqrt((X-X1)**2+(Y-Y1)**2)
plt.plot(X1,Y1,'o',color='blue')
#Paramètres de la fonction vectorielle. Champ magnétique statique créé par un courant constant F(U(x,y), V(x,y))
U = I*-1*(Y-Y1)/(R1)
V = I*(X-X1)/(R1)
plt.quiver(X,Y,U,V,color='red',angles='xy',scale_units='xy', scale=4.5)
plt.xlim([-LX,LX])
plt.ylim([-LY,LY])
#Dessin graphique
plt.grid()
plt.draw()
plt.show()
Un champ magnétique statique créé par un courant constant et uniforme I qui est perpendiculaire à la surface du papier à partir de l'origine.
"""
(4)Illustration du champ de vecteur 3D
Champ électrostatique créé par une charge ponctuelle à l'origine
"""
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d.axes3d import Axes3D #Importer pour le tracé 3D
import numpy as np
fig = plt.figure()
ax = Axes3D(fig)
LX, LY, LZ = 2,2,2 #paramètres de maillage xyz
gridwidth=0.9 #
X, Y, Z= np.meshgrid(np.arange(-LX, LX, gridwidth), np.arange(-LY, LY,gridwidth),np.arange(-LZ, LZ, gridwidth) ) #Génération de maillage
R = np.sqrt(X**2+Y**2+Z**2)
#Coordonnées de position et charge de la charge ponctuelle
X1,Y1, Z1=0,0,0
Q1=1
R1=np.sqrt((X-X1)**2+(Y-Y1)**2+(Z-Z1)**2)
ax.scatter3D(X1,Y1,Z1,"o", color='blue')
U = Q1*(X-X1)/(R1**2)
V = Q1*(Y-Y1)/(R1**2)
W= Q1*(Z-Z1)/(R1**2)
ax.quiver(X, Y, Z, U, V, W, color='red',length=1, normalize=False)
ax.set_xlim([-LX, LX])
ax.set_ylim([-LY, LY])
ax.set_zlim([-LZ, LZ])
plt.show()
Un tracé tridimensionnel du champ électrique créé par la charge ponctuelle placée à l'origine.
Recommended Posts