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.
・ Cahier Jupyter ・ Langage: Python3, Julia 1.4.0
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.
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.
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 ***.
(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.
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.
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.
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