Hoppa till innehållet
AI-grafen
E· Universitetmatematik· ca 60 min· utvecklande· verifierad 2026-09-20

Egenvärden och egenvektorer

Kunna beräkna egenvärden för små matriser och förklara vad de säger om en avbildning.

Förkunskaper

Intuition

En matris A är en avbildning. För de flesta vektorer ändras både riktning och längd. Men vissa riktningar behåller sin riktning och skalas bara:

Av=λvAv = \lambda v

Då är v en egenvektor och λ dess egenvärde.

För [[2,0],[0,3]] är x-axeln och y-axeln egenriktningar med egenvärdena 2 och 3: avbildningen sträcker x dubbelt och y tre gånger. För en rotationsmatris finns inga reella egenvektorer — allt vrids.

Varför det spelar roll i ML: produkten av många matriser (djupa nät, RNN över tid) domineras av det största egenvärdet. Är det > 1 växer signalen exponentiellt med djupet; är det < 1 dör den ut.

Formellt

Beräkning för 2×2: lös den karakteristiska ekvationen det⁡(A−λI)=0\det(A - \lambda I) = 0.

För A=(4123)A = \begin{pmatrix}4 & 1\\ 2 & 3\end{pmatrix}: (4−λ)(3−λ)−2=λ2−7λ+10=0⇒λ=5, 2(4-\lambda)(3-\lambda) - 2 = \lambda^2 - 7\lambda + 10 = 0 \Rightarrow \lambda = 5,\ 2

Egenvektorn för λ=5\lambda = 5: lös (A−5I)v=0⇒v=(1,1)(A - 5I)v = 0 \Rightarrow v = (1, 1).

Nyttiga samband:

  • ∑iλi=tr(A)\sum_i \lambda_i = \text{tr}(A) (spåret) — snabb kontroll: 5 + 2 = 4 + 3 ✔
  • ∏iλi=det⁡(A)\prod_i \lambda_i = \det(A) — 5 · 2 = 12 − 2 ✔
  • Spektralradien ρ(A)=max⁡∣λi∣\rho(A) = \max|\lambda_i| styr om AnA^n växer eller krymper.

Symmetriska matriser (som kovariansmatriser och Hessianer) har alltid reella egenvärden och ortogonala egenvektorer — spektralsatsen. Det är därför PCA fungerar: egenvektorerna till kovariansmatrisen är ortogonala riktningar sorterade efter varians.

Hessianens egenvärden i en kritisk punkt avgör om det är ett minimum (alla positiva), maximum (alla negativa) eller en sadelpunkt (blandade tecken) — och förhållandet mellan största och minsta egenvärde (konditionstalet) avgör hur illa gradient descent zickzackar.

Kod

import numpy as np

A = np.array([[4.0, 1.0], [2.0, 3.0]])
varden, vektorer = np.linalg.eig(A)
print(varden.round(3))                       # [5. 2.]
print(vektorer.round(3))                     # kolumnerna är egenvektorerna
print(np.trace(A), varden.sum())             # 7.0 7.0   ← kontroll
print(round(np.linalg.det(A), 3), round(varden.prod(), 3))   # 10.0 10.0

# Verifiera definitionen för första egenparet
v = vektorer[:, 0]
print(np.allclose(A @ v, varden[0] * v))     # True

# Spektralradien styr om upprepad tillämpning växer eller dör
for skala in (0.9, 1.0, 1.1):
    M = A * skala / np.abs(varden).max()
    print(skala, round(float(np.abs(np.linalg.eigvals(np.linalg.matrix_power(M, 50))).max()), 6))
# 0.9  0.005154   ← dör ut
# 1.0  1.0
# 1.1  117.39     ← exploderar

Behärskning innebär

  • Beräknar egenvärden för en 2×2-matris
  • Tolkar egenvärden som skalfaktorer i egenriktningar
  • Kopplar spektrum till stabilitet

Logga in för att göra övningarna och bygga upp din behärskning.

Källor

Alla källor och licenser