MN09LAB: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
m Zastępowanie tekstu – „\displaystyle ” na „”
m Zastępowanie tekstu – „.↵</math>” na „</math>”
Linia 24: Linia 24:
jeśli <math>|f^{(n+1)}(x)| \leq M</math> dla <math>x\in [a, a+nh]</math>, to  
jeśli <math>|f^{(n+1)}(x)| \leq M</math> dla <math>x\in [a, a+nh]</math>, to  


<center><math>|f(x) - w_n(x)| \leq M \frac{h^{n+1}}{4(n+1)}.
<center><math>|f(x) - w_n(x)| \leq M \frac{h^{n+1}}{4(n+1)}</math></center>
</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">
Linia 286: Linia 285:
Niech dane będą <math>\epsilon>0</math> i funkcja <math>f:[a,b]\to R</math>, która jest nieskończenie wiele razy różniczkowalna i wszystkie jej pochodne są na <math>[a,b]</math> ograniczone przez <math>M</math>. Napisz program znajdujący stopień <math>n</math> oraz współczynniki w bazie Newtona wielomianu <math>w_{f,n}\in\Pi_n</math> interpolującego <math>f</math> z błędem  
Niech dane będą <math>\epsilon>0</math> i funkcja <math>f:[a,b]\to R</math>, która jest nieskończenie wiele razy różniczkowalna i wszystkie jej pochodne są na <math>[a,b]</math> ograniczone przez <math>M</math>. Napisz program znajdujący stopień <math>n</math> oraz współczynniki w bazie Newtona wielomianu <math>w_{f,n}\in\Pi_n</math> interpolującego <math>f</math> z błędem  


<center><math>\|f-w_{f,n}\|_{C([a,b])}\,\le\,\epsilon.
<center><math>\|f-w_{f,n}\|_{C([a,b])}\,\le\,\epsilon</math></center>
</math></center>


Rozpatrz dwa przypadki: gdy węzły interpolacji są równoodległe, oraz gdy węzły są czebyszewowskie.  
Rozpatrz dwa przypadki: gdy węzły interpolacji są równoodległe, oraz gdy węzły są czebyszewowskie.  
</div></div>
</div></div>

Wersja z 21:36, 11 wrz 2023


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. xi=a+ih, i=0,,n:

jeśli |f(n+1)(x)|M dla x[a,a+nh], to

|f(x)wn(x)|Mhn+14(n+1)
Wskazówka

Przetestuj eksperymentalnie jakość tego oszacowania dla kilku funkcji, dla których znasz wartość M, np.

  • wielomianu stopnia n,
  • wielomianu stopnia n+1,
  • funkcji sin(x) na [0,1],
  • funkcji sin(x) na [0,nπ],
  • funkcji ex.

porównując faktyczny błąd w [a,a+nh] z błędem z powyższego oszacowania.

Wskazówka
Rozwiązanie

Ćwiczenie: Aproksymacja funkcji sinus

Ile węzłów interpolacji wielomianowej Lagrange'a wystarczy, by przybliżyć funkcję f(x)=sin(x) z błędem bezwzględnym 108 na całym przedziale [0,π4]. Podaj odpowiedź w przypadku

  • węzłów równoodległych w [0,π4],
  • węzłów Czebyszewa w [0,π4].

Sprawdź eksperymentalnie, czy się nie pomyliłeś.

Rozwiązanie

Ćwiczenie: Wagi wzoru barycentrycznego

Wyprowadź formułę na pierwszy wzór barycentryczny w przypadku n+1 węzłów równoodległych na odcinku [0,1],

wj=(1)nj1hnj!(nj)!.

Wywnioskuj stąd wzór na wagi w drugim wzorze barycentrycznym.

Wskazówka

Podaj algorytm wyznaczania tych wag dla zadanego n.

Rozwiązanie

Ćwiczenie: Implementacja algorytmu barycentrycznego

Zaimplementuj drugi wzór barycentryczny tak, by w efekcie dostać dwie procedury:

  • c = polyfitb(x,y) --- wyznaczającą współczynniki c wielomianu interpolującego wartości y w węzłach równoodległych x;
  • Y = polyvalb(X,c) --- wyznaczającą, w zadanych węzłach X, wartości Y wielomianu interpolacyjnego o współczynnikach c.

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.
Rozwiązanie

Ć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
Rozwiązanie

Ćwiczenie: Algorytm Hornera może więcej

Pokaż, że algorytm Hornera obliczania wartości w(ξ) wielomianu danego w postaci potęgowej jest jednocześnie algorytmem dzielenia tego wielomianu przez jednomian (xξ). Dokładniej, jeśli w(x)=j=0najxj to

w(x)=(j=1nvjxj1)(xξ)+v0,

gdzie vj są zdefiniowane tak jak w algorytmie Hornera. Zaimplementuj i sprawdź na przykładach.

Rozwiązanie


Ćwiczenie

Niech dane będą ϵ>0 i funkcja f:[a,b]R, która jest nieskończenie wiele razy różniczkowalna i wszystkie jej pochodne są na [a,b] ograniczone przez M. Napisz program znajdujący stopień n oraz współczynniki w bazie Newtona wielomianu wf,nΠn interpolującego f z błędem

fwf,nC([a,b])ϵ

Rozpatrz dwa przypadki: gdy węzły interpolacji są równoodległe, oraz gdy węzły są czebyszewowskie.