MN09LAB

Z Studia Informatyczne
(Przekierowano z MN Ćwiczenia 9)
Przejdź do nawigacjiPrzejdź do wyszukiwania


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.