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 étrange Comprendre l'algèbre linéaire basée sur et l'implémenter en python.
・ Cahier Jupyter ・ Langage: Python3, Julia 1.4.0
E = \begin{pmatrix}1 & 0\\0 & 1\end{pmatrix},\begin{pmatrix}1 & 0 & 0\\0 & 1 & 0\\0 & 0 & 1\end{pmatrix}
Du coin supérieur gauche au coin inférieur droit, les 1 sont alignés en diagonale et les autres éléments sont des 0.
Même si une matrice unitaire avec le même nombre d'éléments est multipliée par une matrice carrée d'ordre n, les valeurs de sortie seront les mêmes. De plus, l'ordre des produits n'a pas d'importance.
AE = \begin{pmatrix}a & b\\c & d\end{pmatrix}\begin{pmatrix}1 & 0\\0 & 1\end{pmatrix}=\begin{pmatrix}a & b\\c & d\end{pmatrix}=\begin{pmatrix}1 & 0\\0 & 1\end{pmatrix}\begin{pmatrix}a & b\\c & d\end{pmatrix}=EA
import numpy as np
# print("Matrice unitaire 2 × 2")
print(np.eye(2))
# print("Matrice unitaire 3 × 3")
print(np.eye(3))
# print("Matrice d'unité 4x4")
print(np.eye(4))
#la mise en oeuvre
Matrice unitaire 2 × 2
[[1. 0.]
[0. 1.]]
Matrice unitaire 3 × 3
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
Matrice d'unité 4x4
[[1. 0. 0. 0.]
[0. 1. 0. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]]
using LinearAlgebra
Matrix{Int}(I, 2, 2)
Matrix{Int}(I, 3, 3)
Matrix{Int}(I, 4, 4)
2×2 Array{Int64,2}:
1 0
0 1
3×3 Array{Int64,2}:
1 0 0
0 1 0
0 0 1
4×4 Array{Int64,2}:
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
La matrice inverse est
AA^{-1} = A^{-1}A = E
Il a une relation de. Pour donner un exemple
A =\begin{pmatrix}1 & 1 \\1 & 2\end{pmatrix},
B =\begin{pmatrix}2 & -1 \\-1 & 1\end{pmatrix}
Trouvez le produit de AB lorsqu'il y a deux matrices.
AB =\begin{pmatrix}1 & 1 \\1 & 2\end{pmatrix}\begin{pmatrix}2 & -1 \\-1 & 1\end{pmatrix}=\begin{pmatrix}1 & 0\\0 & 1\end{pmatrix}
Que ça
AB = E = BA \Longrightarrow B = A^{-1}
A = \begin{pmatrix}a & b\\c & d\end{pmatrix}
\Longleftrightarrow
\begin{vmatrix}A\end{vmatrix}= det A = ad-bc
De plus, dans le cas d'une matrice 2x2,
A^{-1} = \frac{1}{ad-bc}\begin
{pmatrix}d & -b\\-c & a\end{pmatrix}
Peut être exprimé comme, à ce moment,
ad-bc = 0 \Longleftrightarrow A^{-1}N'existe pas
\\
ad-bc \neq 0 \Longleftrightarrow A^{-1}Existe.
Peut être écrit comme.
import numpy as np
a = [input().split() for i in range(2)]
#Entrez des nombres
#=>1 2
#=>3 4
a = np.array(a)
print(a)
#=>[['1' '2']
# ['3' '4']]
a = a.astype(np.float64)
print(np.linalg.det(a))
#=>-2.0000000000000004
if np.linalg.det(a) != 0:
print(np.linalg.inv(a))
else:
print("No exist")
#=>[[-2. 1. ]
# [ 1.5 -0.5]]
En fait, même si la fonction np.linalg.inv () 'est utilisée telle quelle sans utiliser l'instruction if, une erreur se produira si la matrice inverse n'existe pas. Cependant, comme je veux utiliser l'expression matricielle cette fois, je l'ai écrite en utilisant la fonction
np.linalg.det ()`.
using LinearAlgebra
A = [1 2; 3 4]
if det(A) == 0
print("No exist")
else
inv(A)
end
#=>2×2 Array{Float64,2}:
# -2.0 1.0
# 1.5 -0.5
La matrice inverse est immédiatement obtenue par la fonction «inv ()».
Ensuite, je vais faire une conversion linéaire, donc si vous voulez rendre le graphique plus fort. Par tous les moyens.
Recommended Posts