Rechercher et vérifier la matrice inverse en Python

Ce que je veux faire: implémenter en Python comment trouver la matrice inverse

Lorsque la taille de la matrice devient grande, il faut penser à l'optimisation du traitement, mais Dans cet article, nous visons à connecter la «partie conceptuelle de la recherche de la matrice inverse» avec l'implémentation en Python. (Utilisez Numpy)

(Exemple) Définition de la matrice

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

ça ira. Dans l'implémentation, cela ressemble à ceci:

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

Pour le moment, le contenu de ck

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

Calculons la formule matricielle

Si l'expression de la matrice = 0, vérifiez car il n'y a pas de matrice inverse ou d'hésitation:

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

En termes de mise en œuvre

> np.linalg.det(A)
-2.0000000000000004

Trouvons la matrice inverse

Mathématiquement

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

Contre

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

Remplacez comme connu.

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)

En termes de mise en œuvre

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

Où «linalg» est un module de «numpy». Pour plus de détails http://docs.scipy.org/doc/numpy/reference/routines.linalg.html Voir

Enfin vérifier

Multiplier la matrice inverse et la matrice originale donne une matrice unitaire, n'est-ce pas?

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]])

C'est une chose numérique qui ne devient pas magnifiquement une matrice unitaire, je ne sais pas, mais ...

Si vous voulez essayer différentes choses, essayez de changer la matrice $ A $.

Recommended Posts

Rechercher et vérifier la matrice inverse en Python
Matrice unitaire et matrice inverse: Algèbre linéaire en Python <4>
Trouvez la matrice Hermite et ses valeurs uniques en Python
Vérifiez et déplacez le répertoire en Python
Vérifier et recevoir le port série en Python (vérification du port)
La chose semblable à une recherche de liste en Python
[Python] Trouvez la matrice de translocation en notation d'inclusion
Calcul matriciel et équations linéaires: Algèbre linéaire en Python <3>
Trouver des erreurs en Python
Trouvez l'ordre / la combinaison en Python
Produit matriciel en python numpy
Matrice transposée au standard Python
Écrire des tests en Python pour profiler et vérifier la couverture
Pile et file d'attente en Python
Unittest et CI en Python
Trouvons le rapport de circonférence avec Python
Capturez des images d'algèbre linéaire avec python (translocation, matrice inverse, produit de matrices)
Trouver les valeurs propres d'une vraie matrice symétrique en Python
Rechercher les fuites de mémoire dans Python
Paquets qui gèrent le MIDI avec Python midi et pretty_midi
Différence entre list () et [] en Python
Rechercher des commandes externes avec python
Différence entre == et est en python
Afficher les photos en Python et html
Algorithme de tri et implémentation en Python
Dessinez une matrice de diagramme de dispersion avec python
À propos de Python et Cython dtype
Affectations et modifications des objets Python
Chiffrement avec Python: IND-CCA2 et RSA-OAEP
Hashing de données en R et Python
Synthèse de fonctions et application en Python
Exporter et exporter des fichiers en Python
Inverser le pseudonyme plat et le katakana en Python2.7
Lire et écrire du texte en Python
[GUI en Python] Menu PyQt5 et barre d'outils-
Créer et lire des paquets de messages en Python
[Python3] Enregistrez la matrice de moyenne et de covariance dans json avec les pandas
Chevauchement d'expressions régulières en Python et Java
Différence d'authenticité entre Python et JavaScript
Notes utilisant cChardet et python3-chardet dans Python 3.3.1.
Les modules et packages en Python sont des "espaces de noms"
Évitez les boucles imbriquées en PHP et Python
Vérifiez le comportement du destroyer en Python
Différences entre Ruby et Python dans la portée
Modulation et démodulation AM avec Python Partie 2
Valeurs authentiques et vecteurs propres: Algèbre linéaire en Python <7>
Trouver des fichiers comme Linux Find en Python
Module d'implémentation de file d'attente et Python "deque"
Implémenter le filtre FIR en langage Python et C
Différences entre la syntaxe Python et Java
Rechercher et lire des vidéos YouTube avec Python
Différence entre @classmethod et @staticmethod en Python
Vérifiez si l'URL existe en Python
Différence entre append et + = dans la liste Python
Différence entre non local et global en Python
Ecrire le fichier O_SYNC en C et Python
Comment vérifier la version d'opencv avec python
[Python] Covariance de région: matrice de covariance distribuée et vision par ordinateur
Lire et écrire des fichiers JSON avec Python
Représentez facilement des données graphiques dans le shell et Python
Méthodes et champs privés en python [chiffrement]