MN13LAB: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Dorota (dyskusja | edycje)
Nie podano opisu zmian
Przykry (dyskusja | edycje)
Nie podano opisu zmian
Linia 1: Linia 1:
<!--  
<!--  
Konwertowane  z pliku LaTeX przez latex2mediawiki, zob. http://www.ii.uj.edu.pl/&nbsp;pawlik1/latex2mediawiki.php
Konwertowane  z pliku LaTeX przez latex2mediawiki, zob. http://www.ii.uj.edu.pl/&nbsp;pawlik1/latex2mediawiki.php.
Niezb�dne rozszerzenia i modyfikacje oryginalnego latex2mediawiki
wprowadzi� przykry@mimuw.edu.pl
-->
-->
   
   
=Ćwiczenia: zagadnienie własne=
=Zagadnienie własne=
 
{{powrot |Metody numeryczne | do strony głównej
przedmiotu <strong>Metody numeryczne</strong>}}
 
<div class="mw-collapsible mw-made=collapsible mw-collapsed">
Oglądaj wskazówki i rozwiązania __SHOWALL__<br>
Ukryj wskazówki i rozwiązania __HIDEALL__
</div>


<div style="margin-top:1em; padding-top,padding-bottom:1em;">
<div style="margin-top:1em; padding-top,padding-bottom:1em;">
Linia 13: Linia 24:


<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:#efe"> Pomyśl nie tylko o koszcie wyznaczenia wyznacznika dla dużych <math>\displaystyle N</math> </div>
<div style="font-size:smaller; background-color:#f9fff9; padding: 1em"> Pomyśl nie tylko o koszcie wyznaczenia wyznacznika dla dużych <math>\displaystyle N</math>. </div>
</div></div>
</div></div>


Linia 32: Linia 43:
lub perfidny wielomian Wilkinsona. Dla macierzy <math>\displaystyle B</math> polecenia Octave dają
lub perfidny wielomian Wilkinsona. Dla macierzy <math>\displaystyle B</math> polecenia Octave dają


<div class="output" style="background-color:#e0e8e8; padding:1em"><pre>
<div style="font-family: monospace; white-space: pre; border-style: dashed; border-width: thin; border-color: black; margin: 1em; padding:1em; color: #444; background-color:#fdfdfd;"><nowiki>octave:1> format short e
octave:1> format short e
octave:2> a = sqrt(eps)/2
octave:2> a = sqrt(eps)/2
a =  7.4506e-09
a =  7.4506e-09
Linia 54: Linia 63:
   1.0000e+00 + 8.2712e-09i
   1.0000e+00 + 8.2712e-09i
   1.0000e+00 - 8.2712e-09i
   1.0000e+00 - 8.2712e-09i
</pre></div>
</nowiki></div>
    
    
Z kolei w MATLABie dostajemy, trochę bardziej w zgodzie z intuicją,
Z kolei w MATLABie dostajemy, trochę bardziej w zgodzie z intuicją,
<div class="output" style="background-color:#e0e8e8; padding:1em"><pre>
<div style="font-family: monospace; white-space: pre; border-style: dashed; border-width: thin; border-color: black; margin: 1em; padding:1em; color: #444; background-color:#fdfdfd;"><nowiki>>> format short e
>> format short e
>> a = sqrt(eps)/2
>> a = sqrt(eps)/2


Linia 92: Linia 99:
     0
     0
     0
     0
</pre></div>
</nowiki></div>
    
    
</div></div></div>
</div></div></div>
Linia 100: Linia 107:
<div class="exercise">
<div class="exercise">


