MN07LAB: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
m Zastępowanie tekstu – „,↵</math>” na „</math>,”
 
(Nie pokazano 5 pośrednich wersji utworzonych przez tego samego użytkownika)
Linia 20: Linia 20:


Pokazać, że dla macierzy  
Pokazać, że dla macierzy  
<math>\displaystyle A=(a_{i,j})_{i.j=1}^n\in R^{n\times n}</math> mamy  
<math>A=(a_{i,j})_{i.j=1}^n\in R^{n\times n}</math> mamy  


<center><math>\displaystyle \|A\|_1 \,=\, \|A^T\|_\infty \,=\,
<center><math>\|A\|_1 \,=\, \|A^T\|_\infty \,=\,
         \max_{1\le j\le n}\sum_{i=1}^n |a_{i,j}|
         \max_{1\le j\le n}\sum_{i=1}^n |a_{i,j}|
</math></center>
</math></center>
Linia 30: Linia 30:
oraz  
oraz  


<center><math>\displaystyle \|A\|_\infty \,=\, \max_{1\le i\le n}\sum_{j=1}^n |a_{i,j}|.
<center><math>\|A\|_\infty \,=\, \max_{1\le i\le n}\sum_{j=1}^n |a_{i,j}|</math></center>
</math></center>


<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie </span><div class="mw-collapsible-content" style="display:none"><div style="margin-left:1em">   
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie </span><div class="mw-collapsible-content" style="display:none"><div style="margin-left:1em">   
Pokażemy pierwszą równość, drugą dowodzi się analogicznie.
Pokażemy pierwszą równość, drugą dowodzi się analogicznie.


Najpierw udowodnimy, że dla dowolnego wektora <math>\displaystyle x</math> o normie <math>\displaystyle ||x||_1 = 1</math> zachodzi
Najpierw udowodnimy, że dla dowolnego wektora <math>x</math> o normie <math>||x||_1 = 1</math> zachodzi
<center><math>\displaystyle ||Ax||_1 \leq \max_{1\le j\le n}\sum_{i=1}^n
<center><math>||Ax||_1 \leq \max_{1\le j\le n}\sum_{i=1}^n
|a_{i,j}|, </math></center>
|a_{i,j}|</math></center>


a następnie wskażemy taki wektor <math>\displaystyle x</math>, dla którego mamy równość.
a następnie wskażemy taki wektor <math>x</math>, dla którego mamy równość.


Istotnie, dla <math>\displaystyle ||x||_1 = 1</math>,
Istotnie, dla <math>||x||_1 = 1</math>,
<center><math>\displaystyle
<center><math>
|(Ax)_i| = |\sum_{j=1}^n a_{ij}x_j| \leq \sum_{j=1}^n |a_{ij}|\cdot|x_j| \leq
|(Ax)_i| = |\sum_{j=1}^n a_{ij}x_j| \leq \sum_{j=1}^n |a_{ij}|\cdot|x_j| \leq
\max_j|a_{ij}|\sum_{j=1}^n |x_j| = \max_j|a_{ij}|,
\max_j|a_{ij}|\sum_{j=1}^n |x_j| = \max_j|a_{ij}|</math>,</center>
</math></center>


bo <math>\displaystyle \sum_{j=1}^n |x_j|  = ||x||_1 = 1</math>, zatem
bo <math>\sum_{j=1}^n |x_j|  = ||x||_1 = 1</math>, zatem
<center><math>\displaystyle
<center><math>
||Ax||_1 = \sum_i |(Ax)_i|\leq \max_j \sum_{i=1}^n |a_{ij}|.
||Ax||_1 = \sum_i |(Ax)_i|\leq \max_j \sum_{i=1}^n |a_{ij}|</math></center>
</math></center>


Niech teraz <math>\displaystyle i_0</math> będzie indeksem kolumny macierzy <math>\displaystyle A</math>, dla którego
Niech teraz <math>i_0</math> będzie indeksem kolumny macierzy <math>A</math>, dla którego
maksimum jest przyjmowane. Wtedy w powyższym oszacowaniu równość jest
maksimum jest przyjmowane. Wtedy w powyższym oszacowaniu równość jest
przyjmowana dla wektora <math>\displaystyle x=e_{i_0}</math>, czyli wektora, który na współrzędnej <math>\displaystyle i_0</math>
przyjmowana dla wektora <math>x=e_{i_0}</math>, czyli wektora, który na współrzędnej <math>i_0</math>
ma jedynkę, a poza nią --- same zera.
ma jedynkę, a poza nią --- same zera.


