Wielomian interpolacyjny Hermite a

Podobne dokumenty
Metody numeryczne. Ilorazy różnicowe. dr Artur Woike. Wzory interpolacyjne Newtona i metoda Aitkena.

Elementy metod numerycznych - zajęcia 9

ELEMENTY ANALIZY NUMERYCZNEJ ELEMENTY ANALIZY NUMERYCZNEJ. Egzamin pisemny zestaw 1 24 czerwca 2019 roku

ELEMENTY ANALIZY NUMERYCZNEJ ELEMENTY ANALIZY NUMERYCZNEJ. Egzamin pisemny zestaw 1 26 czerwca 2017 roku

Metody Numeryczne Wykład 4 Wykład 5. Interpolacja wielomianowa

Analiza numeryczna Kurs INP002009W. Wykład 8 Interpolacja wielomianowa. Karol Tarnowski A-1 p.223

Metody numeryczne. Sformułowanie zagadnienia interpolacji

Analiza numeryczna kolokwium2a-15grudnia2005

Egzamin z Metod Numerycznych ZSI, Grupa: A

Egzamin z Metod Numerycznych ZSI, Egzamin, Gr. A

Obliczenia naukowe Wykład nr 6

Metody numeryczne I Równania nieliniowe

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych.

VI. Równania różniczkowe liniowe wyższych rzędów

Interpolacja. Marcin Orchel. Drugi przypadek szczególny to interpolacja trygonometryczna

Układy równań i równania wyższych rzędów

Rozpoznawanie obrazu. Teraz opiszemy jak działa robot.

Wykład 4 Przebieg zmienności funkcji. Badanie dziedziny oraz wyznaczanie granic funkcji poznaliśmy na poprzednich wykładach.

Instytut Fizyki Politechniki Łódzkiej Laboratorium Metod Analizy Danych Doświadczalnych Ćwiczenie 3 Generator liczb losowych o rozkładzie Rayleigha.

1. Wielomiany Podstawowe definicje i twierdzenia

Zadania domowe. Ćwiczenie 2. Rysowanie obiektów 2-D przy pomocy tworów pierwotnych biblioteki graficznej OpenGL

Programowanie w języku C++ Grażyna Koba

Matematyka 2. Równania różniczkowe zwyczajne rzędu drugiego

Metody numeryczne. materiały do wykładu dla studentów. 7. Całkowanie numeryczne

INTERPOLACJA I APROKSYMACJA FUNKCJI

Funkcja kwadratowa. f(x) = ax 2 + bx + c = a

Algorytmy i struktury danych. Wykład 4

Funkcja kwadratowa. f(x) = ax 2 + bx + c,

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania. Technologie informatyczne

Podstawy MATLABA, cd.

Ciała i wielomiany 1. przez 1, i nazywamy jedynką, zaś element odwrotny do a 0 względem działania oznaczamy przez a 1, i nazywamy odwrotnością a);

Przykładowy zestaw zadań nr 1 z matematyki Odpowiedzi i schemat punktowania poziom podstawowy ODPOWIEDZI I SCHEMAT PUNKTOWANIA ZESTAW NR 1

ODPOWIEDZI I SCHEMAT PUNKTOWANIA ZESTAW NR 1 POZIOM PODSTAWOWY

Aproksymacja funkcji a regresja symboliczna

3.Funkcje elementarne - przypomnienie

Wykład 3 Równania rózniczkowe cd

Wykład 12 i 13 Macierz w postaci kanonicznej Jordana , 0 A 2

Algorytm. a programowanie -

jest rozwiązaniem równania jednorodnego oraz dla pewnego to jest toŝsamościowo równe zeru.

Rozwiązywanie równań nieliniowych

Metody systemowe i decyzyjne w informatyce

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

Matematyka stosowana i metody numeryczne

Podstawowe komendy i możliwości system składu drukarskiego L A TEX

Wstęp do analizy matematycznej

5. Równania różniczkowe zwyczajne pierwszego rzędu

