12.6 Vektorregning i Python

Til kapittel 12

Intro

Python er et kraftig verktøy for matematiske beregninger, og vektorregning er intet unntak. Vektorer kan representeres som lister eller ved hjelp av NumPy-biblioteket. Å implementere vektoroperasjoner i kode forsterker forståelsen av de matematiske prinsippene og åpner for beregninger på store datasett. Programmering og vektormatematikk er uatskillelig i moderne datavitenskap, maskinlæring og spillutvikling.

Regel

  • Vektor som liste i Python: v = [x, y] eller v = [x, y, z]
  • Manuell komponentvis addisjon: [v[0]+u[0], v[1]+u[1]] – legg til hvert element separat
  • Skalarmultiplikasjon manuelt: [k·v[0], k·v[1]] – gang hvert element
  • Med NumPy: import numpy as np; v = np.array([x, y]) – da kan du bruke + og · direkte
  • Lengde med NumPy: np.linalg.norm(v) beregner |v|
  • NB: vanlig listeaddisjon [1,2] + [3,4] gir [1,2,3,4] (sammenslåing), ikke [4,6] – bruk NumPy

Eksempel

[1,2]+[3,4]

  • Vi vil beregne (1, 2) + (3, 4) komponentvis i Python
  • Definerer vektorene som lister: v = [1, 2] og u = [3, 4]
  • Manuell komponentvis addisjon: [v[0]+u[0], v[1]+u[1]] = [1+3, 2+4]
  • Resultatet er [4, 6]
  • Svar: Med NumPy skriver vi np.array(v) + np.array(u) og får array([4, 6]) direkte

Svar: [4,6]

Forstå

I Python er standardlister ikke designet for vektorregning – å skrive [1, 2] + [3, 4] gir [1, 2, 3, 4] (sammenslåing), ikke [4, 6] (vektoraddisjon). Derfor anbefales NumPy-biblioteket: np.array([1, 2]) + np.array([3, 4]) gir korrekt np.array([4, 6]). NumPy er industristandarden for numeriske beregninger i Python og er svært effektivt for store vektorer og matriser.

Vanlig feil

Den vanligste feilen er å bruke vanlig Python-listeaddisjon (v + u) og forvente vektoraddisjon – dette gir i stedet sammenslåing av listene. Husk å bruke NumPy-arrays for ekte vektoroperasjoner. En annen feil er å glemme å importere NumPy: skriv alltid import numpy as np øverst i koden din.

Øv selv

Lett: Hva blir komponentvis sum av [1,2] og [3,4]?

Minioppsummering

  • Python-lister kan brukes til vektorer, men + gir sammenslåing, ikke vektoraddisjon
  • Bruk NumPy: np.array([x, y]) + np.array([a, b]) = np.array([x+a, y+b])
  • Lengde beregnes med np.linalg.norm(v)
  • NumPy er industristandarden for numeriske vektorberegninger i Python
v=[2,5] u=[1,3]

Samme indeksstruktur i begge listene.

v[0]

2

v[1]

5

u

[1,3]

Deretter summerer du komponent for komponent.

0→x, 1→y
Resultat = klar til +

Les indeks før du summerer.

Regel
2D-vektor som liste: indeks 0 og 1 er komponentene.
Kjerneidé
Posisjon i lista svarer til x og y før videre regning.
Vanlig feil
Bytte om på indeks 0 og 1 når du leser av lista.