Hoppa till innehållet
AI-grafen
D· AI-utvecklarematematik· ca 45 min· grundläggande — ändras sällan· verifierad 2026-09-20

Trigonometri — grunderna

Kunna använda sinus och cosinus och förstå periodiska funktioner — bakgrunden till sinusbaserad positionskodning.

Öva i Mattegrafen ↗ · Matematik 4

Förkunskaper

Intuition

Tänk på en punkt som går runt en cirkel med radien 1.

  • cos(v) är punktens x-koordinat.
  • sin(v) är dess y-koordinat.

Det är hela definitionen. Allt annat följer av den.

Eftersom punkten kommer tillbaka till samma ställe varje varv blir båda funktionerna periodiska: de upprepar sig med perioden ett varv, alltså 2π2\pi radianer (360°).

Och eftersom x² + y² = 1 för varje punkt på enhetscirkeln får man gratis:

sin⁡2v+cos⁡2v=1\sin^2 v + \cos^2 v = 1

Det är Pythagoras sats, sedd från cirkeln.

Varför det spelar roll för AI: varje periodiskt förlopp — ljudvågor, årstider, dygnsrytm — beskrivs med sinusfunktioner. Fouriertransformen delar upp en signal i just sådana. Och transformerns positionskodning använder sinus och cosinus med olika frekvenser för att ge varje position i en sekvens ett unikt mönster.

Formellt

Radianer. Ett varv är 2π2\pi radianer. Vinkeln mäts som båglängden på enhetscirkeln, vilket gör derivatorna rena: ddvsin⁡v=cos⁡v\frac{d}{dv}\sin v = \cos v. Med grader hade det kommit en faktor π/180\pi/180 överallt.

Värden att kunna utan att räkna:

vv0π/6\pi/6π/4\pi/4π/3\pi/3π/2\pi/2π\pi
sin⁡v\sin v01/222\tfrac{\sqrt2}{2}32\tfrac{\sqrt3}{2}10
cos⁡v\cos v132\tfrac{\sqrt3}{2}22\tfrac{\sqrt2}{2}1/20−1

Den allmänna sinusfunktionen:

y(t)=Asin⁡(2πft+φ)y(t) = A \sin(2\pi f t + \varphi)

ParameterBetyderI ljud
AAamplitudvolym
fffrekvens i hertztonhöjd
φ\varphifasförskjutningvar i vågen den startar
1/f1/fperiod i sekundervåglängdens varaktighet

Kopplingen till Fourier: varje periodisk signal kan skrivas som en summa av sinusfunktioner med olika frekvens, amplitud och fas. Fouriertransformen räknar ut vilka. Det är därför trigonometrin är förkunskapen till spektrogram.

Kopplingen till positionskodning: transformern behöver veta var i sekvensen varje token står. Ett sätt är att ge position pp en vektor där komponent 2i2i är sin⁡(p/100002i/d)\sin(p / 10000^{2i/d}) och komponent 2i+12i+1 är cos⁡(⋅)\cos(\cdot). Låga ii ger snabba svängningar (skiljer grannar åt), höga ii ger långsamma (skiljer avlägsna positioner åt) — som siffrorna i ett binärt tal, fast kontinuerligt.

Kod

import numpy as np

# Enhetscirkeln: cos är x, sin är y
for grader in (0, 30, 45, 60, 90, 180):
    v = np.deg2rad(grader)
    print(f"{grader:3d}°  cos={np.cos(v): .3f}  sin={np.sin(v): .3f}  "
          f"sin²+cos²={np.sin(v)**2 + np.cos(v)**2:.1f}")
#   0°  cos= 1.000  sin= 0.000  sin²+cos²=1.0
#  30°  cos= 0.866  sin= 0.500  sin²+cos²=1.0
#  90°  cos= 0.000  sin= 1.000  sin²+cos²=1.0

# En ton: A · sin(2π f t)
fs, f, A = 16000, 440.0, 0.5
t = np.arange(fs) / fs
ton = A * np.sin(2 * np.pi * f * t)
print(round(float(ton.max()), 2), int(round(1 / (f / fs) )))   # 0.5  36 sampel per period

# Summa av sinusar — samma idé som Fourier, baklänges
fyrkant = sum(np.sin(2 * np.pi * (2 * k + 1) * f * t) / (2 * k + 1) for k in range(20))
print(round(float(np.abs(fyrkant).max()), 2))   # närmar sig en fyrkantvåg

# Sinusbaserad positionskodning
def poskod(T, d):
    p = np.arange(T)[:, None]
    i = np.arange(0, d, 2)[None, :]
    vinkel = p / (10000 ** (i / d))
    pe = np.zeros((T, d))
    pe[:, 0::2], pe[:, 1::2] = np.sin(vinkel), np.cos(vinkel)
    return pe

pe = poskod(50, 16)
print(round(float(pe[0] @ pe[1]), 2), round(float(pe[0] @ pe[40]), 2))   # 7.71  1.9

Sista raden visar poängen: närliggande positioner får lika vektorer, avlägsna får olika — helt utan att någon lärt sig något.

Behärskning innebär

  • Använder sinus och cosinus i enhetscirkeln
  • Läser av amplitud, frekvens och fasförskjutning
  • Kopplar periodicitet till Fourier och positionskodning

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

Källor

Alla källor och licenser