zaznaczymy na osi liczbowej w ten sposób:

Tom 6 Opis oprogramowania Część 8 Narzędzie do kontroli danych elementarnych, danych wynikowych oraz kontroli obmiaru do celów fakturowania

Aproksymacja. funkcji: ,a 2. ,...,a m. - są funkcjami bazowymi m+1 wymiarowej podprzestrzeni liniowej X m+1

SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa

Newton vs. Lagrange - kto lepszy?

Grafika komputerowa Wykład 8 Modelowanie obiektów graficznych cz. II

wszystkich kombinacji liniowych wektorów układu, nazywa się powłoką liniową uk ładu wektorów

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Tom 6 Opis oprogramowania

VII. Elementy teorii stabilności. Funkcja Lapunowa. 1. Stabilność w sensie Lapunowa.

Pochodna i różniczka funkcji oraz jej zastosowanie do obliczania niepewności pomiarowych

Elementy metod numerycznych

Grafika komputerowa Wykład 7 Modelowanie obiektów graficznych cz. I

Wielomiany. dr Tadeusz Werbiński. Teoria

Biotechnologia, Chemia, Chemia Budowlana - Wydział Chemiczny - 1

WPROWADZENIE WYSZUKIWANIE OGŁOSZEŃ

INFRA. System Connector. Opis systemu

Pochodną funkcji w punkcie nazywamy granicę ilorazu różnicowego w punkcie gdy przyrost argumentu dąży do zera: lim

Układy równań liniowych

Instrukcja użytkownika programu

Wymagania edukacyjne z matematyki klasa II technikum

Całkowanie numeryczne

Warsztaty dla nauczycieli

3. Interpolacja. Interpolacja w sensie Lagrange'a (3.1) Dana jest funkcja y= f x określona i ciągła w przedziale [a ;b], która

Logarytmy. Funkcje logarytmiczna i wykładnicza. Równania i nierówności wykładnicze i logarytmiczne.

Instrukcja pobierania i weryfikacji zaświadczeń elektronicznych w portalu internetowym Polskiej Izby Inżynierów Budownictwa

Rozkład Gaussa i test χ2

Zmiany w programie VinCent 1.29

Stochastyczne Metody Analizy Danych. PROJEKT: Analiza kluczowych parametrów turbin wiatrowych

Matematyka dyskretna dla informatyków

INSTRUKCJA UŻYTKOWANIA

. : a 1,..., a n F. . a n Wówczas (F n, F, +, ) jest przestrzenią liniową, gdzie + oraz są działaniami zdefiniowanymi wzorami:

Ćwiczenie 4. Matlab - funkcje, wielomiany, obliczenia symboliczne

Podstawy analizy matematycznej II

Obliczenia iteracyjne

Całkowanie numeryczne przy użyciu kwadratur

Pochodna i różniczka funkcji oraz jej zastosowanie do rachunku błędów pomiarowych

JPK Jednolity Plik Kontrolny

Wykład Ćwiczenia Laboratorium Projekt Seminarium Liczba godzin zajęć zorganizowanych w Uczelni ,5 1

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

Wykład 14 i 15. Równania różniczkowe. Równanie o zmiennych rozdzielonych. Definicja 1. Równaniem różniczkowym zwyczajnym rzędu n nazywamy równanie

Laboratorium nr 1. i 2.

WYKŁADY Z MATEMATYKI DLA STUDENTÓW UCZELNI EKONOMICZNYCH

Spacery losowe generowanie realizacji procesu losowego

MATeMAtyka 3. Przedmiotowy system oceniania wraz z określeniem wymagań edukacyjnych. Zakres podstawowy i rozszerzony. Zakres podstawowy i rozszerzony

Metody numeryczne. Sformułowanie zagadnienia interpolacji

Równania różniczkowe liniowe II rzędu

Produkcja by CTI. Proces instalacji, ważne informacje oraz konfiguracja

Warunki logiczne instrukcja if