Linia 64: Linia 61:
<div class="exercise">
<div class="exercise">


Pokaż, że dla macierzy rzeczywistej <math>\displaystyle N\times M</math>,
Pokaż, że dla macierzy rzeczywistej <math>N\times M</math>,
<center><math>\displaystyle
<center><math>
||A||_2 = \max \{\sqrt{\lambda} : \lambda  \mbox{ jest wartością własną macierzy }  
||A||_2 = \max \{\sqrt{\lambda} : \lambda  \mbox{ jest wartością własną macierzy }  
A^TA\}.
A^TA\}</math></center>
</math></center>


<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Wskazówka </span><div class="mw-collapsible-content" style="display:none">
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Wskazówka </span><div class="mw-collapsible-content" style="display:none">
<div style="font-size:smaller; background-color:#f9fff9; padding: 1em"> Macierz <math>\displaystyle A^TA</math> jest macierzą symetryczną, co można powiedzieć o jej
<div style="font-size:smaller; background-color:#f9fff9; padding: 1em"> Macierz <math>A^TA</math> jest macierzą symetryczną, co można powiedzieć o jej
wartościach i wektorach własnych? </div>
wartościach i wektorach własnych? </div>
</div></div>
</div></div>
Linia 78: Linia 74:


<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie </span><div class="mw-collapsible-content" style="display:none"><div style="margin-left:1em">   
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie </span><div class="mw-collapsible-content" style="display:none"><div style="margin-left:1em">   
Niech <math>\displaystyle B= A^TA</math>. Jako macierz symetryczna, ma ona rozkład  
Niech <math>B= A^TA</math>. Jako macierz symetryczna, ma ona rozkład  
<center><math>\displaystyle
<center><math>
B = Q^T\Lambda Q,
B = Q^T\Lambda Q</math>,</center>
</math></center>


gdzie <math>\displaystyle Q</math> jest macierzą ortogonalną, <math>\displaystyle Q^TQ=I</math>, natomiast <math>\displaystyle \Lambda</math> jest macierzą
gdzie <math>Q</math> jest macierzą ortogonalną, <math>Q^TQ=I</math>, natomiast <math>\Lambda</math> jest macierzą
diagonalną (z wartościami własnymi <math>\displaystyle B</math> na diagonali). Poza tym <math>\displaystyle B</math> jest
diagonalną (z wartościami własnymi <math>B</math> na diagonali). Poza tym <math>B</math> jest
nieujemnie
nieujemnie
określona (dlaczego?), więc wartości własne <math>\displaystyle B</math> są nieujemne, zatem wyciąganie z
określona (dlaczego?), więc wartości własne <math>B</math> są nieujemne, zatem wyciąganie z
nich pierwiastka ma sens!
nich pierwiastka ma sens!


Dla dowolnego wektora <math>\displaystyle x</math> mamy
Dla dowolnego wektora <math>x</math> mamy
<center><math>\displaystyle
<center><math>
||Ax||_2^2  = (Ax)^TAx = x^T A^TA x = x^T B x = x^TQ^T\Lambda Q x,
||Ax||_2^2  = (Ax)^TAx = x^T A^TA x = x^T B x = x^TQ^T\Lambda Q x</math>,</center>
</math></center>


skąd, definiując <math>\displaystyle y=Qx</math>,
skąd, definiując <math>y=Qx</math>,
<center><math>\displaystyle
<center><math>
||A||_2^2 = \max_x\frac{||Ax||_2^2 }{||x||_2^2} = \max_y\frac{||\Lambda y||_2^2
||A||_2^2 = \max_x\frac{||Ax||_2^2 }{||x||_2^2} = \max_y\frac{||\Lambda y||_2^2
}{||y||_2^2} = \max \{\lambda_i\},
}{||y||_2^2} = \max \{\lambda_i\}</math>,</center>
</math></center>


bo <math>\displaystyle ||Qx||_2 = ||y||_2</math>.   
bo <math>||Qx||_2 = ||y||_2</math>.   
</div></div></div>
</div></div></div>


Linia 107: Linia 100:
<div class="exercise">
<div class="exercise">


