Indépendance et base linéaires: Algèbre linéaire en Python <6>

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 étrange Comprendre l'algèbre linéaire basée sur et l'implémenter en python.

environnement

・ Cahier Jupyter ・ Langage: Python3, Julia 1.4.0

Indépendance linéaire

Image indépendante linéaire

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 de l'indépendance linéaire

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.

programme

Un programme qui juge les vecteurs de colonnes qui ont deux deux éléments

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.

Un programme qui juge les vecteurs de colonne avec deux n éléments

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

base

Définition de la base de l'espace vectoriel

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.

Base standard

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.

programme

\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.

Programme de dessin vectoriel original et de base standard

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

à la fin

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