PLAN WYNIKOWY DLA KLASY DRUGIEJ POZIOM PODSTAWOWY I ROZSZERZONY. I. Proste na płaszczyźnie (15 godz.)

Zadania z rysowania i dopasowania funkcji

11. Pochodna funkcji

Przypomnienie: Ćwiczenie 1.

Analizy na podstawie danych sprawozdawczych - Moduł analiz z obsługą broszur

Transkrypt:

Wielomian interpolacyjny Hermite a Witold Bołt 15 listopada 2005 1 Sformułowaniezadania Dlafunkcjif:[a,b] Rdanejwzorem: f(t)=e 2t +1 wyznaczyć wielomian interpolacyjny Hermite a na zadanych węzłach. Wypisać wielomian w bazie standardowej(jednomianów) i narysować wykres funkcji oraz wielomianu. 2 Podstawyteoretyczne 2.1 Baza Newtona przestrzeni wielomianów Wszystkie wielomiany o współczynnikach i wartościach rzeczywistych stopnia co najwyżej n stanowią przestrzeń liniową. Tradycyjnie przyjętą bazą standardową tejprzestrzenijestbazaskładającasięzjednomianówpostacix j dlaj= 0,1,...,n. Twierdzenie2.1.Niechu 0,u 1,...,u n będądowolnymiliczbamirzeczywistymi. Wówczas wielomiany postaci: p 0 (t)=1,p i (t)=(t u i 1 )p i 1 (t)dlai=1,...,n+1 stanowią bazę przestrzeni wielomianów stopnia co najwyżej n + 1. Bazę tą nazywamy bazą Newtona przestrzeni wielomianów. 2.2 Wielomian interpolacyjny Hermite a funkcji f Twierdzenie2.2.Niechdanybędzieciągliczbu 0 u 1,... u n.dladowolnegociąguliczbc 0,c 1,...,c n,istniejedokładniejedenwielomianwstopniaco najwyżejn,takiżejeśliliczbau k wciąguu 0,...,u n występujerrazy,adokładniej,jeśliu k = =u k+r 1 izk>0wynikau k 1 u k orazzk+r nwynika u k+r 1 u k+r (liczbęu k nazywamywtedywęzłemr krotnym),któryspełnia: W(u k )=c k,w (u k )=c k+1,...,w (r 1) (u k )=c k+r 1. 1

