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
Est une connexion linéaire
av + bw
Parlez en fonction de la forme de. Les vecteurs v et w doivent avoir des vecteurs de direction différents. Par exemple
\vec{v}=\begin{pmatrix}2\\3\end{pmatrix}
,
\vec{w}=\begin{pmatrix}1\\-2\end{pmatrix}
C'est une relation comme. Cela signifie que, comme nous l'avons fait la dernière fois, les deux vecteurs forment un angle qui ne satisfait pas nπ (n = 0, 1, 2, ...). C'est,
\vec{v}=\begin{pmatrix}2\\3\end{pmatrix}
,
\vec{w}=\begin{pmatrix}4\\6\end{pmatrix}
\\
\\
\vec{v}=α\vec{w}
Comme indiqué ci-dessus, la «relation produit scalaire et la relation multiple sont appelées dépendance linéaire». Cela s'appelle «indépendance linéaire des choses qui ne deviennent pas». Chacun doit être indépendant, voire trois, pas deux. Dans l'image, cela devrait ressembler à ceci.
Définition </ font> Lorsque Ax = 0 est seulement x = 0, le vecteur colonne est une algèbre linéaire. Rien d'autre n'est un vecteur nul dans la connexion linéaire Ax des vecteurs colonne. Les colonnes vectorielles v_1, v_2, ...., v_n ont une connexion linéaire qui est un vecteur nul.
0v_1+0v_2+...+0v_n
Quand seulement, il est linéairement indépendant.
C'est,
Tout x_Seulement quand je vaut zéro,\\
x_1v_1+x_2v_2+...+x_nv_n=0\\
Devient.
Lorsque cela ne se produit pas, on parle de dépendance linéaire.
6pythonlinearindependece
import numpy as np
v = list()
w = list()
for i in range(2):
vbec = int(input())
v.append(vbec)
for i in range(2):
wbec = int(input())
w.append(wbec)
v = np.array(v)
w = np.array(w)
sarrus = v[0]*v[1] - v[1]*v[0]
if sarrus == 0:
print("Subordination linéaire")
else:
print("Indépendance linéaire")
J'ai essayé l'algèbre linéaire avec Python (2)にあるコードを少しだけ書き換えたものである。 Cela ne peut être déterminé qu'entre des vecteurs à deux éléments. Le programme qui compte en premier le nombre d'éléments et détermine s'il est indépendant ou dépendant est le suivant.
6pythonlinearindependece2
import numpy as np
n = int(input())
# =>3
v = list()
w = list()
for i in range(n):
vbec = int(input())
v.append(vbec)
for i in range(n):
wbec = int(input())
w.append(wbec)
v = np.array(v)
w = np.array(w)
# =>1
# =>2
# =>3
# =>3
# =>2
# =>1
x = list()
c = v[0]/w[0]
for i in range(n):
if v[i] == c*w[i]:
x.append("True")
continue
else:
break
if len(x) == n:
print("Subordination linéaire")
elif len(x) < n:
print("Indépendance linéaire")
# =>Indépendance linéaire
Définition </ font>
La base de l'espace vectoriel est une séquence de vecteurs qui a les deux propriétés suivantes: *** Le vecteur de base est linéairement indépendant et s'étend sur l'espace. ***
Une explication détaillée de la base est omise ici.
Exemple concret
I =
\begin{bmatrix}
1 & 0\\
0 & 1
\end{bmatrix}
Le vecteur de colonne est R^2 base standard.
À partir de là, on peut dire ce qui suit.
(n×n)Le vecteur colonne de la matrice unitaire est R^est la "base standard" de n.
plus loin,
Tout(n×n)Le vecteur colonne de la matrice est R^est la "base standard" de n
Les dimensions sont également omises ici.
\vec{e_x}=\begin{pmatrix}1\\0\end{pmatrix},
\vec{e_y}=\begin{pmatrix}0\\1\end{pmatrix}
Alors, a = (2,3) peut être exprimé comme suit.
\vec{a}=\begin{pmatrix}2\\3\end{pmatrix}=2\vec{e_x}+3\vec{e_y}
=2\begin{pmatrix}0\\1\end{pmatrix}+3\begin{pmatrix}1\\0\end{pmatrix}
Que ça
\vec{a},\vec{e_x},\vec{e_y}
Dessinez trois vecteurs de. J'ai essayé l'algèbre linéaire avec Python (5) Ce n'est pas nouveau car il a 3 vecteurs ver.
import numpy as np
import matplotlib.pyplot as plt
a = np.array([2, 3])
e_x = np.array([1, 0])
e_y = np.array([0, 1])
print("a:", a)
print("e_x:", e_x)
print("e_y:", e_y)
def arrow(start, size, color):
plt.quiver(start[0], start[1], size[0], size[1],
angles="xy", scale_units="xy", scale=1, color=color)
s = np.array([0, 0]) #origine
arrow(s, a, color="blue")
arrow(s, e_x, color="red")
arrow(s, e_y, color="red")
#affichage graphique
plt.xlim([-3,3]) #Plage d'affichage de x
plt.ylim([-3,3]) #Plage d'affichage de y
plt.xlabel("x", size=14)
plt.ylabel("y", size=14)
plt.grid()
plt.axes().set_aspect("equal") #Même rapport hauteur / largeur
plt.show()
Je n'ai pas fait ça difficile. Pour python, j'écris un petit code de détour. (Pour rendre le principe plus facile à comprendre) Je ne peux pas dessiner de graphiques avec julia (?), Donc je vais écrire du code dans des champs tels que le calcul.
Recommended Posts