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