MN12LAB: Różnice pomiędzy wersjami
m Zastępowanie tekstu – „\displaystyle ” na „” |
m Zastępowanie tekstu – „.↵</math>” na „</math>” |
||
Linia 46: | Linia 46: | ||
\begin{pmatrix} | \begin{pmatrix} | ||
b \\ 0 | b \\ 0 | ||
\end{pmatrix} | \end{pmatrix} </math></center> | ||
</math></center> | |||
Koszt rozwiązywania takiego układu równań to oczywiście <math>O((m+n)^3)</math>, dużo więcej niż innych poznanych metod. Ale zalety takiego podejścia mogą objawić się, gdy macierz <math>A</math> jest rozrzedzona wielkiego wymiaru (i <math>m\approx n</math>), bo wtedy możemy zastosować znany nam arsenał metod iteracyjnych. | Koszt rozwiązywania takiego układu równań to oczywiście <math>O((m+n)^3)</math>, dużo więcej niż innych poznanych metod. Ale zalety takiego podejścia mogą objawić się, gdy macierz <math>A</math> jest rozrzedzona wielkiego wymiaru (i <math>m\approx n</math>), bo wtedy możemy zastosować znany nam arsenał metod iteracyjnych. | ||
Linia 58: | Linia 57: | ||
W twierdzeniu o uwarunkowaniu zadania najmniejszych kwadratów mówi się, że | W twierdzeniu o uwarunkowaniu zadania najmniejszych kwadratów mówi się, że | ||
<center><math>\frac{||b-Ax^*||_2}{||b||_2} < 1 | <center><math>\frac{||b-Ax^*||_2}{||b||_2} < 1</math></center> | ||
</math></center> | |||
Wyjaśnij, dlaczego rzeczywiście tak jest. | Wyjaśnij, dlaczego rzeczywiście tak jest. | ||
Linia 67: | Linia 65: | ||
Rozwiązanie zadania najmniejszych kwadratów minimalizuje <math>||b-Ax||_2</math>, tzn. dla każdego <math>x</math>, | Rozwiązanie zadania najmniejszych kwadratów minimalizuje <math>||b-Ax||_2</math>, tzn. dla każdego <math>x</math>, | ||
<center><math>||b-Ax^*||_2 \leq ||b-Ax||_2 | <center><math>||b-Ax^*||_2 \leq ||b-Ax||_2</math></center> | ||
</math></center> | |||
W szczególności dla <math>x=0</math> dostajemy <math>||b-Ax^*||_2 \leq ||b-A\cdot 0||_2 = ||b||_2</math>. Ostra nierówność wynika z jednoznaczności: <math>A^TAx^* = A^Tb \neq 0</math>, stąd <math>x^*\neq 0</math>. | W szczególności dla <math>x=0</math> dostajemy <math>||b-Ax^*||_2 \leq ||b-A\cdot 0||_2 = ||b||_2</math>. Ostra nierówność wynika z jednoznaczności: <math>A^TAx^* = A^Tb \neq 0</math>, stąd <math>x^*\neq 0</math>. | ||
Linia 171: | Linia 168: | ||
& \ddots & \\ | & \ddots & \\ | ||
& & \omega_n | & & \omega_n | ||
\end{pmatrix} | \end{pmatrix} </math></center> | ||
</math></center> | |||
A więc, zadanie sprowadza się do zadania najmniejszych kwadratów bez wag dla zmodyfikowanej macierzy i wektora prawej strony, <math>||\widetilde{b}-\widetilde{A}x||_2 \rightarrow \min!</math>. | A więc, zadanie sprowadza się do zadania najmniejszych kwadratów bez wag dla zmodyfikowanej macierzy i wektora prawej strony, <math>||\widetilde{b}-\widetilde{A}x||_2 \rightarrow \min!</math>. | ||
Linia 192: | Linia 188: | ||
Stosując rozkład QR metodą Householdera do macierzy <math>A</math>, dostajemy w rezultacie | Stosując rozkład QR metodą Householdera do macierzy <math>A</math>, dostajemy w rezultacie | ||
<center><math>A = QR = H_{N-1}\cdot H_{N-2} \cdots H_1 R | <center><math>A = QR = H_{N-1}\cdot H_{N-2} \cdots H_1 R</math></center> | ||
</math></center> | |||
Ponieważ <math>H_j^{-1} = H_j^T = H_j</math>, to <math>Q^{-1} = H_1 \cdots H_{N-2}\cdot H_{N-1}</math>. Dlatego | Ponieważ <math>H_j^{-1} = H_j^T = H_j</math>, to <math>Q^{-1} = H_1 \cdots H_{N-2}\cdot H_{N-1}</math>. Dlatego | ||
<center><math>x = A^{-1}b = R^{-1}\, Q^{-1} = R^{-1} \cdot H_1 \cdots H_{N-2}\cdot H_{N-1} b | <center><math>x = A^{-1}b = R^{-1}\, Q^{-1} = R^{-1} \cdot H_1 \cdots H_{N-2}\cdot H_{N-1} b</math></center> | ||
</math></center> | |||
Powyższą równość implementujemy korzystając z operacji mnożenia <math>H_j</math>, opisanej w poprzednim zadaniu. W szczególności pamiętamy, by nie wyznaczać pełnej macierzy <math>H_j</math>. Pseudokod procedury byłby następujący: | Powyższą równość implementujemy korzystając z operacji mnożenia <math>H_j</math>, opisanej w poprzednim zadaniu. W szczególności pamiętamy, by nie wyznaczać pełnej macierzy <math>H_j</math>. Pseudokod procedury byłby następujący: | ||
Linia 233: | Linia 227: | ||
\begin{pmatrix} | \begin{pmatrix} | ||
1 \\ 0 | 1 \\ 0 | ||
\end{pmatrix} | \end{pmatrix} </math></center> | ||
</math></center> | |||
Wskaż jak dobrać <math>c</math> i <math>s</math> tak, by macierz | Wskaż jak dobrać <math>c</math> i <math>s</math> tak, by macierz | ||
Linia 250: | Linia 243: | ||
Prosty rachunek pokazuje, że | Prosty rachunek pokazuje, że | ||
<center><math>c = \frac{x_1}{||x||_2}, \quad s = \frac{x_2}{||x||_2} | <center><math>c = \frac{x_1}{||x||_2}, \quad s = \frac{x_2}{||x||_2}</math></center> | ||
</math></center> | |||
(Zauważ, że <math>c^2 + s^2 = 1</math>, więc <math>G</math> faktycznie można traktować jako macierz obrotu o kąt <math>\theta</math> taki, że <math>c=\cos(\theta)</math> i <math>s=\sin(\theta)</math>.) | (Zauważ, że <math>c^2 + s^2 = 1</math>, więc <math>G</math> faktycznie można traktować jako macierz obrotu o kąt <math>\theta</math> taki, że <math>c=\cos(\theta)</math> i <math>s=\sin(\theta)</math>.) |
Wersja z 21:34, 11 wrz 2023
Liniowe zadanie najmniejszych kwadratów
<<< Powrót do strony głównej przedmiotu Metody numeryczne
Oglądaj wskazówki i rozwiązania __SHOWALL__
Ukryj wskazówki i rozwiązania __HIDEALL__
Ćwiczenie: Rozszerzony układ równań dla zadania najmniejszych kwadratów
Inną, oprócz sprowadzenia do układu równań normalnych, metodą transformacji zadania najmniejszych kwadratów do zadania rozwiązywania układu równań z macierzą kwadratową, jest zapisanie w formie układu dwóch układów równań (sic!). Dokładniej, możemy scharakteryzować zadanie wygładzania jako znalezienie dwóch wektorów oraz takich, że
Zapisz macierzowo ten układ równań. Wskaż, kiedy mogłoby być opłacalne stosowanie takiego podejścia. Porównaj koszt rozwiązania tego układu wprost metodą eliminacji Gaussa, z kosztem innych metod rozwiązywania zadania najmniejszych kwadratów.
Ćwiczenie
W twierdzeniu o uwarunkowaniu zadania najmniejszych kwadratów mówi się, że
Wyjaśnij, dlaczego rzeczywiście tak jest.
Ćwiczenie: Dopasowanie liniowych parametrów funkcji do danych
Znajdź i takie, że funkcja minimalizuje błąd średniokwadratowy dla danych:
x | f(x) |
0.00 | 4.00000000000000e+00 |
1.25 | 3.28650479686019e+00 |
2.50 | 3.08208499862390e+00 |
3.75 | 3.02351774585601e+00 |
5.00 | 3.00673794699909e+00 |
6.25 | 3.00193045413623e+00 |
7.50 | 0.00055308437015e+00 |
8.75 | 3.00015846132512e+00 |
10.00 | 3.00004539992976e+00 |
Ćwiczenie: Ważone zadanie najmniejszych kwadratów
Niech będzie macierzą pełnego rzędu, przy czym . Podaj algorytm rozwiązywania ważonego zadania najmniejszych kwadratów:
gdzie zakładamy, że są danymi wagami. (Gdy wszystkie , zadanie sprowadza się do zwykłego zadania najmniejszych kwadratów.)
Ćwiczenie
Opisz szczegółowo sposób rozwiązywania układu równań z niewiadomymi
korzystający z rozkładu QR metodą Householdera.
Ćwiczenie: Obroty Givensa
Innym sposobem wyzerowania wybranych elementów zadanego wektora za pomocą przekształceń ortogonalnych jest zastosowanie tzw. obrotów Givensa,
Wskaż jak dobrać i tak, by macierz
była ortogonalna i przekształcała w zadany wyżej sposób. Jak zastosować sekwencję obrotów Givensa tak, by zadany wektor -wymiarowy przeprowadzić na wektor o kierunku wektora jednostkowego? Porównaj koszt tej operacji z kosztem przekształcenia Householdera. Kiedy opłaca się stosować obroty Givensa w miejsce odbić Householdera?