Dla wektora <math>\displaystyle  x=(x_j)_{j=1}^n\in R^n</math>, niech  
Dla wektora <math>x=(x_j)_{j=1}^n\in R^n</math>, niech  
<math>\displaystyle rd_\nu( x)=(rd_\nu(x_j))_{j=1}^n</math>. Pokazać, że  
<math>rd_\nu( x)=(rd_\nu(x_j))_{j=1}^n</math>. Pokazać, że  


<center><math>\displaystyle \| x-rd_\nu( x)\|_p\,\le\,\nu\,\| x\|_p
<center><math>\| x-rd_\nu( x)\|_p\,\le\,\nu\,\| x\|_p
</math></center>
</math></center>


dla <math>\displaystyle 1\le p\le\infty</math>.  
dla <math>1\le p\le\infty</math>.  
</div></div>
</div></div>


<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie </span><div class="mw-collapsible-content" style="display:none"><div style="margin-left:1em">   
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie </span><div class="mw-collapsible-content" style="display:none"><div style="margin-left:1em">   
Pokażemy dla <math>\displaystyle p < +\infty</math>, dla <math>\displaystyle p=+\infty</math> jest jeszcze łatwiej. dowodzi się analogicznie. Ponieważ <math>\displaystyle |x_i - rd_\nu( x_i)| \leq \nu |x_i|</math>, to
Pokażemy dla <math>p < +\infty</math>, dla <math>p=+\infty</math> jest jeszcze łatwiej. dowodzi się analogicznie. Ponieważ <math>|x_i - rd_\nu( x_i)| \leq \nu |x_i|</math>, to


<center><math>\displaystyle \| x-rd_\nu( x)\|_p^p = \sum_i |x_i - rd_\nu( x_i)|^p \le \sum_i \nu^p\,| x_i|_p^p = \nu^p \|x\|_p^p.
<center><math>\| x-rd_\nu( x)\|_p^p = \sum_i |x_i - rd_\nu( x_i)|^p \le \sum_i \nu^p\,| x_i|_p^p = \nu^p \|x\|_p^p</math></center>
</math></center>


</div></div></div>
</div></div></div>
Linia 128: Linia 120:
<div class="exercise">
<div class="exercise">


Dla macierzy <math>\displaystyle A=(a_{i,j})_{i,j=1}^n</math>, niech  
Dla macierzy <math>A=(a_{i,j})_{i,j=1}^n</math>, niech  
<math>\displaystyle rd_\nu(A)=(rd_\nu(a_{i,j}))_{i,j=1}^n</math>. Pokazać, że  
<math>rd_\nu(A)=(rd_\nu(a_{i,j}))_{i,j=1}^n</math>. Pokazać, że  


<center><math>\displaystyle \|A-rd_\nu(A)\|_p\,\le\,\nu\,\|A\|_p,
<center><math>\|A-rd_\nu(A)\|_p\,\le\,\nu\,\|A\|_p</math>,</center>
</math></center>


dla <math>\displaystyle p=1,\infty</math>, oraz  
dla <math>p=1,\infty</math>, oraz  


<center><math>\displaystyle \|A-rd_\nu(A)\|_2\,\le\,\|A-rd_\nu(A)\|_E\,\le\,\nu\,\|A\|_E
<center><math>\|A-rd_\nu(A)\|_2\,\le\,\|A-rd_\nu(A)\|_E\,\le\,\nu\,\|A\|_E
     \,\le\,\sqrt{n}\,\nu\,\|A\|_2.
     \,\le\,\sqrt{n}\,\nu\,\|A\|_2</math></center>
</math></center>


<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Wskazówka </span><div class="mw-collapsible-content" style="display:none">
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Wskazówka </span><div class="mw-collapsible-content" style="display:none">
Linia 150: Linia 140:
<div class="exercise">
<div class="exercise">


Czy algorytm eliminacji Gaussa dla <math>\displaystyle Ax=b</math>, gdzie macierz <math>\displaystyle A</math> jest <strong>symetryczna i dodatnio określona</strong>
Czy algorytm eliminacji Gaussa dla <math>Ax=b</math>, gdzie macierz <math>A</math> jest <strong>symetryczna i dodatnio określona</strong>
zawsze da wynik <math>\displaystyle \widetilde{x}</math> o dużej dokładności, rzędu precyzji arytmetyki?
zawsze da wynik <math>\widetilde{x}</math> o dużej dokładności, rzędu precyzji arytmetyki?


