MN07
Uwarunkowanie układu równań liniowych
Zajmiemy się wrażliwością układu równań na zaburzenia danych: prawej strony i współczynników macierzy układu. Jak zobaczymy na poniższym przykładzie, bywają równania, które są mało podatne na zaburzenia danych (a więc: dobrze uwarunkowane) oraz równania, które są szalenie wrażliwe na zaburzenia, a więc źle uwarunkowane. Jak wkrótce się przekonamy, czułość danego układu równań na zaburzenia da się precyzyjnie scharakteryzować, a cecha ta nie tylko będzie miała wpływ na jakość rozwiązań możliwych do uzyskania w arytmetyce skończonej precyzji, ale także na efektywność metod iteracyjnych rozwiązywania układów równań liniowych, w których są tysięce (lub więcej) niewiadomych.
Przykład: Uwarunkowanie układu dwóch równań liniowych
Rozwiązanie układu dwóch równań liniowych można przedstawić w formie graficznej: jest to punkt przecięcia się dwóch prostych wyznaczonych przez dane wspóółczynniki i wyrazy prawej strony.






A więc równania liniowe mogą, choć nie muszą, być bardzo podatne na zaburzenia danych. Gdy zamiast prawej strony, zaburzymy wyrazy macierzy układu, może nawet okazać się, że dostaniemy układ równań sprzecznych (czy możesz podać przykład?)
Aby przedstawić ogólną teorię zaburzeń dla układów równań liniowych, musimy mieć narzędzia do pomiaru błędu rozwiązań, a także zaburzeń danych zadania: czyli macierzy i wektora prawej strony. Temu będą służyć normy.
Normy wektorowe i macierzowe
Aby badać odległość między rozwiązaniem dokładnym układu równań a jego wartością przybliżoną uzyskaną np. algorytmem eliminacji Gaussa, będziemy posługiwać się normami wektorów Parser nie mógł rozpoznać (nieznana funkcja „\inR”): {\displaystyle \displaystyle x = (x_j)_{j=1}^n\inR^n} i macierzy . Najczęściej używanymi normami wektorowymi będą normy -te,
oraz



Normą macierzową jest norma euklidesowa (zwana też normą Frobeniusa)
a także normy indukowane przez normy wektorowe (np. przez normy -te)
Jeśli norma macierzowa jest indukowana przez normę wektorową, to dla dowolnego wektora mamy
Przypomnijmy, że w przestrzeniach liniowych skończenie wymiarowych (a więc także w i w przestrzeni macierzy wymiaru ) każde dwie normy są równoważne. To znaczy, że jeśli mamy dwie normy i w przestrzeni skończenie wymiarowej , to istnieją stałe takie, że
W szczególności dla Parser nie mógł rozpoznać (nieznana funkcja „\inR”): {\displaystyle \displaystyle x\inR^n} mamy
a dla mamy
gdzie .
Dla macierzy Parser nie mógł rozpoznać (nieznana funkcja „\inR”): {\displaystyle \displaystyle A=(a_{i,j})_{i.j=1}^n\inR^{n\times n}} mamy
oraz
Dowód tego faktu zostawiamy jako ćwiczenie.
Uwarunkowanie
Wyprowadzimy teraz wynik świadczący o tym, jak zaburzenie względne danych przenosi się na błąd względny wyniku rozwiązania układu równań liniowych .
Twierdzenie O uwarunkowaniu układu równań
Niech i będą zaburzeniami odpowiednio macierzy i wektora takimi, że
Jeśli
to układ zaburzony ma jednoznaczne rozwiązanie spełniające
gdzie definiujemy współczynnik uwarunkowania układu
Zauważmy najpierw, że zachodzi

Zobacz biografię
Lemat von Neumanna o otwartości zbioru macierzy odwracalnych
Jeśli jest macierzą taką, że , to macierz jest nieosobliwa oraz
Dowód
Rzeczywiście, gdyby była osobliwa, to istniałby niezerowy wektor taki, że , co implikuje i w konsekwencji . Aby pokazać oszacowanie normy macierzy zauważmy, że
skąd już wynika dowodzona nierówność.

