MN04LAB: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
m Zastępowanie tekstu – „<math> ” na „<math>”
m Zastępowanie tekstu – „,↵</math>” na „</math>,”
 
(Nie pokazano 1 pośredniej wersji utworzonej przez tego samego użytkownika)
Linia 29: Linia 29:
Rzeczywiście, dla pierwszego algorytmu obliczony w <math>fl_\nu</math> wynik <math>\tilde{s}</math> spełnia
Rzeczywiście, dla pierwszego algorytmu obliczony w <math>fl_\nu</math> wynik <math>\tilde{s}</math> spełnia
<center><math>
<center><math>
\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_{-}),
\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>
</math></center>
   
   
gdzie <math>|\epsilon_{a}|, |\epsilon_{b}|, |\epsilon_{-}| \leq \nu</math>. A więc jesteśmy w sytuacji, gdy --- jeśli tylko <math>|a|\approx |b|</math> --- może nastąpić redukcja cyfr przy odejmowaniu...  
gdzie <math>|\epsilon_{a}|, |\epsilon_{b}|, |\epsilon_{-}| \leq \nu</math>. A więc jesteśmy w sytuacji, gdy --- jeśli tylko <math>|a|\approx |b|</math> --- może nastąpić redukcja cyfr przy odejmowaniu...  
Linia 36: Linia 35:
Natomiast drugi algorytm w ogóle nie jest na to czuły,  
Natomiast drugi algorytm w ogóle nie jest na to czuły,  
<center><math>
<center><math>
\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}),
\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>
</math></center>
   
   
gdzie znów <math>|\epsilon_{+}|, |\epsilon_{-}|, |\epsilon_{\times}| \leq \nu</math>.
gdzie znów <math>|\epsilon_{+}|, |\epsilon_{-}|, |\epsilon_{\times}| \leq \nu</math>.
Linia 43: Linia 41:
<center><math>
<center><math>
\tilde{s} = (a-b)(a+b)(1+\epsilon_{-})(1+\epsilon_{+})(1+\epsilon_{\times})=
\tilde{s} = (a-b)(a+b)(1+\epsilon_{-})(1+\epsilon_{+})(1+\epsilon_{\times})=
= (a^2 - b^2)(1+E),
= (a^2 - b^2)(1+E)</math>,</center>
</math></center>
   
   
gdzie <math>|E| \leq 3\nu</math>, algorytm drugi będzie <strong>zawsze</strong> dawał wynik obarczony małym błędem względnym.
gdzie <math>|E| \leq 3\nu</math>, algorytm drugi będzie <strong>zawsze</strong> dawał wynik obarczony małym błędem względnym.
Linia 61: Linia 58:
<center><math>\cos(a,b)\,=\,\frac{\sum_{j=1}^n a_jb_j}
<center><math>\cos(a,b)\,=\,\frac{\sum_{j=1}^n a_jb_j}
       {\sqrt{\Big(\sum_{j=1}^n a_j^2\Big)
       {\sqrt{\Big(\sum_{j=1}^n a_j^2\Big)
             \Big(\sum_{j=1}^n b_j^2\Big)}},
             \Big(\sum_{j=1}^n b_j^2\Big)}}</math>,</center>
</math></center>


jest numerycznie poprawny. Oszacować błąd względny wyniku  
jest numerycznie poprawny. Oszacować błąd względny wyniku  
Linia 78: Linia 74:
<math>x\inR^n</math> jest numerycznie poprawny. Dokładniej,  
<math>x\inR^n</math> jest numerycznie poprawny. Dokładniej,  


<center><math>fl_\nu (\|A x\|_2)\,=\,(A+E) x,
<center><math>fl_\nu (\|A x\|_2)\,=\,(A+E) x</math>,</center>
</math></center>


gdzie <math>\|E\|_2\leq 2(n+2)\sqrt n\nu\|A\|_2</math>. Ponadto, jeśli  
gdzie <math>\|E\|_2\leq 2(n+2)\sqrt n\nu\|A\|_2</math>. Ponadto, jeśli  
Linia 85: Linia 80:


<center><math>|fl_\nu(\|A x\|_2)-\|A x\|_2|\,\leq\,2(n+2)\sqrt{n}\,\nu\,
<center><math>|fl_\nu(\|A x\|_2)-\|A x\|_2|\,\leq\,2(n+2)\sqrt{n}\,\nu\,
   \left(\|A\|_2\|A^{-1}\|_2\right)\,\|A x\|_2.
   \left(\|A\|_2\|A^{-1}\|_2\right)\,\|A x\|_2</math></center>
</math></center>


</div></div>
</div></div>
Linia 103: Linia 97:
<math>f\in F_0</math>  
<math>f\in F_0</math>  


<center><math>|y_{\nu,j}-y_j|\,\le\,K_1\,\nu\,|y_j|, \qquad 1\le j\le n,
<center><math>|y_{\nu,j}-y_j|\,\le\,K_1\,\nu\,|y_j|, \qquad 1\le j\le n</math>,</center>
</math></center>


gdzie <math>y=(y_1,\ldots,y_n)</math>.   
gdzie <math>y=(y_1,\ldots,y_n)</math>.   
Linia 125: Linia 118:
Ponieważ nasze zadanie to wyznaczenie <math>x^* = f^{-1}(0)</math>, to  
Ponieważ nasze zadanie to wyznaczenie <math>x^* = f^{-1}(0)</math>, to  
<center><math>
<center><math>
  \mbox{cond} _{abs} (f^{-1},0) = \frac{1}{f'(x^*)}.
  \mbox{cond} _{abs} (f^{-1},0) = \frac{1}{f'(x^*)}</math></center>
</math></center>


Znaczy to, że im bardziej płaska jest <math>f</math> w otoczeniu pierwiastka <math>x^*</math>, tym
Znaczy to, że im bardziej płaska jest <math>f</math> w otoczeniu pierwiastka <math>x^*</math>, tym

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


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 a,bRn,

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