<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Wskazówka </span><div class="mw-collapsible-content" style="display:none">
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Wskazówka </span><div class="mw-collapsible-content" style="display:none">
Linia 160: Linia 150:


<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie </span><div class="mw-collapsible-content" style="display:none"><div style="margin-left:1em">   
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie </span><div class="mw-collapsible-content" style="display:none"><div style="margin-left:1em">   
Dla naszej macierzy wskaźnik wzrostu <math>\displaystyle \rho_N \leq 2</math>, zatem algorytm eliminacji
Dla naszej macierzy wskaźnik wzrostu <math>\rho_N \leq 2</math>, zatem algorytm eliminacji
Gaussa jest numerycznie poprawny. Ale <strong>nie znaczy</strong> to, że da wynik <math>\displaystyle \widetilde{x}</math> taki, że
Gaussa jest numerycznie poprawny. Ale <strong>nie znaczy</strong> to, że da wynik <math>\widetilde{x}</math> taki, że


<center><math>\displaystyle \frac{||x-\widetilde{x}||}{||x||} \approx \nu.
<center><math>\frac{||x-\widetilde{x}||}{||x||} \approx \nu</math></center>
</math></center>


Ponieważ <math>\displaystyle \widetilde{x}</math> jest dokładnym rozwiązaniem równania z macierzą zaburzoną,
Ponieważ <math>\widetilde{x}</math> jest dokładnym rozwiązaniem równania z macierzą zaburzoną,
<math>\displaystyle \widetilde{A}\widetilde{x} = b</math>, należy ocenić wpływ zaburzenia macierzy na jakość
<math>\widetilde{A}\widetilde{x} = b</math>, należy ocenić wpływ zaburzenia macierzy na jakość
wyniku, a tu już wiemy, że jeśli zaburzenie jest dostatecznie małe (czyli, gdy
wyniku, a tu już wiemy, że jeśli zaburzenie jest dostatecznie małe (czyli, gdy
precyzja arytmetyki jest dostatecznie duża), to  
precyzja arytmetyki jest dostatecznie duża), to  


<center><math>\displaystyle \frac{||x-\widetilde{x}||}{||x||} \approx K\cdot  \mbox{cond} (A)\cdot \nu,
<center><math>\frac{||x-\widetilde{x}||}{||x||} \approx K\cdot  \mbox{cond} (A)\cdot \nu</math>,</center>
</math></center>


a więc ''błąd będzie mały tylko wtedy, gdy uwarunkowanie <math>\displaystyle A</math> będzie niewielkie!'' Dobrym przykładem jest tu macierz Hilberta, która jest symetryczna
a więc ''błąd będzie mały tylko wtedy, gdy uwarunkowanie <math>A</math> będzie niewielkie!'' Dobrym przykładem jest tu macierz Hilberta, która jest symetryczna
i dodatnio określona, lecz mimo to już dla średnich <math>\displaystyle N</math> algorytm eliminacji
i dodatnio określona, lecz mimo to już dla średnich <math>N</math> algorytm eliminacji
Gaussa daje wyniki obarczone stuprocentowym błędem! Potwierdź to
Gaussa daje wyniki obarczone stuprocentowym błędem! Potwierdź to
eksperymentalnie!  
eksperymentalnie!  
Linia 186: Linia 174:
Jeśli  
Jeśli  


<center><math>\displaystyle
<center><math>
   (A+E) z\,=\, b,  
   (A+E) z\,=\, b,  
</math></center>
</math></center>


gdzie <math>\displaystyle \|E\|_p\le K\nu\|A\|_p</math>,
gdzie <math>\|E\|_p\le K\nu\|A\|_p</math>,
to oczywiście dla residuum <math>\displaystyle  r= b-A z</math> mamy
to oczywiście dla residuum <math>r= b-A z</math> mamy


<center><math>\displaystyle
<center><math>
   \| r\|_p\,\le\,K\nu\|A\|_p\| z\|_p.
   \| r\|_p\,\le\,K\nu\|A\|_p\| z\|_p</math></center>
</math></center>


