Materi
Kelas Aljabar Linier sudah mengajarkan hasil kali titik, panjang, sudut, dan proyeksi untuk vektor dua dan tiga komponen. Kelas ini memakainya di Rⁿ dengan n berapa pun: u · v = u₁v₁ + … + uₙvₙ dan ‖u‖ = √(u · u). Rumusnya sama, tetapi untuk n > 3 tidak ada gambar yang dapat diandalkan, sehingga yang dipegang adalah sifat aljabarnya. Interactive Linear Algebra §6.1 mencatat sifat-sifat itu: u · v = v · u, (u + v) · w = u · w + v · w, (cu) · v = c(u · v), dan u · u ≥ 0 dengan kesamaan hanya untuk u = 0. Dari sana ‖cu‖ = |c|‖u‖, dan jarak dua vektor adalah ‖u − v‖.
Sifat penjumlahan dan perkalian skalar membuat panjang kombinasi linear dapat dihitung dari hasil kali titik saja: ‖u + v‖² = ‖u‖² + 2u · v + ‖v‖². Bila u · v = 0, suku tengahnya hilang dan tersisa teorema Pythagoras di Rⁿ. Kuttler §4.7 membuktikan ketaksamaan Cauchy–Schwarz, |u · v| ≤ ‖u‖‖v‖, dengan kesamaan tepat ketika salah satu vektor kelipatan yang lain. Akibatnya ada dua: ketaksamaan segitiga ‖u + v‖ ≤ ‖u‖ + ‖v‖, dan jaminan bahwa u · v / (‖u‖‖v‖) selalu berada di antara −1 dan 1, sehingga sudut antara dua vektor tak nol di Rⁿ selalu terdefinisi.
Bentuk kerjanya muncul di mana pun data ditulis sebagai daftar panjang: profil nilai lima mata pelajaran, frekuensi kata dalam dokumen, atau pembacaan sepuluh sensor. Jarak ‖u − v‖ mengukur seberapa berbeda dua profil. np.linalg.norm menghitung norma untuk vektor sepanjang apa pun, dan dengan argumen axis=1 fungsi itu menghitung norma setiap baris matriks sekaligus.
u = (1, −2, 0, 2), v = (3, 1, 4, −1)
u · v = 3 − 2 + 0 − 2 = −1
‖u‖ = √(1 + 4 + 0 + 4) = 3, ‖v‖ = √(9 + 1 + 16 + 1) = √27 ≈ 5,196
Cauchy–Schwarz: |−1| ≤ 3 · 5,196 ≈ 15,59 ✓
‖u + v‖² = ‖u‖² + 2u·v + ‖v‖² = 9 − 2 + 27 = 34
periksa langsung: u + v = (4, −1, 4, 1), 16 + 1 + 16 + 1 = 34 ✓
import numpy as np
P = np.array([[1, -2, 0, 2], [3, 1, 4, -1]])
np.linalg.norm(P, axis=1) # array([3. , 5.19615242])