Udowodnij [[thm:gerszgorin|Dodaj link: twierdzenie Gerszgorina]].
Udowodnij [[MN13#Gerszgorina, o lokalizacji widma macierzy|twierdzenie Gerszgorina]].


<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:#efe"> Rozpisz <math>\displaystyle Ax = \lambda x</math>, wybierając taką
<div style="font-size:smaller; background-color:#f9fff9; padding: 1em"> Rozpisz <math>\displaystyle Ax = \lambda x</math>, wybierając taką
współrzędną <math>\displaystyle k</math>, dla której <math>\displaystyle ||x||_\infty = |x_k|</math>. </div>
współrzędną <math>\displaystyle k</math>, dla której <math>\displaystyle ||x||_\infty = |x_k|</math>. </div>
</div></div>
</div></div>
Wskaż, jak wykorzystać to twierdzenie do wykonania szybkiego testu, czy dana  macierz jest nieosobliwa.


</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"> 
Dowód twierdzenia znajdziesz w rozdziale 5.2
* <span style="font-variant:small-caps">D. Kincaid, W. Cheney</span>, <cite>Analiza numeryczna</cite>, Wydawnictwa Naukowo-Techniczne, Warszawa, 2006.
Twierdzenie Gerszgorina pozwala dość tanio, bo kosztem <math>\displaystyle O(N^2)</math>, oszacować odległość wartości własnych macierzy od zera. Jeśli więc w macierzy <math>\displaystyle A</math> zachodzi
<center><math>\displaystyle |a_{ii}| > \sum_{j \neq i} |a_{ij}|, \qquad \forall i,
</math></center>
to oczywiście <math>\displaystyle \lambda = 0</math> nie może być wartością własną <math>\displaystyle A</math>, a skoro tak, to <math>\displaystyle A</math> musi być nieosobliwa. Naturalnie, jeśli powyższe kryterium nie jest spełnione, kwestia (nie)osobliwości macierzy pozostaje otwarta.
Zauważmy, że powyższe kryterium to nic innego, jak znana nam definicja macierzy diagonalnie dominującej: właśnie z twierdzenia Gerszgorina wynika, że <strong>macierz diagonalnie dominująca jest nieosobliwa</strong>.
</div></div></div>


<div style="margin-top:1em; padding-top,padding-bottom:1em;">
<div style="margin-top:1em; padding-top,padding-bottom:1em;">
Linia 115: Linia 139:
Czy warunek normowania wektora <math>\displaystyle x_k</math> jest konieczny, gdy metodę potęgową stosuje
Czy warunek normowania wektora <math>\displaystyle x_k</math> jest konieczny, gdy metodę potęgową stosuje
się do macierzy Google'a?
się do macierzy Google'a?
</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">   
Nie, bo dominująca wartość własna macierzy Google'a jest równa 1
Nie, bo dominująca wartość własna macierzy Google'a jest równa 1.
</div></div></div>
</div></div></div>


<div style="margin-top:1em; padding-top,padding-bottom:1em;">
<div style="margin-top:1em; padding-top,padding-bottom:1em;">
<span  style="display: block; background-color:#fefeee; border-bottom: 1px solid #E5E5E5; line-height: 1.1em; padding-bottom: 0.2em; font-variant:small-caps; color:#1A6ABF;">Ćwiczenie: Jakość kryteriów stopu w metodzie potęgowej</span>  
<span  style="display: block; background-color:#fefeee; border-bottom: 1px solid #E5E5E5; line-height: 1.1em; padding-bottom: 0.2em; font-variant:small-caps; color:#1A6ABF;">Ćwiczenie: Wyznaczanie najmniejszej wartości własnej</span>  
<div class="exercise">
<div class="exercise">


Porównaj ze sobą kryteria małej poprawki i małego residuum dla metody potęgowej.
Jak wyznaczyć <strong>najmniejszą co do modułu</strong> wartość własną macierzy symetrycznej <math>\displaystyle A</math> i
Jak zmieni się odpowiedź, gdy wiadomo, że dominującą wartością własną jest 1?
odpowiadający jej wektor własny przy użyciu odwrotnej metody potęgowej?
 
A jeśli macierz <math>\displaystyle A</math> jest (numerycznie) osobliwa?  
</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">   
gdyż wtedy
Zastosować odwrotną metodę potęgową z przesunięciem <math>\displaystyle \sigma = 0</math>. Kłopoty mogą wystąpić, gdy jest kilka takich wektorów własnych (na przykład, <math>\displaystyle A</math> jest macierzą obrotu).


<center><math>\displaystyle ||x_k - x_{k-1}|| = ||Ax_{k-1}/||Ax_{k-1}||_\infty - x_{k-1}|| \approx
Jeśli macierz <math>\displaystyle A</math> jest (numerycznie) osobliwa, należy zastosować odwrotną metodę potęgową z przesunięciem <math>\displaystyle \sigma = O(\nu)</math>.
1/|\lambda_1| ||Ax_{k-1}
</div></div></div>
- |\lambda_1| x_{k-1}||
</math></center>


czyli wielkość poprawki mierzy wielkość residuum. 
<!--
</div></div></div>


<div style="margin-top:1em; padding-top,padding-bottom:1em;">
<div style="margin-top:1em; padding-top,padding-bottom:1em;">
<span  style="display: block; background-color:#fefeee; border-bottom: 1px solid #E5E5E5; line-height: 1.1em; padding-bottom: 0.2em; font-variant:small-caps; color:#1A6ABF;">Ćwiczenie: Wyznaczanie najmniejszej wartości własnej</span>  
<span  style="display: block; background-color:#fefeee; border-bottom: 1px solid #E5E5E5; line-height: 1.1em; padding-bottom: 0.2em; font-variant:small-caps; color:#1A6ABF;">Ćwiczenie: Wielomian Wilkinsona na zimno</span>  
<div class="exercise">
<div class="exercise">


Jak wyznaczyć <strong>najmniejszą co do modułu</strong> wartość własną macierzy symetrycznej <math>\displaystyle A</math> i
Wyjaśnij, skąd biorą się różnice w wyznaczonych wartościach wielomianu Wilkinsona <math>\displaystyle w(x) = (x-1)\cdots (x-20)</math>, w zależności od tego, czy jest on wyrażony w bazie naturalnej, czy też w bazie Newtona:
odpowiadający jej wektor własny przy użyciu odwrotnej metody potęgowej?
 
[[Image:MNwielomianwilkinsona.png|thumb|550px|center|Wykres wielomianu Wilkinsona (reprezentowanego przez współczynniki w bazie naturalnej bądź w bazie Newtona)  na przedziale <math>\displaystyle [10,15]</math>]]


A jeśli macierz <math>\displaystyle A</math> jest (numerycznie) osobliwa?
</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"Zastosować odwrotną metodę potęgową z przesunięciem <math>\displaystyle \sigma = 0</math>. Kłopoty mogą wystąpić, gdy jest kilka takich wektorów własnych (na przykład, <math>\displaystyle A</math> jest macierzą obrotu).
-->
 
   
Jeśli macierz <math>\displaystyle A</math> jest (numerycznie) osobliwa, należy zastosować odwrotną metodę potęgową z przesunięciem <math>\displaystyle \sigma = O(\epsilon)</math>.
</div></div></div>
 
<div style="margin-top:1em; padding-top,padding-bottom:1em;">
<div style="margin-top:1em; padding-top,padding-bottom:1em;">
<span  style="display: block; background-color:#fefeee; border-bottom: 1px solid #E5E5E5; line-height: 1.1em; padding-bottom: 0.2em; font-variant:small-caps; color:#1A6ABF;">Ćwiczenie</span>  
<span  style="display: block; background-color:#fefeee; border-bottom: 1px solid #E5E5E5; line-height: 1.1em; padding-bottom: 0.2em; font-variant:small-caps; color:#1A6ABF;">Ćwiczenie</span>  
Linia 161: Linia 180:


Podaj sposób efektywnej implementacji metody odwrotnej potęgowej dla macierzy
Podaj sposób efektywnej implementacji metody odwrotnej potęgowej dla macierzy
gęstych. Wykonaj ją
gęstych. Wykonaj ją korzystając z właściwych procedur LAPACKa (lub MATLABa).
korzystając z właściwych procedur LAPACKa (lub MATLABa).


<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:#efe"> Rzecz tkwi w tym, by jak najmniej napracować się przy rozwiązywaniu
<div style="font-size:smaller; background-color:#f9fff9; padding: 1em"> Rzecz tkwi w tym, by jak najmniej napracować się przy rozwiązywaniu
kolejnych układów
kolejnych układów
równań. </div>
równań. </div>
Linia 171: Linia 189:


<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:#efe"> W kolejnych iteracjach metody zmienia się tylko prawa strona układu
<div style="font-size:smaller; background-color:#f9fff9; padding: 1em"> W kolejnych iteracjach metody zmienia się tylko prawa strona układu
równań! </div>
równań! </div>
</div></div>
</div></div>
Linia 183: Linia 201:
iteracji z <math>\displaystyle O(N^3)</math> do <math>\displaystyle O(N^2)</math>.
iteracji z <math>\displaystyle O(N^3)</math> do <math>\displaystyle O(N^2)</math>.
</div></div></div>
</div></div></div>
<!--


<div style="margin-top:1em; padding-top,padding-bottom:1em;">
<div style="margin-top:1em; padding-top,padding-bottom:1em;">
Linia 193: Linia 213:
</div></div>
</div></div>


-->
<div style="margin-top:1em; padding-top,padding-bottom:1em;">
<div style="margin-top:1em; padding-top,padding-bottom:1em;">
<span  style="display: block; background-color:#fefeee; border-bottom: 1px solid #E5E5E5; line-height: 1.1em; padding-bottom: 0.2em; font-variant:small-caps; color:#1A6ABF;">Ćwiczenie</span>  
<span  style="display: block; background-color:#fefeee; border-bottom: 1px solid #E5E5E5; line-height: 1.1em; padding-bottom: 0.2em; font-variant:small-caps; color:#1A6ABF;">Ćwiczenie</span>  
Linia 204: Linia 226:
wpływa na zmianę jej wartości własnych.
wpływa na zmianę jej wartości własnych.
</div></div>
</div></div>
<!--


<div style="margin-top:1em; padding-top,padding-bottom:1em;">
<div style="margin-top:1em; padding-top,padding-bottom:1em;">
Linia 209: Linia 233:
<div class="exercise">
<div class="exercise">


Wyznacz numerycznie zera [[example:wilkinson|Dodaj link: wielomianu Wilkinsona]] korzystając z
Wyznacz numerycznie zera \link{example:wilkinson}{wielomianu Wilkinsona}korzystając z
jakiejś metody rozwiązywania pełnego zagadnienia własnego i zbadaj, jak drobne
jakiejś metody rozwiązywania pełnego zagadnienia własnego i zbadaj, jak drobne
zmiany w jego współczynnikach (w bazie naturalnej) wpływają na wynik.
zmiany w jego współczynnikach (w bazie naturalnej) wpływają na wynik.
</div></div>
</div></div>


-->
<div style="margin-top:1em; padding-top,padding-bottom:1em;">
<div style="margin-top:1em; padding-top,padding-bottom:1em;">
<span  style="display: block; background-color:#fefeee; border-bottom: 1px solid #E5E5E5; line-height: 1.1em; padding-bottom: 0.2em; font-variant:small-caps; color:#1A6ABF;">Ćwiczenie: Rozwiązywanie zagadnienia własnego metodą Newtona</span>  
<span  style="display: block; background-color:#fefeee; border-bottom: 1px solid #E5E5E5; line-height: 1.1em; padding-bottom: 0.2em; font-variant:small-caps; color:#1A6ABF;">Ćwiczenie: Rozwiązywanie zagadnienia własnego metodą Newtona</span>  
Linia 221: Linia 247:
nieliniowych
nieliniowych


<center><math>\displaystyle \aligned Ax - \lambda x &= 0,
<center><math>\displaystyle \aligned Ax - \lambda x &= 0,\\
\frac{1}{2}x^Tx - 1 = 0,
\frac{1}{2}x^Tx - 1 = 0,
\endaligned</math></center>
\endaligned</math></center>


który można rozwiązać np. metodą Newtona. Zapisz wzory takiej iteracjii porównaj
który można rozwiązać np. [[MN02#Wielowymiarowa metoda Newtona|wielowymiarową metodą Newtona]]. Zapisz wzory takiej iteracji i porównaj tę metodę z metodą RQI.
tę metodę z metodą RQI.


<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:#efe"> Generalnie, RQI jest lepsza. Metodę Newtona warto zmodyfikować tak, by na
<div style="font-size:smaller; background-color:#f9fff9; padding: 1em"> Generalnie, RQI jest lepsza. Metodę Newtona warto zmodyfikować tak, by na
każdym jej kroku warunek normowania wektora <math>\displaystyle x</math> był spełniony. </div>
każdym jej kroku warunek normowania wektora <math>\displaystyle x</math> był spełniony, dzięki czemu zbieżność będzie szybsza. </div>
</div></div>
</div></div>


Linia 242: Linia 267:
eksperymentu, że faktycznie odwrotnej metodzie potęgowej nie przeszkadza, że
eksperymentu, że faktycznie odwrotnej metodzie potęgowej nie przeszkadza, że
macierz <math>\displaystyle A - \sigma I</math> jest prawie osobliwa.
macierz <math>\displaystyle A - \sigma I</math> jest prawie osobliwa.
potęgowej
</div></div>
</div></div>


Linia 248: Linia 272:
Przykładowy program mógłby wyglądać następująco;
Przykładowy program mógłby wyglądać następująco;


<div class="code" style="background-color:#e8e8e8; padding:1em"><pre>
<div style="margin: 1em; padding:1em; color: #006; background-color:#fcfcfc;"><pre>N = 51;
N = 51;
A = rand(N,N);  
A = rand(N,N);  
[V, L] = eig(A);
[V, L] = eig(A);
</pre></div>
</pre></div>  
   
   
Najpierw szykujemy sobie losową macierz, a potem wyznaczmy jej pary własne.
Najpierw szykujemy sobie losową macierz, a potem wyznaczmy jej pary własne.
Aby zagwarantować sobie, że istnieją rzeczywiste wartości własne, bierzemy
Aby zagwarantować, że istnieją rzeczywiste wartości własne, bierzemy
macierz nieparzystego wymiaru <math>\displaystyle N</math>.
macierz nieparzystego wymiaru <math>\displaystyle N</math> (dlaczego?).


Potem definiujemy funkcję realizującą iterację odwrotną.
Potem definiujemy funkcję realizującą iterację odwrotną.


<div class="code" style="background-color:#e8e8e8; padding:1em"><pre>
<div style="margin: 1em; padding:1em; color: #006; background-color:#fcfcfc;"><pre>function x = finvit(A,x0,s)
function x = finvit(A,x0,s)
N = size(A,1); x = x0;
N = size(A,1); x = x0;
for i = 1:3
for i = 1:3
Linia 270: Linia 290:
end
end
end
end
</pre></div>
</pre></div>  
   
   
Nie jesteśmy tu eleganccy i za każdym obrotem pętli dokonujemy ponownego
Nie jesteśmy tu eleganccy i za każdym obrotem pętli dokonujemy ponownego
Linia 282: Linia 302:
Dalej, losujemy (rzeczywistą) parę własną <math>\displaystyle A</math>:
Dalej, losujemy (rzeczywistą) parę własną <math>\displaystyle A</math>:


<div class="code" style="background-color:#e8e8e8; padding:1em"><pre>
<div style="margin: 1em; padding:1em; color: #006; background-color:#fcfcfc;"><pre>reals = find(imag(diag(L))==0);
reals = find(imag(diag(L))==0);
k = floor(rand(1,1)*size(reals,1))+1;
k = floor(rand(1,1)*size(reals,1))+1;
K = reals(k);
K = reals(k);
X = V(:,K); #wektor własny, wartość własna to L(K,K)
X = V(:,K); #wektor własny, wartość własna to L(K,K)
</pre></div>
</pre></div>  
   
   
i lekko zaburzamy wartość własną aby dostać
i lekko zaburzamy wartość własną, aby dostać
<math>\displaystyle \sigma = \lambda(1+\sqrt{\epsilon_{ \mbox{mach} }})</math>. Startujemy z losowego wektora <math>\displaystyle x_0</math> i
<math>\displaystyle \sigma = \lambda(1+\sqrt{\epsilon_{ \mbox{mach} }})</math>. Startujemy z losowego wektora <math>\displaystyle x_0</math> i
wykonujemy 3 iteracje odwrotnej metody potęgowej.
wykonujemy 3 iteracje odwrotnej metody potęgowej.


<div class="code" style="background-color:#e8e8e8; padding:1em"><pre>
<div style="margin: 1em; padding:1em; color: #006; background-color:#fcfcfc;"><pre>s = L(K,K)*(1+sqrt(eps)); x = rand(N,1);
s = L(K,K)*(1+sqrt(eps)); x = rand(N,1);


fprintf(stderr,'Szukamy K, L(K,K), norm(A*X - L(K,K)*X) );
fprintf(stderr,'Szukamy %d-tej wartości, \n\t %e, z residuum %e\n',
K, L(K,K), norm(A*X - L(K,K)*X) );


x = finvit(A,x,s); l = x'*A*x;
x = finvit(A,x,s); l = x'*A*x;
</pre></div>
</pre></div>  
   
   
Wyniki są faktycznie zachęcające:
Wyniki są faktycznie zachęcające:


<div class="output" style="background-color:#e0e8e8; padding:1em"><pre>
<div style="font-family: monospace; white-space: pre; border-style: dashed; border-width: thin; border-color: black; margin: 1em; padding:1em; color: #444; background-color:#fdfdfd;"><nowiki>octave:1> invit
octave:1> invit
Szukamy 51-tej wartości,
Szukamy 51-tej wartości,
         2.884323e-01, z residuum 4.298045e-15
         2.884323e-01, z residuum 4.298045e-15
Linia 314: Linia 329:
         2.884323e-01, z residuum 4.789183e-16.
         2.884323e-01, z residuum 4.789183e-16.
Uwarunkowanie użytej macierzy: 4.708990e+10
Uwarunkowanie użytej macierzy: 4.708990e+10
</pre></div>
</nowiki></div>
   
   
Jak widać, oryginalny wynik uzyskany z procedury <code>eig</code> udało się nawet
Jak widać, oryginalny wynik uzyskany z procedury <code style="color: #006">eig</code> udało się nawet
trochę poprawić!
trochę poprawić!


</div></div></div>
</div></div></div>
[[Image:MNwielomianwilkinsona.png]]

Wersja z 21:44, 29 wrz 2006


Zagadnienie własne

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

Dlaczego wartości własnych macierzy nie należy szukać jako miejsc zerowych wielomianu charakterystycznego?

Wskazówka
Rozwiązanie

Ćwiczenie

Udowodnij twierdzenie Gerszgorina.

Wskazówka

Wskaż, jak wykorzystać to twierdzenie do wykonania szybkiego testu, czy dana macierz jest nieosobliwa.

Rozwiązanie

Ćwiczenie

Czy warunek normowania wektora xk jest konieczny, gdy metodę potęgową stosuje się do macierzy Google'a?

Rozwiązanie

Ćwiczenie: Wyznaczanie najmniejszej wartości własnej

Jak wyznaczyć najmniejszą co do modułu wartość własną macierzy symetrycznej A i odpowiadający jej wektor własny przy użyciu odwrotnej metody potęgowej?

A jeśli macierz A jest (numerycznie) osobliwa?

Rozwiązanie


Ćwiczenie

Podaj sposób efektywnej implementacji metody odwrotnej potęgowej dla macierzy gęstych. Wykonaj ją korzystając z właściwych procedur LAPACKa (lub MATLABa).

Wskazówka
Wskazówka
Rozwiązanie


Ćwiczenie

Zbadaj, jak bardzo zmiana zera na ϵ0 w macierzy

(a10b)

wpływa na zmianę jej wartości własnych.


Ćwiczenie: Rozwiązywanie zagadnienia własnego metodą Newtona

Parę własną (λ,x) można scharakteryzować jako rozwiązanie układu równań nieliniowych

Parser nie mógł rozpoznać (nieznana funkcja „\aligned”): {\displaystyle \displaystyle \aligned Ax - \lambda x &= 0,\\ \frac{1}{2}x^Tx - 1 = 0, \endaligned}

który można rozwiązać np. wielowymiarową metodą Newtona. Zapisz wzory takiej iteracji i porównaj tę metodę z metodą RQI.

Wskazówka

Ćwiczenie

Napisz program w Octave, w którym sprawdzisz w warunkach kontrolowanego eksperymentu, że faktycznie odwrotnej metodzie potęgowej nie przeszkadza, że macierz AσI jest prawie osobliwa.

Rozwiązanie