Pokazać, że dla <math>\displaystyle p=1,2,\infty</math> zachodzi też twierdzenie odwrotne, tzn.
Pokazać, że dla <math>p=1,2,\infty</math> zachodzi też twierdzenie odwrotne, tzn.
jeśli spełniony jest powyższy warunek dla residuum, to istnieje macierz pozornych  
jeśli spełniony jest powyższy warunek dla residuum, to istnieje macierz pozornych  
zaburzeń <math>\displaystyle E</math> taka, że <math>\displaystyle \|E\|_p\le K\nu\|A\|_p</math> oraz spełniona jest  
zaburzeń <math>E</math> taka, że <math>\|E\|_p\le K\nu\|A\|_p</math> oraz spełniona jest  
równość <math>\displaystyle (A+E) z\,=\, b</math>.
równość <math>(A+E) z\,=\, b</math>.


Jest to tak zwane <strong>numeryczne kryterium "numerycznej poprawności"</strong>, bo (dla
Jest to tak zwane <strong>numeryczne kryterium "numerycznej poprawności"</strong>, bo (dla
Linia 209: Linia 196:
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Wskazówka </span><div class="mw-collapsible-content" style="display:none">
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Wskazówka </span><div class="mw-collapsible-content" style="display:none">
<div style="font-size:smaller; background-color:#f9fff9; padding: 1em"> Rozpatrzyć  
<div style="font-size:smaller; background-color:#f9fff9; padding: 1em"> Rozpatrzyć  
<math>\displaystyle E= r( \mbox{sgn} \,z_i)_{1\le i\le n}^T/\| z\|_1</math> dla <math>\displaystyle p=1</math>,  
<math>E= r( \mbox{sgn} \,z_i)_{1\le i\le n}^T/\| z\|_1</math> dla <math>p=1</math>,  
<math>\displaystyle E= r z^T/\| z\|_2^2</math> dla <math>\displaystyle p=2</math>, oraz
<math>E= r z^T/\| z\|_2^2</math> dla <math>p=2</math>, oraz
<math>\displaystyle E= r( \mbox{sgn} \,z_k) e_k^T/\| z\|_\infty</math> dla <math>\displaystyle p=\infty</math>,  
<math>E= r( \mbox{sgn} \,z_k) e_k^T/\| z\|_\infty</math> dla <math>p=\infty</math>,  
gdzie <math>\displaystyle k</math> jest indeksem dla którego <math>\displaystyle |z_k|=\| z\|_\infty</math>.  </div>
gdzie <math>k</math> jest indeksem dla którego <math>|z_k|=\| z\|_\infty</math>.  </div>
</div></div>
</div></div>


</div></div>
</div></div>

Aktualna wersja na dzień 21:50, 11 wrz 2023


Normy i uwarunkowanie

<<< 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: Normy macierzowe

Pokazać, że dla macierzy A=(ai,j)i.j=1nRn×n mamy

A1=AT=max1jni=1n|ai,j|

oraz

A=max1inj=1n|ai,j|
Rozwiązanie

Ćwiczenie

Pokaż, że dla macierzy rzeczywistej N×M,

||A||2=max{λ:λ jest wartością własną macierzy ATA}
Wskazówka
Rozwiązanie

Ćwiczenie

Dla wektora x=(xj)j=1nRn, niech rdν(x)=(rdν(xj))j=1n. Pokazać, że

xrdν(x)pνxp

dla 1p.

Rozwiązanie

Ćwiczenie

Dla macierzy A=(ai,j)i,j=1n, niech rdν(A)=(rdν(ai,j))i,j=1n. Pokazać, że

Ardν(A)pνAp,

dla p=1,, oraz

Ardν(A)2Ardν(A)EνAEnνA2
Wskazówka

Ćwiczenie

Czy algorytm eliminacji Gaussa dla Ax=b, gdzie macierz A jest symetryczna i dodatnio określona zawsze da wynik x~ o dużej dokładności, rzędu precyzji arytmetyki?

Wskazówka
Rozwiązanie

Ćwiczenie: Numeryczne kryterium "numerycznej poprawności"

Jeśli

(A+E)z=b,

gdzie EpKνAp, to oczywiście dla residuum r=bAz mamy

rpKνApzp

Pokazać, że dla p=1,2, zachodzi też twierdzenie odwrotne, tzn. jeśli spełniony jest powyższy warunek dla residuum, to istnieje macierz pozornych zaburzeń E taka, że EpKνAp oraz spełniona jest równość (A+E)z=b.

Jest to tak zwane numeryczne kryterium "numerycznej poprawności", bo (dla konkretnych danych) pozwala, wyłącznie na podstawie obliczonych numerycznie wartości, ocenić zaburzenie pozorne macierzy, dla którego numeryczny wynik jest dokładnym rozwiązaniem.

Wskazówka