[PYTHON] J'ai lu l'algèbre linéaire de Strang

[World Standard MIT Textbook Strang: Linear Algebra Introduction](https://www.amazon.co.jp/s?k=%E3%82%B9%E3%83%88%E3%83%A9%E3%83] % B3% E3% 82% B0 +% E7% B7% 9A% E5% BD% A2% E4% BB% A3% E6% 95% B0 & __ mk_ja_JP =% E3% 82% AB% E3% 82% BF% E3% 82% AB% E3% 83% 8A & crid = 2C5QCY8N0F5B9 & sprefix =% E3% 82% B9% E3% 83% 88% E3% 83% A9% E3% 83% B3% E3% 82% B0% 2Caps% 2C236 & ref = nb_sb_ss_i image.png

De 19h00 à 20h30 le 21 juillet Introduction à l'algèbre linéaire 2e session d'étude en ligne gratuite Bienvenue aux débutants tenir. S'il vous plaît rejoignez-nous.

introduction

vecteur

Le vecteur est dérivé du mot latin vehere, qui signifie «porter», et a été utilisé pour la première fois par les astronomes du 18ème siècle.

Il est utilisé dans le domaine des sciences mathématiques, et il est utilisé dans chaque domaine.

Dans le domaine des ordinateurs, les structures de données exprimées sous forme de tableaux et de séquences unidimensionnels sont considérées. Il est souvent utilisé dans le monde de l'infographie.

Il est également largement utilisé dans le domaine de la physique. Il est souvent utilisé pour traiter des problèmes dans un espace tridimensionnel ou dans un espace bidimensionnel, et est appliqué dans une large gamme comme l'électromagnétique et la dynamique des fluides.

En mathématiques, une quantité avec taille et orientation dans l'espace géométrique. Il peut être considéré comme un segment de ligne orienté. Vecteur au sens large en général. Il a une linéarité, c'est-à-dire que c'est une quantité qui peut prendre des temps somme et scalaire. Il est représenté par une base et un ensemble de composants pour cela.

Il existe un vecteur vertical et un vecteur horizontal comme notation.

Vecteur vertical\begin{bmatrix}1 \\ 20\end{bmatrix}
Vecteur horizontal\begin{bmatrix}1 &20\end{bmatrix}

Il est facile de comprendre si le vecteur est capturé dans un plan géométrique.

a= \begin{bmatrix}2 \\ 1\end{bmatrix}\\

b=\begin{bmatrix}1 \\ 3\end{bmatrix}

Puis

a+b = \begin{bmatrix}2+1\\1+3\end{bmatrix} = \begin{bmatrix}3\\4\end{bmatrix}Est
# coding:utf-8
import numpy as np
import matplotlib.pyplot as plt
a = np.array([2, 1])
b = np.array([1, 3])
c = a + b
origin = [0, 0, 0] #origine(0, 0)

d = np.array([a, b, c])
U = d.T[0] #Prenez l'inversion et retirez le composant x
V = d.T[1] #Prenez l'inversion et retirez le composant y
    
plt.quiver(origin, origin, U, V, angles='xy', scale=1, scale_units='xy', color=['r', 'g', 'b'])
plt.xlim([-1, 5])
plt.ylim([-1, 5])

plt.grid()
plt.show()

image.png Cependant, il est plus facile de comprendre si la flèche rouge est déplacée en parallèle avec la flèche verte plutôt que cette façon de penser.

plt.quiver(origin, origin, U, V, angles='xy', scale=1, scale_units='xy', color=['r', 'g', 'b'])

b1=np.array([2,1])
origin1 = [1] #origine(0, 0)
origin2 = [3]

d = np.array([b1])
U = d.T[0] #Prenez l'inversion et retirez le composant x
V = d.T[1] #Prenez l'inversion et retirez le composant y
    
plt.quiver(origin1, origin2, U, V, angles='xy', scale=1, scale_units='xy',color=['r'])

plt.xlim([-1, 5])
plt.ylim([-1, 5])

plt.grid()
plt.show()

image.png

Il est exprimé comme.

queue

Une matrice est un arrangement rectangulaire de nombres, symboles, expressions, etc. verticalement et horizontalement. Les nombres, symboles et expressions disposés horizontalement sont appelés lignes, et ceux disposés verticalement sont appelés colonnes. Par exemple

\begin{bmatrix}1&9&-13\\20&5&-6\end{bmatrix}

Est appelé une matrice de type (2,3) ou de type 2x3 car elle se compose de deux lignes et trois colonnes.

Utilisation pour résoudre des équations simultanées

La matrice a une longue histoire de résolution d'équations simultanées, et le premier exemple au monde se trouve dans le livre chinois "Chapter 9 Arithmetic" (10e siècle avant JC-IIe siècle avant JC).

À titre d'exemple d'équation simultanée de deux variables

\begin{cases}x+2y=5\\2x+3y=8\end{cases}

Et. Dans cette équation, la solution est (x, y) = (1, 2), ce qui satisfait deux équations linéaires en même temps.

Étant donné un système d'équations, si vous comparez le nombre de variables avec le nombre d'équations, la solution est à peu près

Si le nombre de variables est plus grand, les variables peuvent être librement définies par le nombre de (nombre de variables) - (nombre d'équations), et une solution ne peut pas être déterminée.

Si le nombre de variables et le nombre d'équations correspondent, il y a une solution et une est déterminée.

S'il y a plus d'équations, il y a trop de contraintes et il n'y a pas de solution.

Faites cela en utilisant une matrice

\begin{bmatrix}1&2\\2&3&\end{bmatrix}\begin{bmatrix}x\\y\end{bmatrix}=\begin{bmatrix}5\\8\end{bmatrix}

, La solution peut être trouvée.

c'est

\begin{cases}x+2y=5\\2x+3y=8\end{cases}

Tout comme la résolution, vous pouvez supprimer $ y $ dans la formule sur la deuxième ligne. Vous pouvez obtenir $ x $ en divisant la formule de la première ligne par 2 et en multipliant par 3 et en soustrayant de la formule de la deuxième ligne.

\begin{bmatrix}1&2\\2-3/2&0&\end{bmatrix}\begin{bmatrix}x\\y\end{bmatrix}=\begin{bmatrix}5\\8/3-5\cdot3/2\end{bmatrix}
\begin{bmatrix}1&2\\1/2&0&\end{bmatrix}\begin{bmatrix}x\\y\end{bmatrix}=\begin{bmatrix}5\\1/2\end{bmatrix}

Par conséquent, $ x = 1 $, qui est substitué dans la formule sur la première ligne pour obtenir $ y = 2 $.

De même

\begin{bmatrix}1&2\\2&3&\end{bmatrix}\begin{bmatrix}z\\w\end{bmatrix}=\begin{bmatrix}3\\8\end{bmatrix}

La résolution donne $ (x, y) = (2,1) $. Si vous écrivez tout cela ensemble

\begin{bmatrix}1&2\\2&3&\end{bmatrix}\begin{bmatrix}x&z\\y&w\end{bmatrix}=\begin{bmatrix}5&3\\8&8\end{bmatrix}

Peut être écrit.

Formule matricielle

\begin{bmatrix}a&b\\c&d&\end{bmatrix}\begin{bmatrix}x\\y\end{bmatrix}=\begin{bmatrix}e\\f\end{bmatrix}

Pour effacer $ d $, soustrayez la deuxième ligne multipliée par $ b $ de la première ligne multipliée par $ d $

\begin{bmatrix}a&b\\ad-bd &0&\end{bmatrix} \begin{bmatrix}x\\y\end{bmatrix}=\begin{bmatrix}e\\de-bf\end{bmatrix}

Est obtenu. Donc,

x=\frac{de-bf}{ad-bd}

produit intérieur

Le produit interne est également appelé produit scalaire car il s'agit d'une opération binomiale qui détermine un certain nombre (scalaire) pour deux vecteurs. Le produit scalaire est un type d'opération vectorielle qui renvoie une valeur numérique à partir de deux séquences de même longueur.

Par exemple, disons que vous avez acheté une pomme pour 100 yens et l'avez vendue pour 200 yens. Si le volume de la transaction est $ (q_1, q_2) = (-1,1) $ et le prix est $ (p_1, p_2) = (100,200) $, le profit sera

(q_1,q_2)\cdot(p_1,p_2)=q_1p_1+q_2p_2=-1\cdot100+1\cdot 200=100

Sera.

q=np.array([-1,1])
p=np.array([100,200])
np.dot(p,q)

#100

projection

Raccord droit

Ensuite, considérons le cas où il existe de nombreuses expressions.

\begin{bmatrix}1&-2\\1&0&\\1&2\end{bmatrix}\begin{bmatrix}\alpha\\ \beta\end{bmatrix}=\begin{bmatrix}1\\2\\4\end{bmatrix}

C'est un type souvent vu dans les domaines financiers et d'ingénierie. C'est un raccord droit.

Le côté droit est la variable expliquée et le côté gauche est la variable explicative et le coefficient de régression. Souvent, $ Ax = b $ n'a pas de solution. Une raison courante est qu'il y a trop d'expressions. La raison pour laquelle cela ne peut pas être résolu est que la variable expliquée contient du bruit. Si l'erreur est $ e = b-Ax $, l'erreur peut ne pas être nulle. Si $ e = 0 $, la solution peut être trouvée. Lorsque $ e $ est minimisé plutôt que zéro, $ \ hat {x} $ est appelé la solution des moindres carrés. Cette solution est

A^TA\hat{x}=A^Tb

Il est obtenu en résolvant. $ ^ T $ représente une matrice de translocation. $ Ax $ est sur un plan composé de colonnes (1,1,1) et (0,1,2). Trouvez le point le plus proche de $ b $ sur cet avion. Le point le plus proche est la projection $ p $. Il s'agit de la méthode des moindres carrés utilisant la projection.

Lors de l'approximation d'une valeur mesurée à l'aide d'une fonction spécifique telle qu'une fonction linéaire, une fonction quadratique, une fonction triangulaire ou une bicourbe supposée à partir d'un modèle approprié, la fonction supposée doit être une bonne approximation de la valeur mesurée. , Le modèle peut être déterminé pour minimiser la somme des carrés des résidus.

Valeur unique, vecteur unique

En algèbre linéaire, il existe des valeurs propres et des vecteurs propres en tant qu'indices qui représentent les caractéristiques de la transformation linéaire. Il est important pour l'analyse des problèmes dynamiques qui surviennent lorsque nous voulons discuter d'un état stable (état stationnaire).

Ax=\lambda x

$ A $ est une matrice, $ x $ est le vecteur propre et $ \ lambda $ est la valeur propre. En regardant cette équation de base, nous pouvons voir qu'il y a des vecteurs propres sur les côtés droit et gauche. De plus, il y a une valeur unique $ \ lambda $ sur le côté droit. La valeur unique n'est pas toujours une.

\begin{bmatrix}4\\2\end{bmatrix}=2\cdot\begin{bmatrix}2\\1\end{bmatrix}\\
\begin{bmatrix}2\\1\end{bmatrix}=1\cdot\begin{bmatrix}2\\1\end{bmatrix} \\
\begin{bmatrix}-2\\-1\end{bmatrix}=-1\cdot \begin{bmatrix}2\\1\end{bmatrix} 

Alors le vecteur propre est

\begin{bmatrix}2\\1\end{bmatrix} 

Et les valeurs propres sont 2,1, -1 à partir du haut. Exprimé dans un avion

# coding:utf-8
import numpy as np
import matplotlib.pyplot as plt
a = np.array([4, 2])
b = np.array([2, 1])
c = np.array([-2, -1])
origin = [0, 0, 0] #origine(0, 0)

d = np.array([a, b, c])
U = d.T[0] #Prenez l'inversion et retirez le composant x
V = d.T[1] #Prenez l'inversion et retirez le composant y
    
plt.quiver(origin, origin, U, V, angles='xy', scale=1, scale_units='xy', color=['r', 'g', 'b'])
plt.xlim([-3, 5])
plt.ylim([-3, 5])

plt.grid()

image.png

Sera. Par exemple

\begin{bmatrix}0.8&0.3\\0.2&0.7\end{bmatrix}x=\lambda x

Et. Déplacez le côté droit vers le côté gauche

\begin{bmatrix}0.8-\lambda&0.3\\0.2&0.7-\lambda\end{bmatrix}x=0

$ x \ ne 0 $. Donc

\begin{cases}(0.8-\lambda)x_1+0.3x_2=0\\0.2x_1+(0.7-\lambda)x_2=0\end{cases}

Résoudre. Divisez 1 formule par 0,3 et divisez 2 formules par $ 0,7- \ lambda $ et soustrayez-en

\begin{bmatrix}0.8-\lambda&0.3\\0.2/(0.7-\lambda)-(0.8-\lambda)/0.3 &0 \end{bmatrix}x=0

Parce que c'est $ x \ ne 0 $

0.2/(0.7-\lambda)-(0.8-\lambda)/0.3 =0

Par conséquent, $ \ lambda = 1,0,5 $.

Puis $ x_1 = -x_2 $ ou $ 1,5 \ cdot x_1 = 1 \ cdot x_2 $.

c'est Lorsque $ \ lambda = 1 $

x=\begin{bmatrix}0.6\\0.4\end{bmatrix}

Lorsque $ \ lambda = 0,5 $

x=\begin{bmatrix}1\\-1\end{bmatrix}

Sera.

Cela se fait en multipliant plusieurs fois la matrice $ A $ par un vecteur positif $ u_0 $, tel que $ u_1 = Au_0 $, $ u_2 = Au_1 = A ^ 2u_0 . $Au_{\infty}=u_{\infty}$$ devenir. Essayons $ u_0 = [0.9,0.1] ^ T $.

\begin{bmatrix}0.8&0.3\\0.2&0.7\end{bmatrix}\begin{bmatrix}0.9\\0.1\end{bmatrix}=
\begin{bmatrix}0.72+0.03\\0.18+0.07\end{bmatrix}=
\begin{bmatrix}0.75\\0.25\end{bmatrix}
\begin{bmatrix}0.8&0.3\\0.2&0.7\end{bmatrix}\begin{bmatrix}0.75\\0.25\end{bmatrix}=
\begin{bmatrix}0.6+0.075\\0.15+0.175\end{bmatrix}=
\begin{bmatrix}0.675\\0.325\end{bmatrix}
\begin{bmatrix}0.8&0.3\\0.2&0.7\end{bmatrix}\begin{bmatrix}0.675\\0.325\end{bmatrix}=
\begin{bmatrix}0.54+0.0975\\0.135+0.2275\end{bmatrix}=
\begin{bmatrix}0.6375\\0.3625\end{bmatrix}

Petit à petit

x=\begin{bmatrix}0.6\\0.4\end{bmatrix}

S'approche.

Dans l'exemple financier, il est facile d'imaginer que $ u_1 = Au_0 + \ epsilon_1 $ avec $ u $ comme prix.

Recommended Posts

J'ai lu l'algèbre linéaire de Strang
J'ai lu l'article de SHAP
J'ai lu PEP 613 (alias de type explicite)
J'ai lu PEP 612 (Variables de spécification des paramètres)