MN12: Różnice pomiędzy wersjami
m MN Wykład 12 moved to MN12 |
Nie podano opisu zmian |
||
Linia 1: | Linia 1: | ||
=Nadokreślone układy równań liniowych= | =Nadokreślone układy równań liniowych= | ||
Zajmiemy się zadaniem wygładzania liniowego | Zajmiemy się zadaniem wygładzania liniowego | ||
nazywanym też liniowym zadaniem najmniejszych kwadratów. | nazywanym też liniowym zadaniem najmniejszych kwadratów. | ||
Jest ono uogólnieniem zadania rozwiązywania kwadratowych układów | Jest ono uogólnieniem zadania rozwiązywania kwadratowych układów | ||
Linia 96: | Linia 95: | ||
Ma on jednak pewne wady. Mnożenie macierzy powoduje w <math>\displaystyle fl_\nu</math> | Ma on jednak pewne wady. Mnożenie macierzy powoduje w <math>\displaystyle fl_\nu</math> | ||
powstanie | powstanie po drodze dodatkowych błędów, które mogą nawet | ||
zmienić rząd macierzy. Na przykład | zmienić rząd macierzy. Na przykład dla macierzy | ||
<center><math>\displaystyle A\,=\,\left(\begin{array} {cccc} | <center><math>\displaystyle A\,=\,\left(\begin{array} {cccc} | ||
Linia 117: | Linia 116: | ||
Jeśli <math>\displaystyle \epsilon^2<\nu</math> to <math>\displaystyle fl_\nu(1+\epsilon^2)=1</math>, co implikuje | Jeśli <math>\displaystyle \epsilon^2<\nu</math> to <math>\displaystyle fl_\nu(1+\epsilon^2)=1</math>, co implikuje | ||
<math>\displaystyle \mbox{rank} (fl_\nu(A^TA))=1</math>, | <math>\displaystyle \mbox{rank} (fl_\nu(A^TA))=1</math>, podczas, gdy <math>\displaystyle \mbox{rank} (fl_\nu(A))=4</math>. | ||
Poniżej przedstawimy inną metodę rozwiązywania zadania | Poniżej przedstawimy inną metodę rozwiązywania zadania | ||
Linia 194: | Linia 193: | ||
W szczególności, jeśli <math>\displaystyle e= e_1</math> jest pierwszym | W szczególności, jeśli <math>\displaystyle e= e_1</math> jest pierwszym | ||
wersorem | wersorem, powyższe wzory dają | ||
<center><math>\displaystyle H\,=\,I\,-\,\frac{ u u^T}{\gamma}, | <center><math>\displaystyle H\,=\,I\,-\,\frac{ u u^T}{\gamma}, | ||
Linia 228: | Linia 227: | ||
oraz <math>\displaystyle \gamma=\| x\|_2^2+|x_1|\,\| x\|_2</math>, czyli zawsze | oraz <math>\displaystyle \gamma=\| x\|_2^2+|x_1|\,\| x\|_2</math>, czyli zawsze | ||
dodajemy liczby tych samych znaków. Ponadto pierwsza współrzędna | dodajemy liczby tych samych znaków. Ponadto pierwsza współrzędna | ||
wektora <math>\displaystyle H x</math> jest równa <math>\displaystyle -\| x\|_2</math> dla <math>\displaystyle x_1\ge 0</math> | wektora <math>\displaystyle H x</math> jest równa <math>\displaystyle -\| x\|_2</math> dla <math>\displaystyle x_1\ge 0</math> oraz | ||
<math>\displaystyle +\| x\|_2</math> dla <math>\displaystyle x_1<0</math>. | <math>\displaystyle +\| x\|_2</math> dla <math>\displaystyle x_1<0</math>. | ||
Wersja z 16:32, 25 wrz 2006
Nadokreślone układy równań liniowych
Zajmiemy się zadaniem wygładzania liniowego nazywanym też liniowym zadaniem najmniejszych kwadratów. Jest ono uogólnieniem zadania rozwiązywania kwadratowych układów równań liniowych do przy\-pa\-dku, gdy układ jest nadokreślony.
Jest to praktycznie bardzo często pojawiające się zadanie (pewien jego wariant rozwiązują np. nasze przenośne odbiorniki GPS), a autorem pierwszego rozwiązania był nie kto inny jak sam wielki Gauss.

Zobacz biografię
Układ normalny
Niech będzie daną macierzą o wierszach i kolumnach, Parser nie mógł rozpoznać (nieznana funkcja „\inR”): {\displaystyle \displaystyle A\inR^{m\times n}} , taką, że
albo równoważnie, taką że jej wektory kolumny są liniowo niezależne. Niech także dany będzie wektor Parser nie mógł rozpoznać (nieznana funkcja „\inR”): {\displaystyle \displaystyle b\inR^m} . Jasne jest, że wtedy układ równań nie zawsze ma rozwiązanie - mówimy, że układ jest nadokreślony.
Zadanie wygładzania liniowego polega na znalezieniu wektora Parser nie mógł rozpoznać (nieznana funkcja „\inR”): {\displaystyle \displaystyle x^*\inR^n} , który minimalizuje wektor residualny w normie drugiej, tzn.
Przykład
Przypuśćmy, że dla pewnej funkcji Parser nie mógł rozpoznać (nieznana funkcja „\toR”): {\displaystyle \displaystyle f:[a,b]\toR} obserwujemy jej wartości (dokładne lub zaburzone) w punktach , . Funkcję tą chcielibyśmy przybliżyć inną funkcją należącą do pewnej wymiarowej przestrzeni liniowej , np. przestrzeni wielomianów stopnia mniejszego niż . Jakość przybliżenia mierzymy wielkością
Wybierając pewną bazę w i rozwijając w tej bazie, , sprowadzamy problem do minimalizacji
względem , a więc do zadania wygładzania liniowego. Rzeczywiście, kładąc Parser nie mógł rozpoznać (nieznana funkcja „\inR”): {\displaystyle \displaystyle A=(a_{i,j})\inR^{m\times n}} z , i , wielkość (Uzupelnic: unorm ) jest równa .
Lemat
Zadanie wygładzania liniowego ma jednoznaczne rozwiązanie , które spełnia układ równań
Zauważmy, że jeśli macierz jest kwadratowa, , to rozwiązaniem jest i residuum jest zerem. Zadanie wygładzania liniowego jest więc uogólnieniem rozwiązywania kwadratowych układów równań liniowych.
Równanie (Uzupelnic: unormal ) nazywa się układem normalnym. Może ono nam sugerować sposób rozwiązania zadania wygładzania liniowego. Wystarczy bowiem pomnożyć macierz przez i rozwiązać układ normalny. Zauważmy ponadto, że macierz jest symetryczna i dodatnio określona, bo i dla mamy , przy czym ostatnia nierówność wynika z faktu, że kolumny macierzy są liniowo niezależne i dlatego . Przy mnożeniu przez wystarczy więc obliczyć tylko elementy na głównej przekątnej i pod nią, a do rozwiązania równania z macierzą można zastosować algorytm Banachiewicza-Choleskiego opisany w U. Uzupelnic: BC . Jak łatwo się przekonać, koszt takiego algorytmu wynosi , przy czym dominuje koszt mnożenia obliczenia macierzy .
Ma on jednak pewne wady. Mnożenie macierzy powoduje w powstanie po drodze dodatkowych błędów, które mogą nawet zmienić rząd macierzy. Na przykład dla macierzy
mamy
Jeśli to , co implikuje , podczas, gdy .
Poniżej przedstawimy inną metodę rozwiązywania zadania wygładzania liniowego, która oparta jest na specjalnych przekształceniach zwanych odbiciami Householdera.
Odbicia Householdera
Dla danego wektora Parser nie mógł rozpoznać (nieznana funkcja „\inR”): {\displaystyle \displaystyle w\inR^m} o normie , odbicie (macierz) Householdera zdefiniowane jest jako
Zauważmy, że
a ponieważ jest rzutem prostopadłym na kierunek wektora ( oznacza iloczyn skalarny), to jest odbiciem lustrzanym wektora względem hiperpłaszczyzny (wymiaru ) prostopadłej do .
Odbicia Householdera są przekształceniami nieosobliwymi spełniającymi
Rzeczywiście, ponieważ ma normę jednostkową, mamy
oraz
W szczególności jest więc przekształceniem ortogonalnym, , czyli nie zmienia długości wektora,
Odbicia Householdera zastosujemy do przeprowadzenia danego wektora na kierunek innego niezerowego wektora, powiedzmy , tzn.
Załóżmy dla uproszczenia, że . Aby wyznaczyć zauważmy, że
a ponieważ i to
W szczególności, jeśli jest pierwszym wersorem, powyższe wzory dają
gdzie
oraz
Otrzymaliśmy dwa odbicia Householdera przekształcające dany wektor na kierunek pierwszego wersora, w zależności od wybranego znaku przy . Ustalimy ten znak na plus gdy , oraz na minus gdy , co pozwoli na obliczenie i z małym błędem względem w . Wtedy bowiem mamy
oraz , czyli zawsze dodajemy liczby tych samych znaków. Ponadto pierwsza współrzędna wektora jest równa dla oraz dla .
Rozkład QR
Odbić Householdera można użyć do rozkładu macierzy Parser nie mógł rozpoznać (nieznana funkcja „\inR”): {\displaystyle \displaystyle A\inR^{m\times n}} na iloczyn ortogonalno-trójkątny.
Niech , gdzie są wektorami-kolumnami macierzy . Wybierzmy pierwsze odbicie Householdera tak, aby przekształcało pierwszy wektor-kolumnę macierzy na kierunek . Efektem pomnożenia macierzy z lewej strony przez będzie wtedy macierz
w której pierwsza kolumna ma niezerową tylko pierwszą współrzędną. W następnym kroku wybieramy drugie przekształcenie Householdera wymiaru tak, aby przeprowadzało wektor na kierunek pierwszego wersora w . Rozszerzając Parser nie mógł rozpoznać (nieznana funkcja „\inR”): {\displaystyle \displaystyle v_2\inR^{m-1}} do wektora Parser nie mógł rozpoznać (nieznana funkcja „\inR”): {\displaystyle \displaystyle u_2\inR^m} przez dodanie zera jako pierwszej współrzędnej, , otrzymujemy przekształcenie (macierz) Householdera w postaci
Pomnożenie macierzy z lewej strony przez spowoduje teraz wyzerowanie drugiej kolumny macierzy pod elementem , przy czym pierwszy wiersz i pierwsza kolumna pozostaną niezmienione. Postępując tak dalej razy (albo razy gdy ) otrzymujemy
gdzie Parser nie mógł rozpoznać (nieznana funkcja „\inR”): {\displaystyle \displaystyle R\inR^{m\times n}} jest uogólnioną macierzą trójkątną górną, tzn. dla . Stąd, podstawiając , dostajemy rozkład macierzy na iloczyn ortogonalno-trójkątny
Rzeczywiście, macierz Parser nie mógł rozpoznać (nieznana funkcja „\inR”): {\displaystyle \displaystyle Q\inR^{m\times m}} jest ortogonalna, bo
Dyspunując rozkładem (Uzupelnic: orttr ) zadanie wygładzania liniowego można rozwiązać następująco. Ponieważ mnożenie przez macierz ortogonalną nie zmienia normy drugiej wektora, mamy
gdzie . Rozbijając wektor na , gdzie Parser nie mógł rozpoznać (nieznana funkcja „\inR”): {\displaystyle \displaystyle c_I\inR^n} i Parser nie mógł rozpoznać (nieznana funkcja „\inR”): {\displaystyle \displaystyle c_{II}\inR^{m-n}} , oraz macierz na
gdzie Parser nie mógł rozpoznać (nieznana funkcja „\inR”): {\displaystyle \displaystyle R_I\inR^{n\times n}} jest macierzą trójkątną górną, a jest macierzą zerową wymiaru , otrzymujemy
Rozwiązanie zadania wygładzania jest więc rozwiązaniem układu liniowego trójkątnego,
oraz .
Zastanówmy się nad praktyczną realizacją tego algorytmu. Każde z kolejnych przekształceń Householdera wyznaczamy przez obliczenie oraz współrzędnych wektora . Wektor ten ma tylko współrzędnych niezerowych, a ponadto dla . Dzięki takiej reprezentacji , mnożenia możemy dla dowolnego realizować według wzoru
gdzie .
Uwzględnizjąc obecność zerowych elementów w , przejście od macierzy do kosztuje rzędu operacji arytmetycznych i obliczenie jednego pierwiastka kwadratowego. Cały rozkład kosztuje więc rzędu (dla dużych i )
operacji arytmetycznych i pierwiastków kwadratowych. Zauważmy, że w przypadku , a więc dla kwadratowego układu równań, koszt ten wynosi i jest dwa razy większy od kosztu eliminacji Gaussa.