MN07LAB: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
m Zastępowanie tekstu – „\displaystyle ” na „”
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>


Linia 36: Linia 36:
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 64:
<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\}.
Linia 71: Linia 71:


<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 78:


<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 107:
<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>


Linia 128: Linia 128:
<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>
Linia 150: Linia 150:
<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 160:


<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 186:
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 209:
<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>

Wersja z 08:42, 28 sie 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