MN12LAB: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
m Zastępowanie tekstu – „\displaystyle ” na „”
m Zastępowanie tekstu – „,↵</math>” na „</math>,”
 
(Nie pokazano 1 pośredniej wersji utworzonej przez tego samego użytkownika)
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 152: Linia 149:
Podaj algorytm rozwiązywania ważonego zadania najmniejszych kwadratów:
Podaj algorytm rozwiązywania ważonego zadania najmniejszych kwadratów:


<center><math>\sum_{i=1}^n\omega_i|b_i - (Ax)_i|^2 \rightarrow \min!,
<center><math>\sum_{i=1}^n\omega_i|b_i - (Ax)_i|^2 \rightarrow \min!</math>,</center>
</math></center>


gdzie zakładamy, że <math>0 < \omega_i \leq 1</math> są danymi wagami. (Gdy wszystkie  <math>\omega_i = 1</math>, zadanie sprowadza się do zwykłego zadania najmniejszych kwadratów.)
gdzie zakładamy, że <math>0 < \omega_i \leq 1</math> są danymi wagami. (Gdy wszystkie  <math>\omega_i = 1</math>, zadanie sprowadza się do zwykłego zadania najmniejszych kwadratów.)
Linia 162: Linia 158:


<center><math>\sum_{i=1}^n |\sqrt{\omega_i}(b_i - (Ax)_i)|^2  =  
<center><math>\sum_{i=1}^n |\sqrt{\omega_i}(b_i - (Ax)_i)|^2  =  
\sum_{i=1}^n |(\widetilde{b}_i - (\widetilde{A}x)_i)|^2,
\sum_{i=1}^n |(\widetilde{b}_i - (\widetilde{A}x)_i)|^2</math>,</center>
</math></center>


gdzie <math>\widetilde{b} = Db</math>, <math>\widetilde{A} = DA</math> i  
gdzie <math>\widetilde{b} = Db</math>, <math>\widetilde{A} = DA</math> i  
Linia 171: Linia 166:
         & \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 183: Linia 177:
Opisz szczegółowo sposób rozwiązywania układu <math>N</math> równań z <math>N</math> niewiadomymi
Opisz szczegółowo sposób rozwiązywania układu <math>N</math> równań z <math>N</math> niewiadomymi


<center><math>Ax = b,
<center><math>Ax = b</math>,</center>
</math></center>


korzystający z rozkładu QR metodą Householdera.
korzystający z rozkładu QR metodą Householdera.
Linia 192: Linia 185:
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 224:
\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 240:
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>.)

Aktualna wersja na dzień 21:50, 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 xRn oraz rRm takich, że

dr=bAx,ATr=0.

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.

Wskazówka
Rozwiązanie

Ćwiczenie

W twierdzeniu o uwarunkowaniu zadania najmniejszych kwadratów mówi się, że

||bAx*||2||b||2<1

Wyjaśnij, dlaczego rzeczywiście tak jest.

Rozwiązanie

Ćwiczenie: Dopasowanie liniowych parametrów funkcji do danych

Znajdź a i b takie, że funkcja f(x)=a+bex 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
Wskazówka
Rozwiązanie

Ćwiczenie: Ważone zadanie najmniejszych kwadratów

Niech A będzie macierzą m×n pełnego rzędu, przy czym mn. Podaj algorytm rozwiązywania ważonego zadania najmniejszych kwadratów:

i=1nωi|bi(Ax)i|2min!,

gdzie zakładamy, że 0<ωi1 są danymi wagami. (Gdy wszystkie ωi=1, zadanie sprowadza się do zwykłego zadania najmniejszych kwadratów.)

Rozwiązanie

Ćwiczenie

Opisz szczegółowo sposób rozwiązywania układu N równań z N niewiadomymi

Ax=b,

korzystający z rozkładu QR metodą Householdera.

Rozwiązanie

Ćwiczenie: Obroty Givensa

Innym sposobem wyzerowania wybranych elementów zadanego wektora x za pomocą przekształceń ortogonalnych jest zastosowanie tzw. obrotów Givensa,

(cssc)(x1x2)=||x||2(10)

Wskaż jak dobrać c i s tak, by macierz

G=(cssc)

była ortogonalna i przekształcała x w zadany wyżej sposób. Jak zastosować sekwencję obrotów Givensa tak, by zadany wektor N-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?

Rozwiązanie