** Visualisiere das Vektorfeld mit matplotlib. Zeichnen Sie als Beispiel die elektrostatischen und statischen Magnetfelder, die in der Physik der High School gelernt wurden. ** **.
Jedes Programm hat einen Fluss
Das ist.
Es ist einfacher zu verstehen, wenn Sie die Operation überprüfen, während Sie sich ein konkretes Beispiel ansehen.
(1) Visualisierung des elektrostatischen Feldes, das durch eine Punktladung erzeugt wird (2) Elektrostatisches Feld, das durch Zweipunktladungen (elektrische Dipole) erzeugt wird (3) Statisches Magnetfeld, das durch einen stetigen Strom erzeugt wird, der durch den Ursprung fließt (4) Dreidimensionales Vektorfeld (elektrostatisches Feld, das durch Punktladung am Ursprung erzeugt wird)
"""
(1)Elektrostatisches Feld, das durch eine Punktladung am Ursprung erzeugt wird
"""
import numpy as np
import matplotlib.pyplot as plt
plt.figure()
LX, LY=2.1,2.1 #Parameter für das Netz
gridwidth=0.33
X, Y= np.meshgrid(np.arange(-LX, LX, gridwidth), np.arange(-LY, LY,gridwidth)) #Netzgenerierung
R = np.sqrt(X**2+Y**2) #Entfernung vom Ursprung
#Positionskoordinaten und Ladung der Punktladung
X1,Y1=0,0 #Platzierung der Ladung zum Ursprung
Q1=1 #Ladebetrag einstellen
R1=np.sqrt((X-X1)**2+(Y-Y1)**2) #Beliebiger Punkt aus dieser Anklage(X,Y)Entfernung zu
plt.plot(X1,Y1,'o',color='blue') #Punktladung ziehen
#Vektorfunktion F.(U(x,y), V(x,y))Definiert. Der Ausdruck des elektrostatischen Feldes wird verwendet.
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) #Plotvektorfeld
plt.xlim([-LX,LX]) #Bereich von X zum Zeichnen
plt.ylim([-LY,LY]) #Bereich von y zum Zeichnen
#Diagrammzeichnung
plt.grid()
plt.draw()
plt.show()
Elektrostatisches Feld aufgrund der am Ursprung platzierten Punktladung.
"""
(2)Zwei-Punkte-Gebühren(Elektrisch bipolar)Elektrostatisches Feld erzeugt durch
"""
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)
#Positionskoordinaten und Ladung von zwei Punktladungen
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')
##
#Einstellungen der Vektorfunktion. 2 Gebühren.
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])
#Diagrammzeichnung
plt.grid()
plt.draw()
plt.show()
Ein elektrostatisches Feld, das durch Zweipunktladungen (Ladungen sind 1 bzw. -1) bei (-1,1,0) und (1,1,0) erzeugt wird.
"""
(3)Statisches Magnetfeld, das durch einen stetigen Strom erzeugt wird, der durch den Ursprung fließt
"""
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)
#Positionskoordinaten und Ladung der Punktladung
X1,Y1=0,0
I=1 #Dauerstromwert
R1=np.sqrt((X-X1)**2+(Y-Y1)**2)
plt.plot(X1,Y1,'o',color='blue')
#Einstellungen der Vektorfunktion. Statisches Magnetfeld durch Dauerstrom 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])
#Diagrammzeichnung
plt.grid()
plt.draw()
plt.show()
Ein statisches Magnetfeld, das durch einen gleichmäßigen Strom I erzeugt wird, der vom Ursprung senkrecht zur Papieroberfläche verläuft.
"""
(4)Illustration des 3D-Vektorfeldes
Elektrostatisches Feld, das durch Punktladung am Ursprung erzeugt wird
"""
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d.axes3d import Axes3D #Import für 3D-Plot
import numpy as np
fig = plt.figure()
ax = Axes3D(fig)
LX, LY, LZ = 2,2,2 #xyz-Netzparameter
gridwidth=0.9 #
X, Y, Z= np.meshgrid(np.arange(-LX, LX, gridwidth), np.arange(-LY, LY,gridwidth),np.arange(-LZ, LZ, gridwidth) ) #Netzgenerierung
R = np.sqrt(X**2+Y**2+Z**2)
#Positionskoordinaten und Ladung der Punktladung
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()
Eine dreidimensionale Darstellung des elektrischen Feldes, das durch die am Ursprung platzierte Punktladung erzeugt wird.
Recommended Posts