Suchen und überprüfen Sie die inverse Matrix in Python

Was ich tun möchte: Implementieren Sie in Python, wie Sie die inverse Matrix finden

Wenn die Größe der Matrix groß wird, müssen wir über die Optimierung der Verarbeitung nachdenken, aber In diesem Artikel wollen wir den "konzeptuellen Teil des Findens der inversen Matrix" mit der Implementierung in Python verbinden. (Benutze Numpy)

(Beispiel-) Matrixdefinition

A=\left(
\begin{matrix}
1 & 2 \\
3 & 4 
\end{matrix}
\right)

Wird besorgt. In der Implementierung sieht es so aus:

> import numpy as np
> A = np.array([[1,2],[3,4]])

Der Inhalt von ck

> A 
array([[1, 2],
       [3, 4]])

Berechnen wir die Matrixformel

Wenn der Matrixausdruck = 0 ist, überprüfen Sie, ob keine inverse Matrix oder kein Zögern vorliegt:

{\rm det}(A)={\rm det}\left(
\begin{matrix}
1 & 2 \\
3 & 4 
\end{matrix}
\right)
=1\times 4-2\times3=-2

In Bezug auf die Umsetzung

> np.linalg.det(A)
-2.0000000000000004

Lassen Sie uns die inverse Matrix finden

Mathematisch

A = \left(
\begin{matrix}
a & b \\
c & d
\end{matrix}\right)

Gegen

A^{-1} = \frac{1}{{\rm det}A}\left(
\begin{matrix}
d & -b \\
-c & a
\end{matrix}\right)

Ersatz wie bekannt.

A^{-1} = \frac{1}{-2}\left(
\begin{matrix}
4 & -2 \\
-3 & 1
\end{matrix}\right)
=\left(
\begin{matrix}
-2 & 1 \\
1.5 & -0.5
\end{matrix}
\right)

In Bezug auf die Umsetzung

> inv_A = np.linalg.inv(A)
> inv_A
array([[-2. ,  1. ],
       [ 1.5, -0.5]])

Wobei linalg ein Modul von numpy ist. Für mehr Details http://docs.scipy.org/doc/numpy/reference/routines.linalg.html Sehen

Zum Schluss überprüfen

Das Multiplizieren der inversen Matrix und der ursprünglichen Matrix ergibt eine Einheitsmatrix, nicht wahr?

AA^{-1}=A^{-1}A=
\left(
\begin{matrix}
1 & 0 \\
0 & 1
\end{matrix}
\right)
> np.dot(A,inv_A)
array([[  1.00000000e+00,   1.11022302e-16],
       [  0.00000000e+00,   1.00000000e+00]])
> np.dot(inv_A,A)
array([[  1.00000000e+00,   4.44089210e-16],
       [  0.00000000e+00,   1.00000000e+00]])

Es ist eine numerische Sache, die nicht schön zu einer Einheitsmatrix wird, ich bin mir nicht sicher, aber ...

Wenn Sie verschiedene Dinge ausprobieren möchten, ändern Sie die Matrix $ A $.

Recommended Posts

Suchen und überprüfen Sie die inverse Matrix in Python
Einheitsmatrix und inverse Matrix: Lineare Algebra in Python <4>
Finden Sie die Hermite-Matrix und ihre eindeutigen Werte in Python
Überprüfen und verschieben Sie das Verzeichnis in Python
Überprüfen und empfangen Sie die serielle Schnittstelle in Python (Portprüfung)
Die findähnliche Sache der Liste in Python
[Python] Finden Sie die Translokationsmatrix in Einschlussnotation
Matrixberechnung und lineare Gleichungen: Lineare Algebra in Python <3>
Finde Fehler in Python
Finden Sie die Reihenfolge / Kombination in Python
Matrixprodukt in Python numpy
Transmutationsmatrix im Python-Standard
Schreiben Sie Tests in Python, um die Abdeckung zu profilieren und zu überprüfen
Stapel und Warteschlange in Python
Unittest und CI in Python
Lassen Sie uns das Umfangsverhältnis mit Python finden
Erfassen Sie lineare Algebra-Bilder mit Python (Translokation, inverse Matrix, Produkt von Matrizen)
Finden Sie die Eigenwerte einer reellen symmetrischen Matrix in Python
Überprüfen Sie Python auf Speicherlecks
Pakete, die MIDI mit Python Midi und Pretty_Midi verarbeiten
Unterschied zwischen list () und [] in Python
Suchen Sie mit Python nach externen Befehlen
Unterschied zwischen == und ist in Python
Zeigen Sie Fotos in Python und HTML an
Sortieralgorithmus und Implementierung in Python
Zeichnen Sie eine Streudiagrammmatrix mit Python
Über Python und Cython dtype
Zuweisungen und Änderungen in Python-Objekten
Verschlüsselung mit Python: IND-CCA2 und RSA-OAEP
Hashing von Daten in R und Python
Funktionssynthese und Anwendung in Python
Exportieren und Ausgeben von Dateien in Python
Reverse Flat Pseudonym und Katakana in Python2.7
Lesen und Schreiben von Text in Python
[GUI in Python] PyQt5-Menü und Symbolleiste-
Erstellen und lesen Sie Messagepacks in Python
[Python3] Speichern Sie die Mittelwert- und Kovarianzmatrix in json mit Pandas
Überlappende reguläre Ausdrücke in Python und Java
Unterschied in der Authentizität zwischen Python und JavaScript
Hinweise zur Verwendung von cChardet und python3-chardet in Python 3.3.1.
Module und Pakete in Python sind "Namespaces"
Vermeiden Sie verschachtelte Schleifen in PHP und Python
Überprüfen Sie das Verhalten des Zerstörers in Python
Unterschiede zwischen Ruby und Python im Umfang
AM-Modulation und Demodulation mit Python Part 2
Echte Werte und Eigenvektoren: Lineare Algebra in Python <7>
Suchen Sie nach Dateien wie Linux Find in Python
Warteschlangen- und Python-Implementierungsmodul "deque"
Implementieren Sie den FIR-Filter in Python und C.
Unterschiede zwischen Python- und Java-Syntax
Suchen und spielen Sie YouTube-Videos mit Python
Unterschied zwischen @classmethod und @staticmethod in Python
Überprüfen Sie, ob die URL in Python vorhanden ist
Unterschied zwischen Anhängen und + = in der Python-Liste
Unterschied zwischen nicht lokal und global in Python
Schreiben Sie die O_SYNC-Datei in C und Python
So überprüfen Sie die Version von opencv mit Python
[Python] Region Covariance: Verteilte Covarianzmatrix und Computer Vision
Lesen und schreiben Sie JSON-Dateien mit Python
Zeichnen Sie Daten einfach in Shell und Python
Private Methoden und Felder in Python [Verschlüsselung]