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 2x =  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