TANA09 Föreläsning 5 Linjära ekvationssystem • Matrisnormer. • Konditionstalet. Felanalys. Linjära minstakvadratproblem • Överbestämda ekvationssystem. Normalekvationerna. • Ortogonala matriser. QR faktorisering. • Exempel: Anpassning av cirkel till givna punkter. 19 november 2014 Sida 1 / 20 Matrisnormer Definition Låt k · k vara en vektor norm. Motsvarande matris norm ges av, kAxk . kAk = sup x6=0 kxk Egenskaper kAk ≥ 0, kAk = 0 endast då A = 0, kαAk = |α|kAk, och kA + Bk ≤ kAk + kBk. Lemma Låt A och B vara matriser. Då gäller kABk ≤ kAkkBk. Tolkning Matrisnormen ger ett mått på hur mycket den linjära operatorn A kan förlänga en vektor. Hur skall kAk beräknas? 19 november 2014 Sida 2 / 20 Lemma För maximum normen gäller att n X |aij|). kAk∞ = max ( 1≤i≤n j=1 Det är alltså lätt att beräkna kAk∞. Liknande resultat finns för kAk1. Lemma För den Euklidiska normen gäller att 1 2 T kAk2 = max λi(A A) . 1≤i≤n Kräver mycket arbete att beräkna kAk2. Enklare definition senare via Singulärvärdesfaktoriseringen. 19 november 2014 Sida 3 / 20 Störningsteori för Linjära ekvationssystem Lemma Antag att vi vill lösa Ax = b och bara har ett högerled bδ = b + δb tillgängligt. Det därav orsakade felet i lösningen kan uppskattas, kδxk kδbk −1 ≤ kAkkA k . kxk kbk Definition Matrisens Konditionstal är κ(A) = kAkkA−1k. Konditionstalet är ett mått på hur känsligt ett ekvationssystem är med avseende på störningar i högerledet. Se boken för störningar i matriselementen. 19 november 2014 Sida 4 / 20 Exempel Låt 6 4 −2 1 A = 2 1 0 , b̄ = A = 2 . −1 3 1 0 Bestäm en övre gräns för felet i x mätt i k · k∞ då b1 = 6 ± 0.05, b2 = 2 ± 0.03, och b3 anses exakt. Svårt att beräkna κ(A) eftersom A−1 krävs. Kan dock uppskattas effektivt om faktoriseringen PA = LU är känd (med exempelvis condest() i MATLAB). Många problem är illa-konditionerade, dvs κ(A) ≈ 1010 − 1015. Då används helt andra metoder. 19 november 2014 Sida 5 / 20 Minsta Kvadratproblemet Exempel Vi vet att en fysikalisk storhet ges av y = Ax1 + Bx2, där A och B är konstanter vi vill bestämma och x1 och x2 är parametrar vi enkelt kan variera. Hur skall vi bestämma A och B? Lösning Genomför experiment och mät y för olika värden på (x1, x2). x1 3.0 2.7 1.8 4.2 x2 1.60 1.35 0.70 1.20 y 12.6 11.2 6.3 13.2 =⇒ 3.0 2.7 1.8 4.2 12.6 1.60 11.2 1.35 A = 6.3 0.70 B 13.2 1.20 Nöjer vi oss med två mätningar får vi ett linjärt ekvationssystem. Fler mätningar bör gå att utnyttja för att få ett bättre resultat. 19 november 2014 Sida 6 / 20 Definition Låt A ∈ Rm×n m > n. Ekvationssystemet Ax = b är då överbestämt. Fler ekvationer än obekanta gör att det oftast inte finns en lösning. Istället minimerar vi residualen och löser minn kAx − bk. x∈R Fallet k · k2 är trevligt eftersom det är enkelt att lösa. Kallas Minsta kvadratproblemet. I statistiken kallas det Linjär Regression. För minimering i k · k∞ eller k · k1 se kurser i Optimeringslära. 19 november 2014 Sida 7 / 20 b r = b − Ax Ax span(A) Definiton Låt Ax = b vara ett överbestämt ekvationssystem. Den vektor x som minimerar kAx − bk2 kallas minsta kvadrat lösningen. Sats Minsta kvadrat lösningen x satisfierar normalekvationerna AT Ax = AT b. Om kolumnerna i A är linjärt oberoende så är AT A icke-singulär. 19 november 2014 Sida 8 / 20 Exemplet Med A och b som tidigare fås 37.17 14.75 T A A= , 14.75 6.31 AT b = 134.82 55.53 . Lös AT Ax = AT b ger minsta kvadrat lösningen x = ( 1.873 , 4.420 )T . Hade valt x = ( 2 , 4 )T och b med ett slumpmässigt fel. Feluppskattningen för linjära ekvationssystem ger en felgräns för x = ( A , B )T . Denna är dock inte särskilt relevant. 19 november 2014 Sida 9 / 20 Modell Passning Exempel Vi will anpassa ett polynom p(t) = c0 + c1t + c2t2 till en uppsättning mätningar (ti, yi), 1 ≤ i ≤ m. 3.5 3 2.5 2 1.5 1 0.5 0 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 Formulera detta som ett överbestämt ekvationssystem och lös med minsta kvadratmetoden. 19 november 2014 Sida 10 / 20 Antag att data (ti, xi) lagrats som två vektorer t och x. Då fås >> A=[ t.^0 t.^1 t.^2]; b=y; c=(A’*A)\(A’*b); >> tt=0:0.1:2;yy=c(1)+c(2)*tt+c(3)*tt.^2; >> plot(t,y,’x’,tt,yy); 3.5 3 2.5 2 1.5 1 0.5 0 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 19 november 2014 Sida 11 / 20 QR faktoriseringen Definition En matris Q är ortogonal om QT Q = I, där I är identitetsmatrisen. Sats Låt A ∈ Rm×n, m > n. Då kan vi faktorisera A som R A=Q , 0 där Q ∈ Rm×m är ortogonal och R ∈ Rn×n är övertriangulär. Egenskaper Om A har linjärt oberoende kolumner blir R icke-singulär. Matrisen Q = (q1, q2, . . . , qm) ger en ortogonal bas för Rm. Hur kan vi utnyttja detta för att lösa minsta kvadratproblem? 19 november 2014 Sida 12 / 20 Minsta Kvadratproblem och QR faktorisering Lemma Antag att Q är ortogonal och x är en vektor. Då gäller kQxk2 = kxk2. Sats Antag att A = QR, Q = (Q1, Q2), där A har linjärt oberoende kolumner. Då gäller att det x som minimerar kAx − bk2 ges av T 2 Q b R 2 1 . kAx − bk2 = x − 0 QT2 b 2 Lösningen blir alltså x = R−1QT1 b och residualen krk2 = kQT2 bk2. Vi behöver bara den reducerade QR faktoriseringen A = Q1R. 19 november 2014 Sida 13 / 20 In MATLAB >> [Q,R]=qr(A,0); >> x=R\(Q’*b); Lemma Antag att A = Q1R, där Q1 ∈ Rm×n och R ∈ Rn×n, är den reducerade QR faktoriseringen. Då gäller att range(A) = span(Q1) Vi har en ortogonalbas för bildrummet till matrisen A. Minsta kvadratproblemet löses genom att högerledet b projiceras på bildrummet range(A). Det gäller att κ2(AT A) = κ2(R)2. Bättre numerisk lösning då A = QR används. 19 november 2014 Sida 14 / 20 Cirkel Anpassning Exempel Punkter (x, y)T som ligger på en cirkel uppfyller F(u) = a(x2 + y2) + b1x + b2y + 1 = 0, där u = (a, b1, b2)T är okända parametrar. Cirkelns centrum och radie ges av b1 b2 T T z = (x0, y0) = −( , ) , 2a 2a och 2 + b2 b 1 2 1 2 − . r = 2 a 4a Antag nu att vi får två vektorer x och y med m = 13 punkter på cirkeln. Hur skall vi uppskatta cirkelns centrum och radie? 19 november 2014 Sida 15 / 20 7 6 5 4 3 2 1 0 −1 0 1 2 3 4 5 6 7 Punkterna finns lagrade i vektorer x och y. I MATLAB skriver vi >> >> >> >> >> A=[x.^2+y.^2 x y]; b=-ones(size(x)); [Q,R]= qr( A ,0) ); u=R\(Q’*b); z=-u(2:3)/2/u(1) r=sqrt( (u(2)^2+u(3)^2)/4/u(1)^2-1/u(1)) 19 november 2014 Sida 16 / 20 7 6 5 4 3 2 1 0 −2 −1 0 1 2 3 4 5 6 Resultatet blir z ≈ (1.9400, 3.8533)T och r ≈ 1.9195. Den exakta cirkeln är z = (1.2, 3.4)T är r = 2.7. Vi behöver mer data (xk , yk )T för att förbättra anpassningen. Konditionstalet är κ2(R) = 1274.4. 19 november 2014 Sida 17 / 20 7 6 5 4 3 2 1 0 −2 −1 0 1 2 3 4 5 6 Nu har vi m = 25 punkter som täcker en större del av cirkeln. Konditionstalet blir κ2(R) = 722.7. Cirkelapproximationen blir z ≈ (1.6248, 3.8785)T och r ≈ 2.1726. 19 november 2014 Sida 18 / 20 7 6 5 4 3 2 1 0 −3 −2 −1 0 1 2 3 4 5 Nu har vi m = 13 punkter som är bättre utspridda över cirkeln. Konditionstalet blir κ2(R) = 403.5. Cirkelapproximationen blir z ≈ (1.2707, 3.5083)T och r ≈ 2.5980. Punkterna (xk , yk )T tätt packade ger att alla ekvationer blir ungefär likadana. Viktiga att observationerna är utspridda! 19 november 2014 Sida 19 / 20 Sammanfattning • Konditionstalet κ2(A) avgör hur känsligt ett linjärt system Ax = b är för störningar i högerledet b eller matrisen A. • Minsta Kvadrat Problemet innebär att kAx − bk2 minimeras. • Lösningen ges av normal ekvationerna AT Ax = AT b. Används främst för teoretiska resonemang. • Faktoriseringen A = QR ger en ortogonalbas för värderummet range(A). Standard metod för minsta kvadrat problem. • Bra kod för beräkning av QR faktoriseringen finns. 19 november 2014 Sida 20 / 20