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?
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.
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.
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.
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 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.
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.
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.
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.
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.
FORELESNINGSPLAN AUGUST Vektorer, Matriser, Lineæradvbildninger. Lage kjernen av lineæralgebrabiblioteket. Bygge geometriske objekter.
FORELESNINGSPLAN AUGUST Vektorer, Matriser, Lineæradvbildninger. Lage kjernen av lineæralgebrabiblioteket. Bygge geometriske objekter.
FORELESNINGSPLAN SEPTEMBER Løsning av ligningssystemer, Indreproduktrom, projeksjoner approksimasjoner.
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.
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.
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();
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);
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.