RF5100 Lineær algebra Leksjon 1 Lars Sydnes, NITH 20.august 2013
I. INFORMASJON
FAGLÆRER Kontakt: Lars Sydnes lars.sydnes@nith.no 93035685 Bakgrunn: Doktorgrad i Matematikk fra NTNU (2012), Siv.ing. Industriell matematikk, NTNU (2007) Geometri Differensialgometri Rotasjonsbevegelse Anvendelser innenfor fysikk / astronomi. Ved NITH: Førsteamanuensis. Algoritmer og datastrukturer Lineær algebra, fysikk Matematikk forkurs / Matematikk R1
HVA ER FAGLÆRER NYSKJERRIG PÅ? Matematikk og algoritmer: Matematikk som beregningskunst. Hvor går grensene for hva som kan behandles matematisk? Geometri: Klassisk geometri og differensialgeometri. Programmering av geometri. Symmetri: En verden uten symmetrier er ubegripelig. Fysikk: Modellering av trelegemeproblemet
GRUNNSPØRSMÅL Et dypt(?) spørsmål: Hvilke data/datastrukturer er velegnede instrumenter når vi skal gjenskape/imitere sanseerfaringer? Praktisk spørsmål: Hvordan representere en uhyre komplisert virkelighet i med en endelig datamengde?
NOEN VERKTØY Punkter i rommet: i rommet. Vi setter opp referanseposisjoner P 0, P 1, P 2,..., P n Posisjonene representeres som dkoordinatvektorer: P i = (x i, y i, z i ) -> Vinkler, Avstander, Areal, Volum, Sammensatte figurer. Komprimering av data: Forenkling av JPEG: Bilde på n m piksler betraktes som vektor med n m komponenter: B = (x 0, x 1,..., x nm 2, x nm 1 ) Byggeklossbilder: B 0, B 1,... B N Approksimasjon: B a 0 B 0 + a 1 B 1 + a N B N B representeres nå ved N + 1 tall a 0, a 1,..., a N. (a 0, a 1,..., a N ). vektor
EKSEMPEL: MODELLERING AV UJEVN LYSKILDE (2D) θ Intensitet = f(θ) Potensielt komplisert. Forenklet modell: Intensistet g(θ) = 1.2 cos θ + 1.0 sin θ 0.34 cos 2θ + 0.21 sin 2θ. De fire tallene (1.2, 1, 0.34, 0.21) spesifiserer g(θ). d Vi arbeider med et firedimensjonalt funksjonsrom. Terminologi: f(x) og g(x) kan betraktes som vektorer. g(x) er en projeksjon av f(x).
PHONGS REFLEKSJONSMODELL Refleksjonsegenskapene til naturlige materialer er uhyre kompliserte [Wikipedia] Med Phongs refleksjonsmodell reduseres refleksjonsegenskapene til tre konstanter i tillegg til Phong-eksponenten: Refleksjon = Ambient + Diffuse + Specular.
II. ARBEIDSMETODER
PAPIR OG BLYANT TAVLE d Hvordan foregår matematisk arbeid? Tavlebruk: Foreleser forteller og forklarer. Forelser utøver matematikk. Derfor: Det er viktig å bruke tavlen! (jfr. live-koding) Papir og blyant: Vi forstår begrepene ved å bruke dem på enkle problemer. Vi forstår algoritmene ved å gjøre dem for hånd. Vi utvikler modeller og algoritmer.
DATA d Lære å bruke eksisterende bibliotek (la4j) Forstå hvordan slike bibliotek fungerer. Skape forståelse ved å utvikle egne bibliotek. Forstå ulike bruksområder. Viktig målsetning: Hver og en av oss skal skrive et velfungerende bibliotek for lineær algebra. d Offisielt rammeverk: Java, la4j 1 (Emnebeskrivelsen: python. Java+la4j bør gi mindre friksjon) 0/ 1 Finnes også her: http:///home.nith.no/~sydlar/rf5100/lib/la4j-0.4.
la4j er et ferdig lineæralgebrabibliotek som vi vil bruke parallelt med det egenutviklede.
LÆREBØKER Dunn & Parberry: (D&P) Game Development. 3D Math Primer for Graphics and Uformell og vennlig introduksjon rettet mot spillprogrammerere. Elementary Linear Algebra with Sup- Anton & Rorres: (A&R) plemental Applications. Matematikkbok. Vi følger ingen av dem slavisk, men refererer til spesifikke kapitler og oppgaver. fruktbar friksjon (?) mellom bøkene og forelesningene.
OPPSUMMERING Arbeidsform: Regneoppgaver < > Programmering Skriftlig. Fokus på det matematiske innholdet, 11.de- Eksamen: sember. Vi mestrer matematikken gjennom oppgaveregning og programmering.
FORELESNINGSPLAN AUGUST Vektorer, Matriser, Lineæradvbildninger. Lage kjernen av lineæralgebrabiblioteket. Bygge geometriske objekter.
FORELESNINGSPLAN SEPTEMBER Løsning av ligningssystemer, Indreproduktrom, projeksjoner approksimasjoner. Lage ligningsløsere, Projeksjoner Andvendelse: Komprimering av data. Anvendelse: Polynominterpolasjon.
FORELESNINGSPLAN OKTOBER 3d-geometri og transformasjoner, Rotasjoner Kvaternioner Interpolasjon. Skrive rutiner for konvertering mellom kvaternioner og matriser. Lage løsninger for transformasjon mellom ulike koordinater. d Anvendelse: Projeksjon av geometriske objekter.
FORELESNINGSPLAN NOVEMBER Lyssetting. Rendering-ligningen, Phongs refleksjonsmodell Rendering og projeksjoner Eventuelle ønsketemaer (Kom med ønsker) Samle tråder. Lage program for spline-interpolasjon? Mer eller mindre åpne prosjekter. d Se Planlegger i it s learning samt http://home.nith.no/ ~sydlar/rf5100/forelesninger
d III. VEKTORER
OPPSUMMERING (POSTHUMT) Vektorer: I planet, rommet, samt generelle vektorer/vektorrom. Essensiell egenskap: Vi kan danne lineærkombinasjoner. D.v.s: Hvis a, b er to vektorer og α, β er to reelle tall, så vil uttrykket αa + βb være en meningsfull definisjon av en vektor. Vektorrom: Det er ikke nødvendigvis meningsfullt å legge sammen vektorer av ulik type, f.eks en 2d-vektor og en 3dvektor. Derfor lar vi vektorene leve i ulike vektorrom. Eksempler: (i) n-dimensjonalt standardrom: Mengden av lister (x 0, x 1,..., x n 1 ) av reelle tall. Operasjoner foregår komponentvis. (ii) Rom av reelle funksjoner: Hvis f(x) og g(x) er to funksjoner og α, β er to reelle tall, så er også αf(x) + βg(x) en funksjon.
OPPSUMMERING (POSTHUMT) Skalarproduktet: Et skalarprodukt i et vektorrom V er en operasjon a, b a b slik at (i) a b er et reelt tall. (ii) a b = b a (iii) (α 1 a 1 + α 2 a 2 ) b = α 1 (a 1 b) + α 2 (a 2 b). (iv) Hvis a b = 0 for alle b V, så er a = 0 (nullvektoren). Norm: Skalarproduktet lar oss definere normen/lengden til en vektor: a = a a Vinkler: Skalarproduktet gir oss også et vinkelbegrep: Vinkelen θ mellom a og b tilfredsstiller cos θ = a b a b. Spesielt: Vinkelen er rett/normal/ortogonal dersom a b = 0.
OPPSUMMERING (POSTHUMT) Standard euklidsk skalarprodukt: Det vanlige skalarproduktet er: [x 0, x 1,..., x n 1 ] [y 0, y 1,..., y n 1 ] = x 0 y 0 + x 1 y 1 + + x n 1 y n 1 Dette er ikke det eneste: Vi kan lage mange custom-made skalarprodukt. Formelen 100x 0 y 0 + 10x 1 y 1 + x 2 y 2 + 1 10 x 3y 3 + gir et lovlig men uvanlig skalarprodukt. Man kan dog tenke seg av vi er ekstremt opptatt av den første komponenten, og da kan dette vise seg å være et nyttig skalarprodukt. Kryssproduktet: Tredimensjonal geometri nyter den velsignelsen det er å ha et kryssprodukt. Dette er unikt for tredimensjonal geometri, så vi bør være ganske fornøyd med at verden er tredimensjonal. Med vanlige koordinater er formelen slik: [x 1, y 1, z 1 ] [x 2, y 2, z 2 ] = [y 1 z 2 z 1 y 2, z 1 x 2 x 1 z 2, y 1 z 2 z 1 y 2 ]
IV. LA4J
V. LAB
LAB public class Vector Addisjon av vektorer. Vector add(vector other) Subtraksjon av vektorer. Vector subtract(vector other) Skalarmultiplikasjon. Vector multiply(double s ) Euklidsk skalarprodukt. double scalarproduct(vector other) Lengde. double length() Dimensjon. int dim(); Undersøk tilsvarende metoder i la4j.
LAB Spesielle operasjoner for 3d-vektorer: double x(),y(),z(), Vector crossproduct(vector other). Spesielle operasjoner for 2d-vektorer: double x(),y(), double determinant(vector other); Arv: Vector3d extends Vector Andre løsninger: if (dim!= 3) throw new UnsupportedOperationException(); (Her slipper vi muligens unna en hel del casting-problematikk?)
REFERANSER - Euklidske vektorrom: A&F 3.1. - Norm, skalarprodukt, distanse: A&F 3.2. - Kryssprodukt: A&F: 3.5. - Generelle vektorrom: A&F 4.1. D&P: kap 1,2.