MN04LAB: 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.
Niezb�dne rozszerzenia i modyfikacje oryginalnego latex2mediawiki
wprowadzi� przykry@mimuw.edu.pl
-->
=Uwarunkowanie zadania i algorytmy numerycznie poprawne.=
{{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;">
<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 9: Linia 26:
<math>\displaystyle rd_\nu(a)=a</math> i <math>\displaystyle rd_\nu(b)=b</math>.  
<math>\displaystyle rd_\nu(a)=a</math> i <math>\displaystyle rd_\nu(b)=b</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"> 
Rzeczywiście, dla pierwszego algorytmu obliczony w <math>\displaystyle fl_\nu</math> wynik <math>\displaystyle \tilde{s}</math> spełnia
<center><math>\displaystyle
\tilde{s} = fl_\nu(fl_\nu(a\cdot a)-fl_\nu(b\cdot b)) = (a^2(1+\epsilon_a) - b^2(1+\epsilon_b))(1+\epsilon_{-}),
</math></center>
gdzie <math>\displaystyle |\epsilon_{a}|, |\epsilon_{b}|, |\epsilon_{-}| \leq \nu</math>. A więc jesteśmy w sytuacji, gdy --- jeśli tylko <math>\displaystyle |a|\approx |b|</math> --- może nastąpić redukcja cyfr przy odejmowaniu...
Natomiast drugi algorytm w ogóle nie jest na to czuły,
<center><math>\displaystyle
\tilde{s} = fl_\nu(fl_\nu(a - b) \times fl_\nu(a + b)) = ((a-b)(1+\epsilon_{-}) \cdot (a+b)(1+\epsilon_{+}))(1+\epsilon_{\times}),
</math></center>
gdzie znów <math>\displaystyle |\epsilon_{+}|, |\epsilon_{-}|, |\epsilon_{\times}| \leq \nu</math>.
Ponieważ ostatecznie
<center><math>\displaystyle
\tilde{s} = (a-b)(a+b)(1+\epsilon_{-})(1+\epsilon_{+})(1+\epsilon_{\times})=
= (a^2 - b^2)(1+E),
</math></center>
gdzie <math>\displaystyle |E| \leq 3\nu</math>, algorytm drugi będzie <strong>zawsze</strong> dawał wynik obarczony małym błędem względnym.
Zwróć uwagę na istotną rolę przyjętego założenia, że <math>\displaystyle a</math> i <math>\displaystyle b</math> są liczbami maszynowymi, reprezentowanymi dokładnie w <math>\displaystyle fl_\nu</math>. W praktyce obliczeniowej,  najczęściej właśnie z takimi danymi będziemy się spotykać...
</div></div></div>


<div style="margin-top:1em; padding-top,padding-bottom:1em;">
<div style="margin-top:1em; padding-top,padding-bottom:1em;">
Linia 25: Linia 68:
w <math>\displaystyle fl_\nu</math>.  
w <math>\displaystyle fl_\nu</math>.  
</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 65: Linia 110:
</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 86: Linia 133:
miejsca zerowego.
miejsca zerowego.


Zauważ, że dla wielokrotnych miejsc zerowych, <math>\displaystyle  \mbox{cond} _{abs} (f^{-1},0) = \infty</math>.
[[Image:MNnonlinearcond2.png|thumb|550px|center|Gdy trochę zaburzymy wartości funkcji <math>\displaystyle f</math>, dobrze uwarunkowane miejsce zerowe nie przemieści się zbyt daleko od miejsca zerowego <math>\displaystyle f</math>.]]
Zgadza się to z intuicją, bo może się zdarzyć, że nawet minimalne zaburzenie <math>\displaystyle f</math>
 
spowoduje, że miejsc zerowych po prostu nie będzie...
Zauważ, dla wielokrotnych miejsc zerowych, <math>\displaystyle  \mbox{cond} _{abs} (f^{-1},0) = \infty</math>. Zgadza się to z intuicją, bo może się zdarzyć, że nawet minimalne zaburzenie <math>\displaystyle f</math>
spowoduje, miejsc zerowych po prostu nie będzie...
 
[[Image:MNnonlinearcond4.png|thumb|550px|center|Gdy trochę zaburzymy wartości funkcji <math>\displaystyle f</math>, źle  uwarunkowane miejsce zerowe może przemieścić się bardzo daleko od miejsca zerowego <math>\displaystyle f</math>.]]
 
</div></div></div>
</div></div></div>

Wersja z 21:04, 29 wrz 2006


Uwarunkowanie zadania i algorytmy numerycznie poprawne.

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

Aby obliczyć S(a,b)=a2b2 można zastosować dwa algorytmy: 𝐀𝐋𝐆1(a,b)=a*ab*b oraz 𝐀𝐋𝐆2(a,b)=(a+b)*(ab). Pokazać, że oba algorytmy są numerycznie poprawne, ale drugi z nich wywołuje mniejszy błąd względny wyniku w przypadku, gdy rdν(a)=a i rdν(b)=b.

Rozwiązanie

Ćwiczenie

Pokazać, że naturalny algorytm obliczania cosinusa kąta między dwoma wektorami Parser nie mógł rozpoznać (nieznana funkcja „\inR”): {\displaystyle \displaystyle a, b\inR^n} ,

cos(a,b)=j=1najbj(j=1naj2)(j=1nbj2),

jest numerycznie poprawny. Oszacować błąd względny wyniku w flν.


Ćwiczenie

Podaj przykład funkcji f, której miejsce zerowe x* ma wspólczynnik uwarunkowania

  • mały
  • duży
Rozwiązanie