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 ・ Langue: Python3, Julia1.4
Comme il est décrit en notation Markdown, certaines parties représentent le produit, telles que *. Aussi, concernant les formules, la partie «Buckford» a pour but de souligner la lisibilité des formules, et ne fait pas partie du code.
v = (v₁, v₂) w = (w₁, w₂) Disons le vecteur.
Le produit intérieur est exprimé en *** v ・ w ***. Il est également appelé *** produit scalaire ***.
v ・ w = v₁w₁ + v₂ * w₂
Sera.
A ce moment, si *** v · w = 0, ils sont orthogonaux ***.
La longueur est lorsque les vecteurs des produits internes sont les mêmes => au carré. *** (Produit intérieur v ・ v) = (Longueur au carré) ***
Lorsque v = (1, 2, 3)
│v│² = 1² + 2² + 3² = 14
-> Cela représente *** le carré de la longueur ***
Autrement dit, si ce carré est supprimé, il devient la longueur, donc
│v│ = √14
Sera. Comme une autre façon d'écrire
norm(v) = √14
Écrire. A partir de maintenant, écrivez avec norm ().
À cet égard, il s'agit en fait du [Théorème des trois carrés](https://ja.wikipedia.org/wiki/%E3%83%94%E3%82%BF%E3%82%B4%E3%83%A9 C'est clair par rapport à% E3% 82% B9% E3% 81% AE% E5% AE% 9A% E7% 90% 86).
C'est un vecteur dont la longueur est de 1.
Dans le cas du vecteur v ci-dessus, la longueur est √14, donc pour définir ceci à 1, divisez par √14. Autrement dit, si le vecteur est divisé par la longueur d'origine elle-même, il devient un vecteur unitaire.
Lorsque le vecteur unitaire est u
u = v/norm(v)
A partir de là, u représente un vecteur de longueur 1 dans le même sens que v.
Exprimé en termes concrets, quand v = (1, 2, 3), c'est norm (v) = √14
, donc si vous divisez par cela,
u = (1/√14, 2/√14, 3/√14)
Il se trouve que
Maintenant, écrivons un programme pour calculer le produit interne et un programme pour calculer la longueur.
Python
import numpy as np
import math
v = list()
w = list()
#Entrée d'élément d'un vecteur avec trois éléments
for i in range(3):
vvec = int(input())
v.append(vvec)
for i in range(3):
wvec = int(input())
w.append(wvec)
#Conversion du contenu du tableau
v = np.array(v)
w = np.array(w)
#Calcul du produit intérieur
print(np.dot(v, w))
#Calcul de la longueur
normv = math.sqrt(np.dot(v, v))
print(normv)
#Parce que √ est utilisé lors du calcul
print("√",np.dot(v, v))
Julia est plus difficile que python, alors faites-en un code simple.
v = [1 2 3]
w = [3; 2; 1]
#Calcul du produit intérieur
v*w
#Longueur au carré
normv2 = sum(v.^ 2)
#longueur
sqrt(normv2)
En ce qui concerne le code de Julia, je suis obligé de l'apporter avec moi dans le calcul interne du produit, donc j'aimerais soulever un code un peu plus efficace plus tard.
La norme devrait être faite à l'origine, mais elle est omise car ce n'est qu'un aperçu.
Recommended Posts