Från laborationen Beräkningsvetenskap KF En matris/vektor kan vara Informationsteknologi Vektorer, matriser och Gausselimination n n ett matematiskt/fysikaliskt objekt dv a = lim Δt→0 dt Vissa räkneregler definierade, t ex skalärprodukt, matrismultiplikation etc en datastruktur – ett sätt att lagra data. Kallas även array 3 5 7 1D-array 2D-array Institutionen för informationsteknologi | www.it.uu.se Från laborationen Från laborationen n n I Matlab och i beräkningsvetenskap använder vi begreppen både som datastruktur och som matematiskt objekt Matriser kan härröra ur lösning av linjära ekvationssystem Räkneregler för matriser/vektorer inbyggda i Matlab och stämmer överens med matematiken Beteckningar och syntax Matematiskt objekt Informationsteknologi Informationsteknologi n Institutionen för informationsteknologi | www.it.uu.se Addition/subtraktion av vektorer och matriser sker elementvis – förutsätter att storlekar stämmer överens Multiplikation kan ske på olika sätt vT u = ( v1 vn ⎛ v1 ⎞ ⎜ ⎟ vuT = ⎜ ⎟ ⎜ vn ⎟ ⎝ ⎠ (u 1 Institutionen för informationsteknologi | www.it.uu.se vT = v1 vn ( ⎛ a11 a1n ⎜ A=⎜ ⎜ am1 amn ⎝ I Matlab v(i) ger det i:te elementet i vektorn v! v(i) = 3; i:te elementet tilldelas värdet 3 ) ⎞ ⎟ ⎟ ⎟ ⎠ A(i,j) ger elementet på rad i kolonn j i A A(i,j)= 4; tilldelar detta element värdet 4 ⎛ u1 ⎞ Skalärprodukt ⎜ ⎟ ⋅ ⎜ ⎟ = v1u1 + + vn un ⎜ un ⎟ ⎝ ⎠ Yttre produkt ⎛ v1u1 v1un ⎞ ⎜ ⎟ un ⋅ = ⎜ ⎟ ⎜ vn u1 vn un ⎟ ⎝ ⎠ ) ) Från laborationen n Informationsteknologi Informationsteknologi n v1 ⎞ ⎟ v2 ⎟ ⎟ ⎟ vn ⎠ Institutionen för informationsteknologi | www.it.uu.se Från laborationen n ⎛ ⎜ v=⎜ ⎜ ⎜ ⎝ Matrismultiplikation A*B och A*v bygger på skalärprodukter ⎛ ⎜ ⎜ A⋅B = ⎜ ⎜ ⎜⎝ ⎛ ⎜ ⎜ A⋅v = ⎜ ⎜ ⎜⎝ – a1T – ⎞ ⎛ aT ⋅ b aT ⋅ b ⎟ ⎛ | 1 1 1 n | | ⎞ ⎜ – aT2 – ⎟ ⎜ ⎟ ⎟ ⋅ ⎜ b1 b2 bn ⎟ = ⎜ T T ⎟ ⎜⎝ | | ⎟⎠ ⎜⎝ a n ⋅ b1 a n ⋅ bn – aTn – ⎠⎟ ⎛ aT ⋅ v – a1T – ⎞ 1 ⎟ ⎛ | ⎞ ⎜ T T – a2 – ⎟ ⎜ ⎜ a2 ⋅ v ⎟ ⎟ ⋅⎜ v ⎟ = ⎜ ⎟ ⎜⎝ | ⎟⎠ ⎜ ⎜⎝ aTn ⋅ v – aTn – ⎟⎠ ⎞ ⎟ ⎟ ⎟ ⎠ ⎞ ⎟ ⎟ ⎟ ⎟ ⎟⎠ Kommutativa regler gäller ej för matriser:A*B ≠ B*A Institutionen för informationsteknologi | www.it.uu.se 1 Från laborationen n Längden (storleken) av en vektor v beräknas med v (kallas normen av v) 2 2 2 Euklidisk norm v = v1 + v2 + + vn n Finns även andra normer, dvs andra sätt att mäta längd (senare i kursen) n Absolutbeloppet av vektor inte väldefinierat. I Matlab ger det elementvist absolutbelopp n Informationsteknologi Informationsteknologi n Från laborationen Institutionen för informationsteknologi | www.it.uu.se Lösning av ekvationssystem Ax = b ⇒ x = A −1b (jfr skalärer t ex 3x = 2 => x = 3−1 ⋅ 2 ) Institutionen för informationsteknologi | www.it.uu.se n n 1 0 0 ⎞ 0 1 ⎟ ⎟ 0 ⎟ 0 0 1 ⎟⎠ Enhetsmatrisen motsvarar talet 1 hos skalärer, I ⋅ B = B ⋅ I = B För matrisinvers gäller A ⋅ A −1 = A −1 ⋅ A = I Från laborationen n Informationsteknologi Informationsteknologi n Linjära ekvationsystem kan skrivas på matris-vektorform ⎧ 3x1 − x2 + 2x3 = 8 ⎪ − x3 = −1 ⇒ ⎨ x1 ⎪ 4x + 2x − 3x = −4 1 2 3 ⎩⎪ ⎛ ⎞ x ⎛ 3 −1 2 ⎞ ⎛ 8 ⎞ 1 ⎜ 1 0 −1 ⎟ ⎜ x ⎟ = ⎜ −1 ⎟ ⇒ Ax = b ⎜ ⎟⎜ 2 ⎟ ⎜ ⎟ ⎜⎝ 4 2 −3 ⎟⎠ ⎜ x ⎟ ⎜⎝ −4 ⎟⎠ ⎝ 3 ⎠ ⎛ ⎜ I =⎜ ⎜ ⎜⎝ Institutionen för informationsteknologi | www.it.uu.se Från laborationen n Enhetsmatrisen (betecknas ofta I) Tidsåtgång vid lösning av ekvationssystem (datorberoende) Storlek n A-1b \ (Gaussel.) 1000 2000 5000 10000 0.16 0.95 11.3 89.7 0.35 s 2.4 s 31.1 s 245.6 s = 4.1 min s s s s = 1.5 min Slutsats: Beräkning med invers inte effektiv metod – dålig algoritm Vi ska titta på vad som döljer sig bakom \ i nästa moment i kursen Institutionen för informationsteknologi | www.it.uu.se 2