Dowód twierdzenia o uwarunkowaniu
Po podstawieniu mamy teraz
co wobec równości daje, że macierz jest nieosobliwa i układ zaburzony ma jednoznaczne rozwiązanie . Przedstawmy to rozwiązanie w postaci . Rozpisując układ zaburzony i wykorzystując równość otrzymujemy, że , czyli
a stąd
co kończy dowód.

Gdy więc np. , powyższe oszacowanie możemy zastąpić czytelniejszym (choć mniej precyzyjnym)
Octave i MATLAB mają wbudowane funkcje wyznaczające normy wektorów i macierzy
N = 3; x = [1:N]' A = pascal(N) norm(A,1) norm(x,2) norm(A,Inf)
a także funkcje wyznaczające uwarunkowanie macierzy, przy czym Octave liczy tylko uwarunkowanie w normie :
cond(A)
W LAPACKu służy do tego funkcja DGECON
. Zadanie wyznaczania uwarunkowania macierzy jest zadaniem bardzo intensywnym
numerycznie a problem, czy da się je wyznaczyć z dobrą dokładnością kosztem
niższym niż wyznaczenie macierzy odwrotnej i jej normy, jest wciąż otwarty.
W praktyce obliczeniowej trafiają się zarówno układy dobrze uwarunkowane, jak i macierze, których uwarunkowanie może być patologicznie duże (np. takie macierze są chlebem powszednim osób rozwiązujących równania różniczkowe). Przykładem takiej macierzy o uwarunkowaniu bardzo szybko rosnącym z wymiarem jest m.in.

Zobacz biografię
Przykład: Macierz Hilberta
Niech , gdzie

Taką macierz możemy wygenerować w Octave komendą hilb(N)
.
Okazuje się, że uwarunkowanie macierzy Hilberta rośnie bardzo szybko z , , np.
octave:2> cond(hilb(5)) ans = 4.7661e+05 octave:3> cond(hilb(10)) ans = 1.6025e+13 octave:4> cond(hilb(15)) ans = 3.7689e+17 octave:5> cond(hilb(20)) ans = 7.1209e+19
Jest to więc bardzo wdzięczna macierz do prowadzenia testów...
Numeryczna poprawność eliminacji Gaussa
Przedstawimy bez dowodu klasyczne twierdzenie o "praktycznej numerycznej poprawności" eliminacji Gaussa z wyborem w kolumnie.
Zobacz biografię
Twierdzenie Wilkinsona
w arytmetyce , wyznacza taki, że jest dokładnym rozwiązaniem zadania zaburzonego
gdzie
dla pewnej niedużej stałej , a i są numerycznie wyznaczonymi czynnikami rozkładu , natomiast .
Jak widzimy, kluczowe dla numerycznej poprawności jest oszacowanie wskaźnika wzrostu . Okazuje się, co wiedział już Wilkinson, że
- w najgorszym przypadku, i jest osiągane dla macierzy
- dla macierzy trójdiagonalnych lub diagonalnie dominujących, lub dla
macierzy symetrycznych dodatnio określonych,
- w średnim przypadku, obserwuje się , to znaczy macierze
spotykane w praktyce obliczeniowej mają mały wskaźnik wzrostu.
Konkluzja jest więc taka, że algorytm eliminacji Gaussa z wyborem w kolumnie jest praktycznie numerycznie poprawny. Z drugiej strony, dla bardzo dużych i niezbyt dobrze uwarunkowanych macierzy, może okazać się, że arytmetyka pojedynczej precyzji może okazać się niewystarczająca dla uzyskania godnego wyniku.
Algorytm eliminacji Gaussa z pełnym wyborem elementu głównego jest już w pełni numerycznie poprawny ze wskaźnikiem wzrostu a w praktyce grubo poniżej .