12.6 Vektorregning i Python
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
Samme indeksstruktur i begge listene.
v[0]
2
v[1]
5
u
[1,3]
Deretter summerer du komponent for komponent.
Les indeks før du summerer.