You are on page 1of 10

Zad. 6.

Wskaźnik uwarunkowania macierzy

e-mail: andrzej.kedziorski@fizyka.umk.pl
tel.: 56611-3274
pokój: 485B
http://www.fizyka.umk.pl/˜tecumseh/EDU/MNII/
Zadanie 6

Napisz program wyznaczający macierz odwrotną A−1 na podstawie


rozkładu LU, a także wskaźnik uwarunkowania macierzy A. Ocenić
jak skalowanie układu równań liniowych Ax = b wpływa na
wskaźnik uwarunkowania macierzy A, a przez to na dokładność
rozwiązań układu równań.
Normy wektorów
I Własności normy wektora

kxk ­ 0
kxk = 0 ⇔ x = 0
∀γ kγxk = |γ| kxk
kx1 + x2 k ¬ kx1 k + kx2 k

I Różne definicje normy wektorów


n
X
kxk1 = |xi |
i=1
n
!1/2
X
2
kxk2 = |xi |
i=1
kxk∞ = max |xi |
1¬i¬n
Norma macierzy zgodna z normą wektora

kAxk ¬ kAkkxk
Czyli
kAxk
kAk = max
x6=0 kxk
Własności normy macierzy

∀x kAxk ¬ kAkkxk
kAk ­ 0
∀γ kγAk = |γ|kAk
kA + Bk ¬ kAk + kBk
kABk ¬ kAkkBk

Definicje normy macierzy

n
X n
X
kAk1 = max |aij | kAk∞ = max |aij |
1¬j¬n 1¬i¬n
i=1 j=1
Analiza błędów: wskaźnik uwarunkowania macierzy

Jeśli A(x + δx) = b + δb, to kbk ¬ kAkkxk i kδxk ¬ kA−1 kkδbk,


więc
kδxk kδbk kδbk
¬ kAkkA−1 k = cond(A)
kxk kbk kbk
Jeśli (A + δA)(x + δx) = b, to kδxk ¬ kA−1 kkδAkkx + δxk, więc

kδxk kδAk kδAk


¬ kAkkA−1 k = cond(A)
kx + δxk kAk kAk

I Wskaźnik uwarunkowania macierzy cond(A) = kAkkA−1 k


I Dla macierzy osobliwej cond(A) = ∞
Na podstawie wykładu: J. Kobus, Metody numeryczne, 2014/2015
Macierz odwrotna

AA−1 = 1

I Równanie na k-tą kolumnę xk macierzy odwrotnej A−1

Axk = ek , k = 1, 2, ..., n

gdzie ek jest k-tą kolumną macierzy jednostkowej


I Wygodniej jest skorzystać z rozkładu A = LUP, wtedy
A−1 = P−1 U−1 L−1
I Kolumny macierzy odwrotnych L−1 i U−1 można wyznaczyć
stosując metodę podstawiania wprzód i wstecz

Lyk = ek Uzk = ek k = 1, 2, ..., n


Tr
oraz P−1 = P
Wskaźnik uwarunkowania macierzy

I Z definicji
cond(A) = kAkkA−1 k
I W praktyce unika się odwracania macierzy
I Oszacowanie normy macierzy odwrotnej kA−1 k
Jeżeli Ax = b, to kxk ¬ kA−1 kkbk. Stąd

kxk
kA−1 k ­
kbk
oraz
kxk
cond(A) ­ kAk
kbk
Skalowanie układu równań liniowych



 a11 x1 + a12 x2 + . . . + a1n xn = b1 / max1¬j¬n |a1j |


 a21 x1 + a22 x2 + . . . + a2n xn = b2 / max1¬j¬n |a2j |


.. .. .. .. .. ..



 . . . . . .


an1 x1 + an2 x2 + . . . + ann xn = bn / max1¬j¬n |anj |

Do zrobienia - modyfikacja programu rozwiązującego
układy równań liniowych (zob. zad. 5)
1. Wczytać z wejścia wymiar n macierzy A i elementy tej macierzy
oraz elementy kolumny wyrazów wolnych b
2. Dokonać rozkładu LU macierzy A metodą Doolittle’a (albo Crouta)
z częściowym wyborem elementu głównego
3. Rozwiązać układ równań Ax = b oraz przeskalowany układ równań
A0 x = b0 korzystając z rozkładu LU macierzy z częsciowym wyborem
elementu głównego
−1
4. Znaleźć macierz odwrotną A−1 oraz A0 (spr. czy AA−1 = 1 oraz
A0 A0−1 = 1)
5. Obliczyć wskaźnik uwarunkowania macierzy A oraz A0
I Z definicji
I Oszacować
6. Sprawdzić, czy Ax = b
7. Porównać wyniki programu z wynikami z gotowych procedur (np.
korzystając z operatora dzielenia lewostronnego w Matlabie, tzn.
x = A\b)
Przykłady

! !
1 1 1 3
A1 = 2 −2 2 b1 = 2
3 3 −3 1
! !
1 1 1 3
A2 = 3 3 −3 b2 = 1
2 −2 2 2
   
21 0 770 0 50666 152789
 0 770 0 50666 0   102102 
A3 =  770 0 50666 0 3956810  b2 =  11921866 
0 50666 0 3956810 0 7964286
   
50666 0 3956810 0 335462666 1010395474

(zob. http://www.fizyka.umk.pl/~tecumseh/EDU/MNII/inp)

You might also like