MN09LAB: Różnice pomiędzy wersjami
Nie podano opisu zmian |
mNie podano opisu zmian |
||
Linia 80: | Linia 80: | ||
Oto nasze wyniki: | Oto nasze wyniki: | ||
<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> | Dla <math>\displaystyle x^n</math> na <math>\displaystyle [0,1]</math> | ||
<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>2.2204e-16 0 | |||
</nowiki></div> | |||
Dla <math>\displaystyle x^{n+1}</math> na <math>\displaystyle [0,1]</math> | Dla <math>\displaystyle x^{n+1}</math> na <math>\displaystyle [0,1]</math> | ||
<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>1.1112e-04 2.1857e-04 | |||
</nowiki></div> | |||
Dla <math>\displaystyle \sin(x)</math> na <math>\displaystyle [0,\pi]</math> | Dla <math>\displaystyle \sin(x)</math> na <math>\displaystyle [0,\pi]</math> | ||
<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>1.4338e-09 5.4208e-09 | |||
</nowiki></div> | |||
Dla <math>\displaystyle \sin(x)</math> na <math>\displaystyle [0,n\,\pi]</math> | Dla <math>\displaystyle \sin(x)</math> na <math>\displaystyle [0,n\,\pi]</math> | ||
<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>1.00000 296.51659 | |||
</nowiki></div> | |||
Dla <math>\displaystyle x^{n+1}</math> na <math>\displaystyle [0,n\,\pi]</math> | Dla <math>\displaystyle x^{n+1}</math> na <math>\displaystyle [0,n\,\pi]</math> | ||
<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>6.0784e+06 1.1956e+07 | |||
</nowiki></div> | </nowiki></div> | ||
Linia 183: | Linia 191: | ||
gdyż wprowadza współczynniki dwumianu Newtona, które łatwo obliczać. | gdyż wprowadza współczynniki dwumianu Newtona, które łatwo obliczać. | ||
</div></div></div> | </div></div></div> | ||
Linia 219: | Linia 215: | ||
|+ <span style="font-variant:small-caps"> </span> | |+ <span style="font-variant:small-caps"> </span> | ||
|- | |- | ||
| <math>\displaystyle N=0</math> || 1 || || || || | | <math>\displaystyle N=0</math> || 1 || || || || | ||
|- | |- | ||
| <math>\displaystyle N=1</math> || 1 || -1 || || || | | <math>\displaystyle N=1</math> || 1 || -1 || || || | ||
|- | |- | ||
| <math>\displaystyle N=2</math> || 1 || -2 || 1 || || | | <math>\displaystyle N=2</math> || 1 || -2 || 1 || || | ||
|- | |- | ||
| <math>\displaystyle N=3</math> || 1 || -3 || 3 || 1 || | | <math>\displaystyle N=3</math> || 1 || -3 || 3 || 1 || | ||
|- | |- | ||
| \vdots || || || ... || || | | <math>\displaystyle \vdots</math> || || || ... || || | ||
|- | |- | ||
| <math>\displaystyle N=20</math> || 1 || || ... || || | | <math>\displaystyle N=20</math> || 1 || || ... || || | ||
|} | |} |
Wersja z 21:32, 29 wrz 2006
Interpolacja wielomianowa
<<< 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: Błąd interpolacji dla węzłów równoodległych
Wyprowadź wzór na błąd interpolacji w przypadku węzłów równoodległych, tzn. , :
jeśli dla , to
Przetestuj eksperymentalnie jakość tego oszacowania dla kilku funkcji, dla których znasz wartość , np.
- wielomianu stopnia ,
- wielomianu stopnia ,
- funkcji na ,
- funkcji na ,
- funkcji .
porównując faktyczny błąd w z błędem z powyższego oszacowania.
Ćwiczenie: Aproksymacja funkcji sinus
Ile węzłów interpolacji wielomianowej Lagrange'a wystarczy, by przybliżyć funkcję z błędem bezwzględnym na całym przedziale . Podaj odpowiedź w przypadku
- węzłów równoodległych w ,
- węzłów Czebyszewa w .
Sprawdź eksperymentalnie, czy się nie pomyliłeś.
Ćwiczenie: Wagi wzoru barycentrycznego
Wyprowadź formułę na pierwszy wzór barycentryczny w przypadku węzłów równoodległych na odcinku ,
Wywnioskuj stąd wzór na wagi w drugim wzorze barycentrycznym.
Podaj algorytm wyznaczania tych wag dla zadanego .
Ćwiczenie: Implementacja algorytmu barycentrycznego
Zaimplementuj drugi wzór barycentryczny tak, by w efekcie dostać dwie procedury:
c = polyfitb(x,y)
--- wyznaczającą współczynniki wielomianu interpolującego wartości w węzłach równoodległych ;Y = polyvalb(X,c)
--- wyznaczającą, w zadanych węzłach , wartości wielomianu interpolacyjnego o współczynnikach .
Oszacuj koszt twojego algorytmu i porównaj z kosztem algorytmu różnic dzielonych (dla współczynników) i algorytmem Hornera (dla wartości) w dwóch przypadkach:
- kiedy jest dużo węzłów interpolacji, a potrzebna jest tylko jedna wartość wielomianu interpolacyjnego;
- na odwrót, kiedy jest mało węzłów interpolacji, a potrzeba wyznaczyć bardzo dużo wartości wielomianu interpolacyjnego.
Ćwiczenie: Dodawanie węzła interpolacji
Często w aplikacjach takich jak programy CAD zachodzi potrzeba dodania na bieżąco dodatkowego węzła interpolacji. Podaj, jak to zrobić --- i jaki to będzie miało koszt --- gdy interpolant jest zadany w bazie
- naturalnej
- Newtona
- Lagrange'a
Ćwiczenie: Algorytm Hornera może więcej
Pokaż, że algorytm Hornera obliczania wartości wielomianu danego w postaci potęgowej jest jednocześnie algorytmem dzielenia tego wielomianu przez jednomian . Dokładniej, jeśli to
gdzie są zdefiniowane tak jak w algorytmie Hornera. Zaimplementuj i sprawdź na przykładach.
Ćwiczenie
Niech dane będą i funkcja Parser nie mógł rozpoznać (nieznana funkcja „\toR”): {\displaystyle \displaystyle f:[a,b]\toR} , która jest nieskończenie wiele razy różniczkowalna i wszystkie jej pochodne są na ograniczone przez . Napisz program znajdujący stopień oraz współczynniki w bazie Newtona wielomianu interpolującego z błędem
Rozpatrz dwa przypadki: gdy węzły interpolacji są równoodległe, oraz gdy węzły są czebyszewowskie.