[PYTHON] Numpy verlassen? !! Unterscheiden Sie die Matrix teilweise mit Sympy

Änderungsprotokoll

2020.4.28. Hinzugefügt: Skalarfunktion mit Vektor differenzieren

Einführung

Guten Abend, ich bin ein alter Ingenieur. Meine Zeit ist noch nicht vorbei. Es scheint jedoch, dass die Ära von Numpy in Bezug auf Matrixoperationen vorbei ist. Sein Name ist Sympy (ich glaube nicht, dass es ein neuer Py ist)!

Verschiedene Dinge wie die teilweise Differenzierung von Matrizen mit Sympy

Vorerst können Sie so etwas tun.

python


#%%
import sympy as sym
from IPython.display import Math, display

#Variablen definieren
(x, y, p, q) = sym.symbols("x y p q")
#Definieren Sie eine Matrix
A = sym.Matrix([
    [x,2*x,3*x],
    [4*x,5*x,6*x]
])
display((Math(f"A={sym.latex(A)}")))
B = sym.Matrix([
    [y,y],
    [4*y,5*y],
    [7*y,y]
])
display((Math(f"B={sym.latex(B)}")))
#Vektorfunktion definieren
xy = sym.Matrix([
    [x,y]
])
display((Math(f"xy={sym.latex(xy)}")))
pq = sym.Matrix([
    [3*x*y,2*x+y]
])
display((Math(f"pq={sym.latex(pq)}")))
#Skalarfunktion definieren
f = x**2

#Multiplikation zwischen Matrizen
C = A * B
display((Math(f"C=AB={sym.latex(C)}")))

#Matrix x,Ersetzen Sie y durch eine Zahl
C1 = C.subs({x:10, y: 20})
display((Math(f"C(10,20)={sym.latex(C1)}")))

#Unterscheiden Sie die Matrix teilweise durch x
dCdx = sym.diff(C, x)
display((Math(r"\frac{\partial C}{\partial x}"f"={sym.latex(dCdx)}")))
#Unterscheiden Sie die Matrix teilweise mit y
dCdy = sym.diff(C, y)
display((Math(r"\frac{\partial C}{\partial y}"f"={sym.latex(dCdy)}")))

#Differenzieren Sie die Skalarfunktion mit einem Vektor
dfdxy = sym.diff(f, xy)
display((Math(r"\frac{df}{dxy}"f"={sym.latex(dfdxy)}")))
#Unterscheiden Sie die Vektorfunktion nach Vektor
dpqdxy = sym.diff(pq, xy.T)
display((Math(r"\frac{dpq}{dxy}"f"={sym.latex(dpqdxy)}")))
#Unterscheiden Sie die Skalarfunktion mit einer Matrix(Ich bekomme eine Fehlermeldung)
# dfdA = sym.diff(f, A)
# display((Math(r"\frac{df}{dA}"f"={sym.latex(dfdA)}")))

Versuchen Sie, mit Visual Studio Code in der ersten Zeile von # %% zu kopieren oder zu kopieren. Das # %% in der ersten Zeile ist eine Magie, die VS-Code in Jupyter-Notizbuch ändert. Du kannst es nicht normal machen. Stecke die Run Cell in die Abbildung unten.

image.png

Dann wird so etwas herauskommen! image.png

Natürlich können die Elemente der Matrix Zahlen sein, aber sie können auch Buchstaben sein, wie im obigen Beispiel. Die Berechnung erfolgt ebenfalls mit Zeichen. Darüber hinaus können Sie dieses Zeichen (Variable) durch einen numerischen Wert ersetzen, z. B. durch Herrn Tanaka, der eine Formel erstellt. Es gibt auch einen Perversen ... Eine Differenzierung ist auch mit einem Vektor möglich, wenn also das Kettengesetz der Rückausbreitung gelehrt wird Es scheint brauchbar zu sein. Also werde ich zu Mittag essen.

Recommended Posts

Numpy verlassen? !! Unterscheiden Sie die Matrix teilweise mit Sympy
Verkettung von Matrizen mit Numpy
Bewegungsgleichung mit Sympy
Versuchen Sie die Matrixoperation mit NumPy
Visualisierung der von numpy erstellten Matrix
Die Geschichte der numerischen Berechnung von Differentialgleichungen mit TensorFlow 2.0
Vergleich der Matrixtranspositionsgeschwindigkeit durch Python
Konvertieren Sie Daten mit Form (Anzahl der Daten, 1) in (Anzahl der Daten,) mit numpy.
Ich habe Jacobian und teilweise Differenzierung mit Python versucht
1. Mit Python 1-2 gelernte Statistiken. Berechnung verschiedener Statistiken (Numpy)
Berechnung der gegenseitigen Informationsmenge (kontinuierlicher Wert) mit numpy
Lassen Sie uns die Matrix transponieren und die Matrizen mit numpy multiplizieren.
Laden Sie mp4 einfach teilweise mit Python und youtube-dl herunter!
Ich habe versucht, eine ganzzahlige Matrix mit Numpy zu standardisieren
Lösen Sie simultane normale Differentialgleichungen mit Python und SymPy.
Erstellen Sie eine Matrix mit numpy nur für Spalten, deren Gesamtwert der Elemente der Spalten der Matrix das oberste X ist
NumPy> [1, 2, 3, 4, 5, 6, 7, 8, 9] mit 3 ndarrays ([1,4,7], [2,5,8], [3,6,9]) Implementierung zur Aufteilung in> {Verwendung von Slice / Reshape () + Methode der Matrixtranslokation}