MN11LAB: Różnice pomiędzy wersjami
Nie podano opisu zmian |
mNie podano opisu zmian |
||
Linia 1: | Linia 1: | ||
<!-- | <!-- | ||
Konwertowane z pliku LaTeX przez latex2mediawiki, zob. http://www.ii.uj.edu.pl/ pawlik1/latex2mediawiki.php | Konwertowane z pliku LaTeX przez latex2mediawiki, zob. http://www.ii.uj.edu.pl/ pawlik1/latex2mediawiki.php. | ||
Niezb�dne rozszerzenia i modyfikacje oryginalnego latex2mediawiki | |||
wprowadzi� przykry@mimuw.edu.pl | |||
--> | --> | ||
= | =Splajny= | ||
{{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 36: | Linia 47: | ||
Możesz korzystać z następującego szablonu w Octave: | Możesz korzystać z następującego szablonu w Octave: | ||
<div | <div style="margin: 1em; padding:1em; color: #006; background-color:#fcfcfc;"><pre>a = 0; b = 10; # długość przedziału | ||
a = 0; b = 10; # długość przedziału | |||
N = 7; # liczba węzłów; | N = 7; # liczba węzłów; | ||
Linia 49: | Linia 58: | ||
X = linspace(a,b,256); # punkty do wykresu | X = linspace(a,b,256); # punkty do wykresu | ||
plot(X,[sin(X);ppval(s,X);polyval(w,X)]); | plot(X,[sin(X);ppval(s,X);polyval(w,X)]); | ||
</pre></div> | </pre></div> | ||
Polecam przeanalizowanie przypadku, gdy <math>\displaystyle N=30</math>. | Polecam przeanalizowanie przypadku, gdy <math>\displaystyle N=30</math>. | ||
Linia 63: | Linia 72: | ||
<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"> | ||
Macierz jest trójdiagonalna i diagonalnie dominująca, więc albo zaimplementujesz własną metodę przeganiania, albo skorzystasz z <code>DGBSV</code> z LAPACKa. Decyzję podejmij po przeprowadzeniu testów porównawczych czasów wykonania obu wariantów. | Macierz jest trójdiagonalna i diagonalnie dominująca, więc albo zaimplementujesz własną metodę przeganiania, albo skorzystasz z <code style="color: #903">DGBSV</code> z LAPACKa. Decyzję podejmij po przeprowadzeniu testów porównawczych czasów wykonania obu wariantów. | ||
</div></div></div> | </div></div></div> | ||
Linia 74: | Linia 83: | ||
sklejanych, tzn. takich, w których warunki interpolacji uzupełnione są warunkiem | sklejanych, tzn. takich, w których warunki interpolacji uzupełnione są warunkiem | ||
<center><math>\displaystyle s'(x_0) = s'(x_N)\\ | <center><math>\displaystyle \aligned s'(x_0) &= s'(x_N)\\ | ||
s''(x_0) = s''(x_N). | s''(x_0) &= s''(x_N). | ||
</math></center> | \endaligned</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:# | <div style="font-size:smaller; background-color:#f9fff9; padding: 1em"> Zastosuj technikę dowodową podobną do tej z przypadku naturalnych | ||
funkcji sklejanych. </div> | funkcji sklejanych. </div> | ||
</div></div> | |||
</div></div> | |||
<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> | |||
<div class="exercise"> | |||
Sprawdź eksperymentalnie, jaka aproksymacja funkcji <math>\displaystyle f(x) = x\sin(\frac{1}{x})</math> (pamiętaj, <math>\displaystyle f(0)=0</math>) jest "wizualnie" lepsza na odcinku <math>\displaystyle [0,5]</math>: | |||
* wielomianem interpolacyjnym, opartym na <math>\displaystyle N</math> węzłach równoodległych | |||
* wielomianem interpolacyjnym, opartym na <math>\displaystyle N</math> węzłach Czebyszewa | |||
* splajnem interpolacyjnym stopnia 1, opartym na <math>\displaystyle N</math> węzłach równoodległych | |||
* naturalnym splajnem kubicznym interpolacyjnym, opartym na <math>\displaystyle N</math> węzłach równoodległych | |||
Eksperymentuj z różnymi wartościami <math>\displaystyle N</math>. | |||
<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"> Samo sprawdzenie najprościej wykonać w Octave; jeśli sumiennie rozwiązywałeś dotychczasowe zadania, powinieneś też dysponować zestawem funkcji generującym większość wymaganych w zadaniu interpolantów. </div> | |||
</div></div> | </div></div> | ||
</div></div> | </div></div> |
Wersja z 21:36, 29 wrz 2006
Splajny
<<< 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
Niech i Parser nie mógł rozpoznać (nieznana funkcja „\inR”): {\displaystyle \displaystyle c\inR} . Wyznacz współczynniki kubicznej funkcji sklejanej opartej na pięciu węzłach i spełniającej dodatkowo następujące warunki interpolacyjne:
Ćwiczenie
Porównaj ze sobą interpolację wielomianową i splajnową opartą na węzłach.
Rozpatrz funkcję i następujące przypadki:
- węzły równoodległe lub nie;
- odcinek krótki lub długi;
- węzłów mało lub dużo.
Ćwiczenie
Zaimplementuj w C funkcje analogiczne do Octave'owskich spline
i ppval
. Pamiętaj, by skorzystać z efektywnego narzędzia do rozwiązywania układów równań!
Ćwiczenie: Kubiczne splajny okresowe są dobrze określone
Pokaż jednoznaczność rozwiązania zadania interpolacyjnego w przypadku kubicznych okresowych funkcji sklejanych, tzn. takich, w których warunki interpolacji uzupełnione są warunkiem
Ćwiczenie
Sprawdź eksperymentalnie, jaka aproksymacja funkcji (pamiętaj, ) jest "wizualnie" lepsza na odcinku :
- wielomianem interpolacyjnym, opartym na węzłach równoodległych
- wielomianem interpolacyjnym, opartym na węzłach Czebyszewa
- splajnem interpolacyjnym stopnia 1, opartym na węzłach równoodległych
- naturalnym splajnem kubicznym interpolacyjnym, opartym na węzłach równoodległych
Eksperymentuj z różnymi wartościami .