TANA09 Föreläsning 4 Icke-Linjära Ekvationer • Tillämpning: Bildinterpolation. Linjära Ekvationssystem • Triangulära Ekvationssystem. Operationsräkning. • Matris formulering av Gauss-Elimination. LU faktorisering. Pivotering. • Vektor och Matris Normer. Konditionstalet. Feluppskattning. 17 november 2014 Sida 1 / 29 Interpolation i Bilder Antag att vi har en bild I där störande objekt råkat komma med. Kan vi lösa problemet? Den del av bilden vi vill dölja är markerad. Detta är ett interpolations problem. Uppskatta lämpliga färgvärden att ersätta de pixlar vi vill ta bort. 17 november 2014 Sida 2 / 29 Begrepp och Definitioner Definition En bild I ∈ Rn×m är en matris där varje pixel Iij har ett värde som representerar en färg. Definition Interpolations masken M ∈ Rn×m har element Mij = 1 om motsvarande pixel skall ersättas med ett nytt interpolerat värde och Mij = 0 annars. Vi vill ersätta de pixlar där Mij = 1 med nya värden. Färgbilder behandlas som tre separata bilder. 17 november 2014 Sida 3 / 29 Harmonisk Interpolation ∆IH = 0 Ω IH = Ix Definition Antag att I(x, y) är definierad på område i R2 och okänd i delområdet Ω. Harmonisk interpolation innebär att man beräknar IH (x, y) som lösningen till ∆IH = 0, i Ω, IH (x, y) = I(x, y), på ∂Ω. 17 november 2014 Sida 4 / 29 Implementation av Harmonisk Interpolation Metod Vi beräknar bilden IH genom att lösa ett linjärt ekvationssystem Ax = b. Om pixel (i, j) är okänd får vi en ekvation IH (i+1, j) + IH (i−1, j) + IH (i, j+1) + IH (i, j−1) − 4IH (i, j) = 0, och om pixel (i, j) är känd fås IH (i, j) = I(i, j). I Matlab >> Ih=HarmonicInpaint( I , Mask ); >> imshow( Ih ); 17 november 2014 Sida 5 / 29 Resultatet efter Harmonisk interpolation och orginal bilden. Med linjär differential operator ∆I = 0 får vi alltid jämna bilder utan skarpa kanter! Måste byta till icke-linjära operatorer. 17 november 2014 Sida 6 / 29 TV-Interpolation Definition Antag att I(x, y) är definierad på område i R2 och okänd i delområdet Ω. Interpolation enligt Total Variations principen utförs genom att man löser ( i Ω, −∇ · |∇I1 | ∇ITV = 0, TV ITV (x, y) = I(x, y), på ∂Ω. Nu är problemet icke-linjärt. Hur skall vi angripa problemet? 17 november 2014 Sida 7 / 29 Implementation av TV Interpolation Algoritm Välj en start gissning I (0). for k = 1, 2, . . . (k−1) • Beräkna G(i, j) = |∇ITV (i, j)|−1 med finita differenser. (k) • Formulera ∇ · (G∇ITV ) = 0 som ett linjärt ekvations system och lös det. end (k) (k−1) OBS Detta är en fixpunkts iteration ITV = ϕ(ITV med fixpunktsteori. ). Konvergens kan bevisas Kärnan i algoritmen är lösning av linjära ekvationssystem. 17 november 2014 Sida 8 / 29 Resultat från Interpolation enligt Total Variations principen. Lite skarpare detaljer inne i området. Finns många liknande tillämpningar: Exempel digital zoom för att öka upplösningen på en bild. Bildkompression. Lösning av linjära ekvationssystem är ett av de viktigaste problemen att kunna lösa på dator. 17 november 2014 Sida 9 / 29 Linjära Ekvationssystem Vi vill lösa en matrisekvation Ax = b där a11 A = .. an1 . . . a1n . . . .. , . . . ann x1 x = ... xn b1 b = .... bn • Linjära ekvationssystem uppkommer vid diskretisering av partiella differential ekvationer. • Antalet obekanta ofta mycket stort n = 105 − 108. Viktigt att kunna lösa linjära ekvationssystem effektivt och noggrannt. 17 november 2014 Sida 10 / 29 Existens och Entydighet Definition Om matrisen A har linjärt oberoende kolumner kallas matrisen A icke-singulär. Lemma Om matrisen A är icke-singulär så har Ax = b en entydig lösning och A−1 existerar. Hur skall vi kontrollera detta? 17 november 2014 Sida 11 / 29 Lemma Om det(A) 6= 0 så är A icke-singulär och A−1 existerar. Exempel Med fås det(A) = 10−9 ≈ 0. 10−3 0 0 A = 0 10−3 0 , 0 0 10−3 Att det(A) är liten säger inget om hur nära singulär en matris är. 17 november 2014 Sida 12 / 29 Gausselimination Lös Ax = b, 1 2 2 3 4 4 2x = 6 4 6 4 10 Metod Reducera A till övertriangulär form med radoperationer och partiell pivoting. Enligt strategin partiell pivotering skall vi byta rad 1 och rad 2. 1 2 2 3 4 4 2 6 4 4 2 6 ∼ 1 2 2 3 4 6 4 10 4 6 4 10 17 november 2014 Sida 13 / 29 Använd multiplikatorer m21 = 0.25 och m31 = 1 för att eliminera a21 och a31. Pivotera sedan och byt raderna 2 och 3. 4 4 2 6 4 4 2 6 0 1 1.5 1.5 ∼ 0 2 2 4 0 2 2 4 0 1 1.5 1.5 Slutligen använd multiplikator m32 = 0.5 för att eliminera a32. Triangulära ekvationssystemet löser vi med bakåtsubstitution. 4 4 2 −1 6 0 2 2 4 =⇒ x = 3 −1 0 0 0.5 −0.5 Vi behöver kunna överföra allmäna system på triangulär form och dessutom lösa triangulära system! 17 november 2014 Sida 14 / 29 Triangulära Ekvationssystem Definition En matris L är vänster triangulär om ℓij = 0 om i < j. Algoritm Systemet Lx = b löses med framåtsubstitution: i−1 X i = 1, 2, . . . , n. ℓijxj /ℓii, xi = bi − j=1 Algoritmen fungerar om diagonal elementen ℓii 6= 0. Då är L icke-singulär. Högertriangulära system löses analogt med Bakåt substitution. Hur mycket arbete krävs? 17 november 2014 Sida 15 / 29 Överföring på Triangulär Form Algoritm Skapa nollor under diagonal elementetet ajj genom följande steg: 1. Pivotera så att |ajj| ≥ |aij|, i = j + 1, . . . , n. 2. Beräkna multiplikatorer mij = aij/ajj, i = j + 1, . . . , n. 3. Uppdatera aik := aik − mijajk , i, k = j + 1, . . . , n. och bi := bi − mijbj, i = j + 1, . . . , n. Sats För att överföra ett linjärt ekvationssystem på triangulär form krävs 23 n3 flyttalsoperationer. Algoritmen lyckas om alla diagonal element ajj 6= 0 under beräkningarna. Då är A icke-singulär och ekvationssystemet lösbart. 17 november 2014 Sida 16 / 29 Pivotering Definition Med partiell pivotering menas att det till beloppet största elementet i varje kolumn skall vara pivot element. Detta gör att alla multiplikatiorer uppfyller |mij| ≤ 1. Problem med kancellation under räkningarna minimeras. Varför måste vi pivotera? Exempel Lös Ax = b där −5 10 2 , A= 1 4 Räkna i talsystemet (10, 3, −9, 9). och 2 b= . 3 17 november 2014 Sida 17 / 29 Vi utgår ifrån Utan pivotering fås 10−5 2 2 1 4 3 m21 = fl[1/10−5] = 105, och a′22 = fl[4 − 105 · 2] = fl[−1.99996 · 105] = −2.000 · 105. Det triangulära ekvationssystemet blir alltså −5 2 10 2 0 −2 · 105 −2 · 105 Bakåt-substitution ger nu x = (0 1)T . 17 november 2014 Sida 18 / 29 Utgå återigen ifrån systemet Ax = b men pivotera först −5 1 4 3 10 2 2 ∼ 1 4 3 10−5 2 2 Efter pivotering fås istället m21 = fl[10−5/1] = 10−5, och a′22 = fl[2 − 10−5 · 4] = fl[1.99996] = 2.000. Det triangulära ekvationssystemet blir nu 1 4 3 0 2 2 med lösning x = (−1 1)T . Exakt lösning är x = (−1.0000200 . . . 1.00000500 . . . )T . 17 november 2014 Sida 19 / 29 Matrisformulering av Gausselimination För att kunna ge en matrisbeskrivning av Gausselimination behövs matriser som ger radoperationer och pivotering. • Gauss–transformations matris 1 0 0 x1 x1 M x2 = x2 − m21x1 =⇒ M = −m21 1 0 . −m31 0 1 x3 − m31x1 x3 • Permutations matris x1 x1 1 0 0 P23 x2 = x3 =⇒ P23 = 0 0 1 . x3 x2 0 1 0 Både P−1 och M −1 existerar. Hur ser M −1 ut? 17 november 2014 Sida 20 / 29 Upprepa stegen för att reducera A till triangulärform med Gausstransformationer och Permutationspatriser. Byt rad 1 och rad 2 4 4 2 1 2 2 0 1 0 P12A = 1 0 0 4 4 2 = 1 2 2 4 6 4 4 6 4 0 0 1 Använd en Gausstransformation M1 för att eliminera a21 och a31. 1 0 0 4 4 2 4 4 2 M1(P12A) = −0.25 1 0 1 2 2 = 0 1 1.5 −1 0 1 0 2 2 4 6 4 17 november 2014 Sida 21 / 29 Fortsätt och byt rad 2 och rad 3 4 4 2 1 0 0 4 4 2 P23(M1P12A) = 0 0 1 0 1 1.5 = 0 2 2 0 1 1.5 0 1 0 0 2 2 Slutligen använd en Gausstransformation M2 för att eliminera a32 4 4 2 1 0 0 4 4 2 M2(P23M1P12A) = 0 1 0 0 2 2 = 0 2 2 = U 0 0 0.5 0 −0.5 1 0 1 1.5 Vi har nu M2P23M1P12A = R or P12A = M1−1PT23M2−1U. 17 november 2014 Sida 22 / 29 Multiplicera bägge sidor med P23 så får vi P23P12A = P23M1−1PT23M2−1U, eller PA = LU, där 0 1 0 P = P23P12 = 0 0 1 , 1 0 0 1 0 0 1 0, L = P23M1−1PT23M2−1 = 1 0.25 −0.5 1 4 4 2 U = 0 2 2 . 0 0 0.5 Detta kallas LU faktoriseringen av A. 17 november 2014 Sida 23 / 29 LU Faktoriseringen Sats Varje icke-singulär matris A kan faktoriseras PA = LU där P är en permutationsmatris och L och U är triangulära, icke-singulära, och |L| ≤ 1. Egenskaper • Kräver 2n3/3 flyttalsoperationer att beräkna. • Kan användas för att lösa Ax = b: Ax = b ⇐⇒ LUx = Pb ⇐⇒ Ly = Pb and, Ux = y • Det effektivaste sättet att kontrollera om A är icke-singulär. • Om A är symmetrisk gäller A = U T U (Cholesky faktorisering). Effektiv programvara för att beräkna LU faktoriseringen finns. 17 november 2014 Sida 24 / 29 Exempel Låt 5 1 A= 1 1 1 1 5 1 1 1 1 1 5 1 1 1 1 1 5 1 1 1 1 1 5 2 −1 och B = 0 0 0 −1 2 −1 0 0 0 1 2 −1 0 0 0 −1 2 −1 0 0 0 1 2 Antag att vi vill lösa systemet Ax = e−y, By = x2. Hur skall vi göra? Liknande system uppkommer exempelvis då två vätskor reagerar med varandra. Koncentrationen av vätska 1 på plats k i ett kärl är xk . 17 november 2014 Sida 25 / 29 Använd fixpunkts iteration. I varje steg löser vi ekvationsystem. Beräkna LU faktoriseringen i förväg. Matlab x=zeros(n,1);y=x; [La,Ua,Pa]=lu(A);[Lb,Ub,Pb]=lu(B); for k=1:10000, x=Ua\(La\(Pa*exp(-y))); y2=Ub\(Lb\(Pb*x.^2)); if max(abs(y-y2))<0.5e-8,break,end y=y2; end; Efter k = 8 fås y = ( 0.0285 , 0.0451 , 0.0505 , 0.0451 , 0.0285 )T . Två LU faktoriseringar och 16 triangulära ekvationssystem. 17 november 2014 Sida 26 / 29 Vektor och Matris normer Innan vi härldeder en feluppskattning för ekvationssystem Ax = b behöver vi ett sätt att mäta storleken på vektorer och matriser. Definition Låt x och y vara två vektorer i Rn. En vektor norm är en funktion som uppfyller 1. kxk ≥ 0, för alla vektorer x. 2. kxk = 0, om och endast om x = 0. 3. kαxk = |α|kxk för alla skalärer α. 4. kx + yk ≤ kxk + kyk. Skillnaden mellan två vektorer x och y mäts med kx − yk. 17 november 2014 Sida 27 / 29 Exempel De vanligaste normerna är • 1-norm kxk1 = n X i=1 |xi|. • Euklisisk norm kxk2 = n X i=1 1 2 |xi|2 . • Maximum norm kxk∞ = max |xi|. 1≤i≤n Lemma Det gäller att kxk∞ ≤ kxk2 ≤ kxk1. I MATLAB finns funktionen norm. Skriv exempelvis norm(x,inf). 17 november 2014 Sida 28 / 29 Absolut och Relativt Fel Definition Det absoluta felet i vektorn x̄ betecknas kδxk = kx̄ − xk. Det relativa felet ges av kδxk kx̄ − xk = . kxk kxk √ Exempel Låt x = ( 3 , 1)T och x̄ = (1.73 , 1)T . Vad blir absoluta och relativa felet? Exempel Antag att vi beräknar elementen i vektorn x ∈ Rn med ett relativt fel |∆xi|/|xi| ≤ Cµ. Hur stort relativt fel fås i vektorn mätt i k · k2 eller k · k∞? 17 november 2014 Sida 29 / 29