Metody numeryczne - laboratoria - zajęcia 2 Interpolacja i aproksymacja funkcji dyskretnych
Praca na zajęciach ćdo zdobycia max. 8 punktów):
Badanie występowania efektu Rungego
Napisz program, który umożliwi obserwowanie efektu Rungego. W tym celu wykonaj kolejne punkty:
1. na wykresie przedstaw funkcję ^~25x2+l »
2. w zadanym przedziale zdefiniuj wektor równoodległych węzłów, w tym celu użyj funkcji linspace (a, b, n), gdzie a -początek przedziału (tu a=-l), b -koniec (tu b=l), n -liczba węzłów (to będzie się zmieniało, na początek wybierz dowolną liczbę, np. n=5),
3. na wykres z pkt. 1 nanieś wybrane węzły (pamiętaj o funkcji hołd on)
Uwaga: Przy dużej liczbie węzłów nie zaznaczaj ich na wykresie.
4. dla wektora z pkt. 2 oblicz wartości funkcji opisanej wzorem podanym w pkt. 1,
5. znajdź współczyniki wielomianu interpolacyjnego, w tym celu przeprowadź zadanie interpolacji z zastosowaniem macierzy Vandermonda dla węzłów z pkt.2,
6. oblicz wartości wielomianu z zastosowaniem schematu Homera,
7. na wykresie z pkt. 3 przedstaw otrzymany wielomian. Pamiętaj o zastosowaniu innego koloru i legendzie.
8. zbadaj jak zmiana liczby węzłów (w pkt. 2 wielkość n) wpływa na jakość interpolacji. Badanie przeprowadź dla małej liczby węzłów (np. 5), średniej (np. 30) i dużej (np.200). Co obserwujesz? Dlaczego tak się dzieje? Uwagi zapisz jako komentarz na końcu programu.
Po wykonaniu kroku 1 otrzymujesz 1 punkt, po wykonaniu kroku 3 otrzymujesz kolejny punkt, po wykonaniu kroku 5 otrzykujesz kolejne 2 punkty, po wykonaniu kroku 7 otrzymujesz kolejne 2 punkty i po wykonaniu kroku 8 - kolejne dwa punkty. W sumie 8 punktów.
Zadanie domowe - nieobowiązkowe, tylko dla mających czas i chęci (do zdobycia max, 4 punkty):
Rozbuduj program z zajęć tak aby można było porównywać wielomiany interpolacyjne otrzymane różnymi metodami: z zastosowaniem macierzy Vadermonda oraz dostępnymi po zastosowaniu funkcji interpl. Program powinien posiadać graficzny intterfejs użytkownika i umożliwiać wpisywanie dowolnej fukcji, dowolnego zestawu węzłów oraz pozwalać na porównywanie dowolnie wybranych metod. Elementem GUI, który pozwala na wybieranie pewnych opcji jest check box. Wszystkie zmiany powinny być ilustrowane na wykresie.
Definiowanie funkcji:
np. f=inline ('sin (x) ') albo f=0 (x) sin(x)
zastosowanie: jeśli dalej w programie chcesz obliczyć wartość funkcji sin np. w punkcie 3.78 to wpisujesz f(3.78), możesz też od razu obliczać wartość funkcji dla całego wektora, np. Z=[l,2,3], po zastosowaniu polecenia f(Z) otrzymasz wektor wartości [sin(l), sin(2), sin(3)].
Uwagi końcowe:
Termin nadsyłania programów upływa na kolejnych zajęciach. Proszę przysyłać wszystkie potrzebne pliki (*.m i *.fig). Ewenualne instrukcje dt. działania programu proszę umieszczać w programie, ^ nie w treści listu. Tytuł listu: “MN program 1 - Nazwisko”. W treści listu proszę pamiętać o podaniu imienia, nazwiska oraz grupy z którą chodzi się na zajęcia.