Valeurs authentiques et vecteurs propres: Algèbre linéaire en Python <7>

algèbre linéaire

L'algèbre linéaire que vous apprendrez certainement dans une université scientifique est résumée de manière logique et facile à comprendre. Au fait, je l'ai implémenté en Python. Parfois, il peut être implémenté dans Julia. .. .. ・ Apprenez en exécutant avec Python! Nouveau manuel de mathématiques - Connaissances de base requises pour l'apprentissage automatique et l'apprentissage en profondeur - ・ Manuel mondial du MIT Introduction à l'algèbre linéaire Strang Comprendre l'algèbre linéaire basée sur et l'implémenter en python.

environnement

・ Cahier Jupyter ・ Langage: Python3, Julia 1.4.0

Des valeurs uniques et des vecteurs uniques

Les valeurs propres et les vecteurs propres sont utilisés dans une méthode d'analyse en composantes principales qui résume les données avec l'intelligence artificielle.

Valeur unique, vecteur unique

Considérons une matrice carrée A. Pour cette matrice A

A\vec{x}=λ\vec{x}

Lors de la réunion

λ est la valeur propre de la matrice A\\
\vec{x}Le vecteur propre de la matrice A\\

C'est.

Équation intrinsèque

Multipliez l'équation ci-dessus par la matrice unitaire E qui n'affecte pas le vecteur.

A\vec{x}=λE\vec{x}

Transférer et organiser le côté droit

(A-λE)\vec{x} = \vec{0}

Cela représente un vecteur avec tous les éléments 0 ***. Par contre, même si la matrice inverse est considérée, elle est nulle. C'est un vecteur. Cette équation est appelée *** équation propre ***.

Résolution des valeurs propres et des vecteurs propres par équations propres

(A-λE)\vec{x} = \vec{0}

le long de,

A=\begin{pmatrix}3 & 1\\2 & 4\end{pmatrix}

Comme exemple concret. Puis

det(A-λE)\vec{x} = 0\\
⇔
det(\begin{pmatrix}3 & 1\\2 & 4\end{pmatrix}-λ\begin{pmatrix}1 & 0\\0 & 1\end{pmatrix})\vec{x} = 0\\
⇔
det\begin{pmatrix}3-λ & 1\\2 & 4-λ\end{pmatrix} = 0\\
⇔(λ-2)(λ-5)= 0\\

Cela rend la *** valeur unique 2 ou 5 ***. Parce que le vecteur propre change également en fonction de la valeur propre. Pensez à chacun des cas 2 et 5.

\vec{x} = \begin{pmatrix}p\\q\end{pmatrix}

Si vous calculez avec λ = 2,

det(A-λE)\vec{x} = 0\\
\begin{align}
det(A-λE)\vec{x}&=
det(A-2E)\begin{pmatrix}p\\q\end{pmatrix} \\
&=\begin{pmatrix}1 & 1\\2 & 2\end{pmatrix}\begin{pmatrix}p\\q\end{pmatrix}\\
&=\begin{pmatrix}p+q\\2p+2q\end{pmatrix} \\
&= \vec{0} 
\end{align}

À partir de là, on peut dire que p + q = 0, donc si vous mettez un nombre réel arbitraire t, le vecteur x sera

\vec{x}=\begin{pmatrix}t\\-t\end{pmatrix}

Et le vecteur propre est obtenu.

Lorsque λ = 5,

\vec{x}=\begin{pmatrix}t\\2t\end{pmatrix}

Sera.

programme

Programme de recherche de valeurs propres et de vecteurs propres

python

7pythoneigenvaluevector


import numpy as np

A = np.array([[3, 1],[2, 4]])

ev = np.linalg.eig(A)
print(ev[0])
print(ev[1])
[2. 5.]
[[-0.70710678 -0.4472136 ]
 [ 0.70710678 -0.89442719]]

Ici, nous utilisons la fonction linag.eig. C'est parce que la valeur unique est en anglais et est *** valeur propre ***.

Faisons un programme principal. Cette fois, la valeur propre est calculée.

python (principe)

7pythoneigenvaluevector2


import numpy as np
import sympy

#A = [[a, b],
#     [c, d]]
a = int(input())
b = int(input())
c = int(input())
d = int(input())
#=>3
#=>1
#=>2
#=>4

x = sympy.Symbol('x')
eigenequa = x**2 - (a + d)*x + (a * d) - (b * c)```
print(eigenequa)
 factorization = sympy.factor(eigenequa)
 print(factorization)
solve = sympy.solve(eigenequa)
print(solve)
=>x**2 - 7*x + 10
=>[2, 5]

Julia est si facile que je vais la mettre.

julia

7juliaigenvaluevector


using LinearAlgebra
F = eigen([3 1; 2 4;])

=>Eigen{Float64,Float64,Array{Float64,2},Array{Float64,1}}
=>values:
=>2-element Array{Float64,1}:
=> 2.0
=> 5.0
=>vectors:
=>2×2 Array{Float64,2}:
=> -0.707107  -0.447214
=>  0.707107  -0.894427

Seulement 2 lignes! sensationnel...

C'est tout pour aujourd'hui

Recommended Posts

Valeurs authentiques et vecteurs propres: Algèbre linéaire en Python <7>
Indépendance et base linéaires: Algèbre linéaire en Python <6>
Matrice unitaire et matrice inverse: Algèbre linéaire en Python <4>
Produit intérieur et vecteur: Algèbre linéaire en Python <2>
Calcul matriciel et équations linéaires: Algèbre linéaire en Python <3>
Première physique computationnelle: mécanique quantique et algèbre linéaire avec python.
Algèbre linéaire pour la programmation Chapitre 4 (valeurs uniques, vecteurs propres)
Introduction aux vecteurs: Algèbre linéaire en Python <1>
Trouver valeur propre / vecteur propre
Recherche linéaire en Python
"Régression linéaire" et "Version probabiliste de la régression linéaire" en Python "Régression linéaire de Bayes"
Trouvez la matrice Hermite et ses valeurs uniques en Python
Pile et file d'attente en Python
Introduction à l'algèbre linéaire avec Python: Décomposition A = LU
Unittest et CI en Python
Régression linéaire en ligne en Python
Capturez des images d'algèbre linéaire avec python (translocation, matrice inverse, produit de matrices)
Paquets qui gèrent le MIDI avec Python midi et pretty_midi
Différence entre list () et [] en Python
Différence entre == et est en python
Afficher les photos en Python et html
Algorithme de tri et implémentation en Python
Manipuler des fichiers et des dossiers en Python
À propos de Python et Cython dtype
Affectations et modifications des objets Python
Vérifiez et déplacez le répertoire en 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
Liste des solveurs et modélisateurs de conception linéaire (LP) disponibles en Python
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
Régression linéaire en Python (statmodels, scikit-learn, PyMC3)
Différences entre Ruby et Python dans la portée
Modulation et démodulation AM avec Python Partie 2
différence entre les instructions (instructions) et les expressions (expressions) en Python
Module d'implémentation de file d'attente et Python "deque"
Graphique à lignes pliées et ligne d'échelle en python
Régression linéaire en ligne en Python (estimation robuste)
Implémenter le filtre FIR en langage Python et C
Différences entre la syntaxe Python et Java
Vérifier et recevoir le port série en Python (vérification du port)
Rechercher et lire des vidéos YouTube avec Python
Différence entre @classmethod et @staticmethod 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
Gérer les "années et mois" en Python
Lire et écrire des fichiers JSON avec Python
Représentez facilement des données graphiques dans le shell et Python