Definicja 2.3(Wielomian interpolacyjny Hermite a funkcji f). Wielomian W stopnia co najwyżej n, nazywamy wielomianem interpolacyjnym Hermite a funkcji f,jeśliwkażdymr krotnymwęźleu k spełniarównania: W(u k )=f(u k ),W (u k )=f (u k ),...,W (r 1) (u k )=f (r 1) (u k ). Z powyższej definicji widzimy, iż pojęcie wielomianu interpolacyjnego Hermite a jest uogólnieniem pojęcia zwykłego wielomianu interpolacyjnego Lagrange a, który narzucał jedynie równość wartości wielomianu i funkcji w danych punktach. Twierdzenie(2.2) gwarantuje, że wielomian taki wyznaczony jest w sposób jednoznaczny. Definicja2.4(różnicadzielona).Dlaparamiróżnychliczbu 0,...,u n różnice dzielone funkcji f są określone w następujący sposób: f[u i ]=f(u i ), f[u i,...,u i +k]= f[u i,...,u i+k 1 ] f[u i+1,...,u i+k ] u i u i+k Definicja 2.5. Różnica dzielona rzędu k w(k + 1) krotnym węźle określona jest wzorem: f[u i,...,u {{ i ]= f(k) (u i ). k! k+1 Korzystając z dwóch wzorów z powyższych definicjach, możemy wyliczyć różnicędzielonądladowolnychu 0,...,u n. Twierdzenie 2.6. Wielomian interpolacyjny Hermite a W funkcji f(gdy f jest klasyc n+1 )danyjestwzorem: gdziep i towspółczynnikibazynewtona. n W(t)= f[u 0,...,u i ]p i (t) i=0 Wyznaczenie wielomianu interpolacyjnego Hermite a sprawdza się więc do wyznaczeniaróżnicdzielonychf[u 0,...,u i ],któresąwspółczynnikamitegowielomianu w bazie Newtona. 3 Opis działania programu Program komunikuje się z użytkownikiem w sposób interakcyjny. Najpierw użytkownik podaje dwie liczby rzeczywiste a i b określające krańce przedziału[a, b], a następnie podaje liczbę węzłów(która musi być nie mniejsza niż 2). W programie przyjmuje się założenie, że a staje się pierwszym węzłem natomiast b ostatnim. Kolejną rzeczą jest wybór sposobu podziału odcinka[a, b]. 2

Wybranie opcji rozkład jednorodny powoduje że przedział zostanie podzielony na odcinki równej długości(zgodnie z podaną wcześniej liczbą węzłów). Użytkownik w takim wypadku zostanie poproszony o podanie jednej(stałej dla wszystkich węzłów) krotności. Wybranie opcji rozkład jednorodny ze zmienną krotności powoduje, podobnie jak poprzednio, że odcinek[a, b] zostanie podzielony na odcinki o równej długości, jednak w odróżnieniu od przypadku poprzedniego, dla każdego z węzłów oddzielnie można podać różną krotność. Wybranie opcji rozkład niejednorodny umożliwia użytkownikowi podział przedziału[a, b] na dowolne odcinki i przypisanie każdemu z węzłów dowolnej krotności. Po wprowadzeniu danych program wylicza wielomian interpolacyjny i zapisuje go w pliku wyjściowym. Domyślnie wynik zapisywany jest w pliku o nazwie plot.tex 1.JesttoplikwformacieL A TEX,którywewnętrzniekorzystazpakietu Asymptote. Wygenerowany dokument zawiera: wzóridziedzinęfunkcjif, wzór wielomianu interpolacyjnego W, wykres obu tych funkcji. Aby, na podstawie tegoż pliku wygenerować dokument w formacie PDF najlepiej wykorzystać dostarczony skrypt powłoki o nazwie genpdf.sh, który należy uruchomić w następujący sposób:./genpdf.sh plik jeśli nasz dokument jest zapisany w pliku o nazwie: plik.tex. Do poprawnego działania skrypt genpdf.sh wymaga programów: latex, asymptote(komenda asy), dvips oraz ps2pdf. Wynikiem działania skryptu jest powstanie pliku plik.pdf. 3.1 Przykładowy wynik działania programu Poniżej przedstawiono wynik działania programu, dla przedziału[ 1, 1] podzielonego na 5 równoodległych węzłów o stałej krotności 2. Funkcjaf:[ 1.0,1.0] Rdanawzorem: Wielomianinterpolacyjny 2 : f(x)=e 2x +1. W(x)=+0.0015 x 9 +0.0071 x 8 1 Abyzapisaćwynikwinnymplikunależyuruchomićprogramzjednymparametrembędącym nazwą pliku wynikowego. 2 Abypoprawićczytelność,współczynnikiwielomianusąwypisywanezdokładnościądo4 miejsc po przecinku. 3

+0.0253 x 7 +0.0883 x 6 +0.2667 x 5 +0.6669 x 4 +1.3333 x 3 +2.0000 x 2 +2.0000 x 1 +2.0000 x 0 Wykres: y 8 7 y=e 2x +1 y=w(x) 6 5 4 3 2 1 0 0.8 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 1 x 4 Opis struktury programu Program został napisany w języku C(a dokładniej w wersji C99 tegoż języka). Kod źródłowy programu podzielony jest na części(moduły): main.c zawiera główną funkcję programu, wywołuje ona funkcje pobierającą dane, wyliczającą wielomian oraz generującą wyjście; getdata.c zawiera funkcję pobierającą dane od użytkownika; inter.c zawiera funkcję wyliczającą współczynniki wielomianu interpolacyjnego metodą Hermite a(więcej o tej funkcji w następnym podrozdziale); plot.c zawiera funkcje generujące rysunek w formacie Asymptote oraz dokumentwformaciel A TEX(funkcjeteniekorzystająwżadensposóbzwymienionych formatów generują jedynie pliki źródłowe). 4

4.1 Moduł inter.c wyliczanie wielomianu interpolacyjnego W tym podrozdziale skupimy się na opisaniu modułu inter.c. Moduł ten zawiera dwie funkcję. Pierwszą z nich jest funkcja pomocnicza o nazwie f. Funkcja ta służy dowyliczeniawartościzadanejfunkcjif(x)=e 2x +1orazpochodnychdowolnego rzędu z tej funkcji. W tym celu używana jest wbudowana w bibliotekę standardową językacfunkcjaexp.ototreśćfunkcjif: doublef(doublex,intd) { return((1<<d)*exp(2*x)+((d>0)?0:1)); Główną funkcją tego modułu jest funkcja gethermitepolynominal. Jej działanie można podzielić na cztery etapy: (1) Przydzielenie pamięci na zmienne. Etap ten nie jest wyjątkowo interesujący, zostanie więc pominięty w dalszym opisie. (2) Wyznaczenie rzędów pochodnych do wyliczenia w węzłach i wyliczenie wartości funkcji w węzłach. (3) Wyznaczenie współczynników wielomianu interpolacyjnego w bazie Newtona. (4) Przejście z bazy Newtona do bazy jednomianów(tzw. bazy potęgowej). Etap(2) Funkcja pobierająca dane od użytkownika przygotowuje tablice węzłów. Tablicazawieraliczby:u 0 u 1... u n.wprogramieprzyjmujesię założenie, że jeśli jakiś węzeł podany jest k krotnie, to dla pierwszego wystąpienia wyliczana jest wartość funkcji, dla drugiego wartość pierwszej pochodnejitd.ażdopochodnejrzęduk 1.Wtablicykbędziemywięcprzechowywać rząd pochodnej do wyliczenia w węźle o danym indeksie. Poniższy fragment kodu wyznacza wartości tablicy k: k[0]=0; for(int i=1;i<count;i++) { if(nodes[i] == nodes[i-1]) k[i] = k[i-1]+1; else k[i]=0; Po wyznaczeniu tablicy k jesteśmy gotowi na to aby wyliczać wartości funkcji i pochodnych funkcji f. Wartości te zapiszemy w tablic poly, która później zawierać będzie współczynniki naszego wielomianu. Za wyliczenie odpowiednich wartości odpowiada następujący fragment kodu: for(int i=0;i<count;i++) poly[i]=f(nodes[i],k[i]); 5

Etap(3) W tym momencie mamy już wszelkie niezbędne informacje do tego by rozpocząć wyliczanie współczynników wielomianu. Wyliczeń dokonujemy na podstawie twierdzenia(2.6) oraz dwóch definicji ilorazów dzielonych. for(int j=1;j<count;j++) for(int i=count-1;i>=j;i--) { if(k[i]==0) poly[i] =(poly[i]- poly[i-1-k[i-1]]) /(nodes[i]-nodes[i-j]); else { poly[i]/=(double)j; k[i]--; Etap(4) Wynikiem działania powyższego kodu jest wypełnienie tablicy poly wartościami współczynników wielomianu interpolacyjnego w bazie Newtona. Aby przejść do bazy używanej w tradycyjnnym zapisie wielomianów wystarczy wykonać kilka prostych operacji arytmetycznych, które realizuje poniższy kod: for(int j=count-1;j>=0;j--) for(int i=j;i<count-1;i++) poly[i] = poly[i]-poly[i+1]*nodes[j]; Pełny kod źródłowy programu można ściągnąć ze strony: http://www.houp.info/mn/hermite.tar.bz2 Źródło: 1. Kiciak P.: Podstawy modelowania krzywych i powierzchni. Wydanie II. WNT, Warszawa 2005, s. 485 491. 6