[Wissenschaftlich-technische Berechnung mit Python] Beispiel für die Visualisierung von Vektorfeld, elektrostatischem Magnetfeld, Matplotlib

Einführung

** 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

  1. Erstellen Sie ein x, y-Netz zum Zeichnen mit der meshgrid-Methode von numpy.
  2. Definieren Sie die Vektorfunktion $ F (u (x, y), v (x, y)) $ für die generierten (x, y) Punkte
  3. Zeichnen Sie einen Pfeil (Vektor) mit verschiedenen Optionen auf das Netz (https://matplotlib.org/devdocs/api/_as_gen/matplotlib.axes.Axes.quiver.html).

Das ist.

Es ist einfacher zu verstehen, wenn Sie die Operation überprüfen, während Sie sich ein konkretes Beispiel ansehen.

Inhalt

(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) Visualisierung des elektrostatischen Feldes, das durch eine Punktladung 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()

Ergebnis (1)

t.png Elektrostatisches Feld aufgrund der am Ursprung platzierten Punktladung.


(2) Elektrostatisches Feld, das durch Zweipunktladungen (elektrische Dipole) erzeugt wird


"""
(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()

Ergebnis (2): Elektrostatisches Feld, das durch Zweipunktladungen (elektrische Dipole) erzeugt wird

tt.png

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

"""
(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()


Ergebnis (3) Statisches Magnetfeld, das durch Dauerstrom erzeugt wird

t.png

Ein statisches Magnetfeld, das durch einen gleichmäßigen Strom I erzeugt wird, der vom Ursprung senkrecht zur Papieroberfläche verläuft.


(4) Dreidimensionales Vektorfeld (elektrostatisches Feld, das durch Punktladung am Ursprung erzeugt wird)

"""
(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()

Ergebnis (4) 3D-Vektorfeld (elektrostatisches Feld, erzeugt durch Punktladung am Ursprung)

tt.png

Eine dreidimensionale Darstellung des elektrischen Feldes, das durch die am Ursprung platzierte Punktladung erzeugt wird.

Recommended Posts

[Wissenschaftlich-technische Berechnung mit Python] Beispiel für die Visualisierung von Vektorfeld, elektrostatischem Magnetfeld, Matplotlib
[Wissenschaftlich-technische Berechnung mit Python] Histogramm, Visualisierung, Matplotlib
[Wissenschaftlich-technische Berechnung mit Python] Logistisches Diagramm, Visualisierung, Matplotlib
[Wissenschaftlich-technische Berechnung mit Python] Polarkoordinatendiagramm, Visualisierung, Matplotlib
[Wissenschaftlich-technische Berechnung von Python] Zeichnung von 3D-gekrümmter Oberfläche, Oberfläche, Drahtrahmen, Visualisierung, Matplotlib
[Wissenschaftlich-technische Berechnung mit Python] Plot, Visualisierung, Matplotlib von 2D-Daten, die aus einer Datei gelesen wurden
[Wissenschaftlich-technische Berechnung mit Python] Zeichnen, Visualisieren, Matplotlib von 2D-Konturlinien (Farbkonturen) usw.
[Wissenschaftlich-technische Berechnung mit Python] Summenberechnung, numerische Berechnung
[Wissenschaftlich-technische Berechnung mit Python] Inverse Matrixberechnung, numpy
[Wissenschaftlich-technische Berechnung mit Python] Lagrange-Interpolation, numerische Berechnung
[Wissenschaftlich-technische Berechnung von Python] Zeichnungsanimation der parabolischen Bewegung mit Locus, Matplotlib
[Wissenschaftlich-technische Berechnung mit Python] Zeichnen, visualisieren, matplotlib 2D-Daten mit Fehlerleiste
[Wissenschaftlich-technische Berechnung mit Python] Spline-Interpolation dritter Ordnung, scipy
[Wissenschaftlich-technische Berechnung von Python] Grundlegende Operation des Arrays, numpy
[Wissenschaftlich-technische Berechnung mit Python] Monte-Carlo-Integration, numerische Berechnung, Numpy
[Wissenschaftlich-technische Berechnung von Python] Wellen "Stöhnen" und Gruppengeschwindigkeit, Wellenüberlagerung, Visualisierung, Physik der High School
[Wissenschaftlich-technische Berechnung nach Python] Numerische Integration, Trapezgesetz / Simpson-Gesetz, numerische Berechnung, scipy
[Wissenschaftlich-technische Berechnung mit Python] Lösen simultaner linearer Gleichungen, numerische Berechnung, Numpy
[Wissenschaftlich-technische Berechnung von Python] 1-dimensionale 3D-diskrete Hochgeschwindigkeits-Fourier-Transformation, scipy
[Wissenschaftlich-technische Berechnung mit Python] 2D-Random-Walk (Drunken-Walk-Problem), numerische Berechnung
Wissenschaftlich-technische Berechnung mit Python] Zeichnen und Visualisieren von 3D-Isoplanes und deren Querschnittsansichten mit Mayavi
[Wissenschaftlich-technische Berechnung von Python] Anpassung durch nichtlineare Funktion, Zustandsgleichung, scipy
[Wissenschaftlich-technische Berechnung mit Python] Berechnung des Matrixprodukts mit @ operator, python3.5 oder höher, numpy
[Wissenschaftlich-technische Berechnung mit Python] Lösen gewöhnlicher Differentialgleichungen, mathematischer Formeln, Sympy
[Wissenschaftlich-technische Berechnung mit Python] Lösen (verallgemeinerter) Eigenwertprobleme mit numpy / scipy mithilfe von Bibliotheken
[Wissenschaftlich-technische Berechnung mit Python] Lösen der gewöhnlichen Differentialgleichung zweiter Ordnung nach der Numerov-Methode, numerische Berechnung
[Wissenschaftlich-technische Berechnung von Python] Numerische Berechnung zur Ermittlung des Ableitungswerts (Differential)
[Wissenschaftlich-technische Berechnung mit Python] Analytische Lösungssympathie zur Lösung von Gleichungen
[Wissenschaftlich-technische Berechnung nach Python] Lösen der eindimensionalen Newton-Gleichung nach der Runge-Kutta-Methode 4. Ordnung
Visualisierungsnotiz von Python
[Wissenschaftlich-technische Berechnung mit Python] Numerische Lösung der gewöhnlichen Differentialgleichung zweiter Ordnung, Anfangswertproblem, numerische Berechnung
[Wissenschaftlich-technische Berechnung mit Python] Liste der Matrizen, die in Hinpan in der numerischen linearen Algebra vorkommen
[Wissenschaftlich-technische Berechnung durch Python] Liste der Verwendung von (speziellen) Funktionen, die in der Physik unter Verwendung von scipy verwendet werden
[Wissenschaftliche und technische Berechnung von Python] Zeichnung fraktaler Figuren [Shelpinsky-Dreieck, Bernsley-Farn, fraktaler Baum]
[Wissenschaftlich-technische Berechnung nach Python] Numerische Lösung des Problems des eindimensionalen harmonischen Oszillators nach der Speed-Berle-Methode
[Wissenschaftlich-technische Berechnung nach Python] Numerische Lösung des Eigenwertproblems der Matrix durch Potenzmultiplikation, numerische lineare Algebra
Python-Anwendung: Datenvisualisierung # 2: matplotlib
[Wissenschaftlich-technische Berechnung nach Python] Monte-Carlo-Simulation nach der Metropolenmethode der Thermodynamik des 2D-Anstiegsspinsystems
[Wissenschaftlich-technische Berechnung nach Python] Numerische Lösung der zweidimensionalen Laplace-Poisson-Gleichung für die elektrostatische Position nach der Jacobi-Methode, elliptische partielle Differentialgleichung, Randwertproblem
[Wissenschaftlich-technische Berechnung nach Python] Ableitung analytischer Lösungen für quadratische und kubische Gleichungen, mathematische Formeln, Sympy
[Wissenschaftlich-technische Berechnung durch Python] Lösung des Randwertproblems gewöhnlicher Differentialgleichungen im Matrixformat, numerische Berechnung
[Wissenschaftlich-technische Berechnung von Python] Lösen der eindimensionalen Schrödinger-Gleichung im stationären Zustand durch Schießmethode (1), Potential vom Well-Typ, Quantenmechanik