Interpolacja funkcji Dane wartości funkcji y n w punktach x n, gdzie n=0,1,2,....N-1. x y x0x0 y0y0 xnxn ynyn x N-1 y N-1
Interpolacja wielomianowa Twierdzenie Istnieje dokładnie jeden wielomian stopnia co najwyżej N (N>=0), który w punktach x 0, x 1,...,x N-1 przyjmuje wartości y 0,y 1,...,y N-1. Wzór interpolacyjny Lagrange'a: gdzie jest wielomianem stopnia co najwyżej N.
Z warunku interpolacyjnego: powyższy układ N równań można najprościej rozwiązać przyjmując dla wielomianów k (x) następujące warunki : jako wielomian k (x) należy wybrać taki, który ma miejsca zerowe we wszystkich punktach interpolacji z wyjątkiem punktu x k, w którym funkcja ma wartość 1 Rozwiązaniem jest wielomian :
z warunku: otrzymuje się: Wielomian Lagrange'a przyjmuje postać: Ocena błędu interpolacji:
Przykład 1. Zbudować wielomian interpolacyjny dla funkcji exp(x) w przedziale [1,2] bazując na 5 węzłach interpolacyjnych. Wybierzmy węzły równomiernie czyli
mamy: xixi yiyi Wielomian Lagrangea jest:
lub Wyniki obliczeń przedstawiono na wykresie:
Dla lepszej oceny wykres błędu względnego:
Przykład 2. W wyniku pomiarów zdjęto pierwotną krzywą magnesowania B=F(H). Zbudować wielomian interpolacyjny Lagrange'a dla zakresu 0<=H <=3000A/m. H[A/m] B[T] Kolejne wielomiany k (H) dla k=0,1,...8 są: lub po obliczeniu mianownika mamy:
i wielomian aproksymacyjny jest lub
Otrzymany wynik jest niemożliwy do przyjęcia!!!
Interpolacja liniowa odcinkami: H[A/m] B[T] dla lub po wykonaniu działań: dla i podobnie: dla
B(H)
Porównanie Ba(H) – interpolacja liniowa B(H) – wielomian 8-go stopnia
Funkcje sklejane (spline) Dane wartości funkcji y n w punktach x n, gdzie n=0,1,2,....N-1. x y a=x 0 y0y0 xkxk ykyk b=x N yNyN przy czym: a=x 0 <x 1 <...<x k <...<x N =b s m (x)
Funkcję s m (x) określoną na przedziale [a,b] nazywamy funkcją funkcją sklejaną stopnia m 1, jeżeli: 1.s m (x) jest funkcją co najwyżej stopnia m na każdym z podprzedziałów [x k,x k+1 ] gdzie k=0,1,...,N-1 2.funkcja s m (x) posiada ciągłą pochodną do rzędu m-1 w przedziale [a,b]. Najpowszechniej stosowane funkcje sklejane 3-go stopnia. Z drugiego warunku wynika, że funkcja s 3 (x) musi mieć ciągłą drugą pochodną w przedziale [a,b].
Niech: dla k=0,1,...,N Druga pochodna będzie ciągła, jeżeli dla przedziału [x k,x k+1 ] przyjmiemy: oraz k=0,1,...,N-1 gdzie Całkując mamy:
i całkując pierwszą pochodną mamy: Z warunków interpolacji mamy: Dla każdego z N przedziałów piszemy:
ale czyli możemy zapisać: stąd mamy: i
Pozostaje tylko zapewnić ciągłość pierwszej pochodnej w węzłach interpolacji x k (k=1,2,...,N-1) czyli mamy N-1 równań: stąd: Biorąc pod uwagę, że i
mamy: dla k=1,2,...,N-1 mamy N-1 równań, a niewiadomych M k – N+1. Potrzebne dwa dodatkowe równania, które przyjmuje się w jednej z trzech postaci: 1.Dana jest pochodna funkcji w punkcie a i b czyli:
2. Dana jest druga pochodna na obu końcach przedziału, czyli: 3. Funkcja jest okresowa o okresie b-a i wtedy mamy: W przypadku 1 mamy więc: lub
i podobnie dla drugiego końca przedziału mamy: lub i otrzymujemy układ N+1 równań: dla k=1,2,...,N-1
Dla drugiego typu warunków mamy: czyli z definicji: wynika, żei i N-1 równań: dla k=1,2,...,N-1 Zapiszemy otrzymane równania w postaci wygodniejszej do obliczeń:
Takie układy rozwiązujemy techniką wymiatania. Niech Podstawiając do drugiego równania i wyznaczając M 1 mamy:
lub oznaczając: możemy zapisać w postaci: Wyznaczmy związek rekurencyjny spełniany przez L k i K k. Zakładając, że i podstawiając do k-go równania mamy: i oznaczając:
mamy: a więc współczynniki L k,K k potrafimy wyznaczyć z zależności rekurencyjnej: jeżeli znamy wartości startowe L 1, K 1.
Ale porównując: z pierwszym równaniem: mamy: i i na podstawie związku rekurencyjnego: wyznaczmy kolejno dla k=1,2,...N-1
Ostatnie równanie przyjmuje postać: i podstawiając do ostatniego równania: mamy:
Znając M N wyznaczamy ze wzoru: kolejne M k przyjmując k=N-1,N-2,...,0 Przykład: Dane są wartości funkcji: x y i jej pierwsze pochodne:
Współczynniki M 0, M 1, M 2, M 3, M 4, M 5 wyznaczamy z układu równań: dla k=1,2,3,4 gdzie ze względu na równomierny podział mamy: i podstawiając dane mamy:
Z pierwszego równania mamy:i i na mocy związku rekurencyjnego:
Z ostatniego równania mamy: i ze związku rekurencyjnego: wyznaczamy: a następnie stałe A k i B k ze wzorów: i k=0,1,2,3,4
i ostatecznie mamy:
Błąd względny
B – funkcje sklejane (B – spline) Podział przedziału [a,b] jest równomierny, czyli Funkcja sklejana s 3 (x) jest przyjmowana w postaci: gdzie funkcje B k (x) tworzą bazę przestrzeni s 3 (x) i mają postać:
x y a=x 0 y0y0 x k =k ykyk b=N yNyN s m (x)
x B k (x) xkxk x k-1 x k-2 x k-3 x k+1 x k+2 x k+3
x k-2 x k-1 xkxk x k+1 x k+2 B k (x) / 0 - 3/ 0 0 6/ 2 -12/ 2 6/ 2 0 Na mocy tabeli w węzłach interpolacji mamy: k=0 k= k=i k=N Mamy N+1 równań i N+3 niewiadomych. Dwa dodatkowe równania z warunków brzegowych.
Dla warunku pierwszego rodzaju: mamy na mocy tablicy – pierwsze równanie: i ostatnie równanie: Dla warunku drugiego rodzaju: mamy na mocy tablicy – pierwsze równanie:
i ostatnie równanie: Dla warunku trzeciego rodzaju: równanie: i ostatnie: mają identyczne prawe strony, gdyż ze względu na okresowość y 0 =y N i dlatego zamiast ostatniego równania piszemy: i pozostałe dwa warunki dają równania:
Rozwiązując powyższe trzy równania mamy: a więc układ równań przyjmuje postać: k=0 k= k=i k=N-1 Jak rozwiązać otrzymany układ równań metodą wymiatania pokażemy na przykładzie
Dana jest elipsa o równaniu: lub w postaci tablicy: k x y k x y
k x y k x y Interpolację krzywej zamkniętej możemy wykonać przyjmując przedstawienie parametryczne: i i mamy układ równań:
Rozwiązanie metodą wymiatania: Podstawiając do k-go równania: mamy:
ale i porównując z mamy wzory rekurencyjne: i Wartości startowe L 1, A 1 i B 1 wyznaczamy porównując wzór: z pierwszym równaniem: mamy: L 1 =-0.25, B 1 =-0.25 i A 1 =1.25
i z dokładnością do 5 cyfr mamy: L 2 = L 3 = L 4 = L 5 =L 6 =...=L 19 = B 2 = B 15 = e-9 B 3 = B 16 = e-10 B 4 = e-3 B 17 = e-10 B 5 = e-3 B 18 =4.7053e-11 B 6 = e-4 B 19 = e-11 B 7 = e-5 B 8 =2.4664e-5 B 9 = e-6 B 10 = e-6 B 11 = e-7 B 12 = e-7 B 13 = e-8 B 14 = e-9 W równaniu B 19 poprawia 4
A 2 = A 14 = A 3 = A 15 = A 4 = A 16 = A 5 = A 17 = A 6 = A 18 = A 7 = A 19 = A 8 = A 9 = A 10 = A 11 = A 12 = A 13 = Podstawiając do równania: mamy: czyli gdzie
i zakładając: i podstawiając do związku rekurencyjnego: mamy: gdzie dla k=18,17,...,0 ze startowymi C 19, D 19 z zależności: i
C 19 = D 19 = C 4 = D 4 = e-4 C 18 = D 18 = C 3 = D 3 = e-3 C 17 = D 17 = C 2 = D 2 = e-3 C 16 = D 16 = e-3 C 1 = D 1 = C 15 = e-3 D 15 = e-3 C 0 = D 0 = C 14 = D 14 = e-4 C 13 = D 13 = e-5 i z równania: C 12 = D 12 = e-5 C 11 = D 11 = e-6 C 10 = D 10 = e-6 mamy: C 9 = D 9 = e-6 C 8 = D 8 = e-6 C 7 = D 7 = e-6 czyli a 0 =a 20 = C 6 = D 6 = e-5 C 5 = e-5 D 5 = e-5
i ze związku rekurencyjnego: mamy: dla k=1,2,...,19 a 1 =a 21 = a 13 = a 2 = a 14 = a 3 = a 15 = a 4 = a 16 = a 5 = a 17 = a 6 = a 18 = a 7 = a -1 =a 19 = a 8 = a 9 = a 10 = a 11 = a 12 =
x(s) x d (s)
Równanie krzywej dla współrzędnej x jest: dla parametru Błąd między wielomianem interpolacyjnym a funkcją x(s) definiujemy:
y(s) y d (s)
x(s),x d (s) y(s) y d (s) elipsa otrzymana w rezultacie interpolacji i dokładna
Aproksymacja Dążenie do minimalizacji normy. Przykłady stosowanych norm:
Zadanie aproksymacji polega na minimalizacji normy: Niech i dane są wartości funkcji : w punktach i=0,2,...P. Niech będzie zastosowana norma z wagą: i szukamy minimum sumy ze względu na współczynniki a n.
Przykład: x y Przyjmujemy wielomian aproksymujący w postaci: przyjmując funkcję wagową równą jedności otrzymujemy:
Szukamy ekstremum funkcji d(a 0,a 1,a 2 ) i przyrównując do zera pierwsze pochodne względem a 0, a 1 i a 2 otrzymujemy: Rozwiązanie powyższych równań ma postać:
Interpolacja z wagą Po obliczeniu ekstrmum mamy: a 0 =0.319 a 1 =0.158 a 2 = Wielomian aproksymujący jest:
x y y ap x y y y ap
Wielomiany trygonometryczne aproksymacja funkcji okresowej na dyskretnym równoodległym zbiorze punktów: i=0,1,2,..., 2L-1 ciągły: a współczynniki wyznacza się z równania:
Różniczkując względem a k otrzymujemy następujące równania dla wyznaczania współczynników: Mamy tożsamości: Na mocy powyższych tożsamości mamy:
Podobnie wyznaczamy współczynniki b j z równania: korzystając z tożsamości: otrzymujemy:
Szereg zespolony. Dana jest funkcja określona przez podanie jej wartości f n w punktach: gdzie n=0,1,2,...,N-1. Aproksymujemy funkcję wielomianem trygonometrycznym postaci: Otrzymujemy N równań dla wyznaczenia współczynników c k :
Rozwiązanie ostatniego układu równań czyli współczynniki c k są określane równaniami: Idea szybkie transformaty Fouriera tzw. FFT Fast Fourier Transform Ponieważ więc Oznaczmy:
Zauważmy, że Re Im w=w N+1 w p =w p+N Każda całkowita potęga w leży na okręgu jednostkowym i co więcej jeżeli wykładnik p potęgi w p jest większy od N to punkty się nakrywają. Na tym spostrzeżeniu bazuje FFT.
Piszemy: Możemy zapisać w postaci macierzowej: Oznaczając: gdzie Ponieważ w 0 =1 więc nie będziemy pisać zerowej kolumny i wiersza.
Dalej mamy związki: czyli a więc wiersze i kolumny: 1 i N-1 2 i N k i N-k N/2-1 i N/2+1 dla N parzystych (N-1)2 i (N+1)/2 dla N nieparzystych są sprzężone.
W praktyce najczęściej stosowane N=2 M. Jeżeli liczba węzłów interpolacyjnych mniejsza od 2 M, to uzupełniamy zerami. N=8 ww2w2 w3w3 w 4 =-1(w * ) 3 (w * ) 2 w*w* w2w2 w4w4 w6w6 w 8 =1(w * ) 6 (w * ) 4 (w * ) 2 w3w3 w6w6 w9w9 w 12 =-1(w * ) 9 (w * ) 6 (w * ) 3 w4w4 w8w8 w 12 w 16 =1(w * ) 12 (w * ) 8 (w * ) 4 w5w5 w 10 w 15 w 20 =-1(w * ) 15 (w * ) 10 (w * ) 5 w6w6 w 12 w 18 w 24 =1(w * ) 18 (w * ) 12 (w * ) 6 w7w7 w 14 w 21 w 28 =-1(w * ) 21 (w * ) 14 (w * ) 7
lub inaczej abcc*c* b*b* a*a* b b*b* 1b b*b* cb*b* a a*a* bc*c* c*c* ba*a* ab*b* c b*b* b1b*b* b a*a* b*b* c*c* cba dla otrzymania tablicy mnożników wystarczy obliczyć połowę pierwszego wiersza!!! np. a=a r +ia i oraz a * =a r -ia i czyli np. af 1 +a * f 7 =a r (f 1 +f 7 )+ia i (f 1 -f 7 ) i podobnie dla innych operacji.
Wykorzystanie przedstawionych uproszczeń pozwala w stosunku do zwykłego algorytmu zawierającego N 2 działań zespolonych zmniejszyć ich liczbę dla N=2 M do 2NM
Rozwiązywanie równań algebraicznych f(x)=0 Metoda bisekcji Przykład: x f(x) x f(x)
x f(x) Zaleta metody: Jeżeli pierwiastek istnieje, to go znajdziemy. Wada metody: Duża liczba obliczeń Regula falsi. Założenia: a)funkcja ma w przedziale [a,b] tylko jeden pierwiastek i zachodzi f(a)f(b)<0, b) jest funkcja jest klasy C 2 [a,b], pierwsza i druga pochodna nie zmieniają znaku na przedziale [a,b].
Funkcja spełniająca powyższe założenia musi mieć w otoczeniu miejsca zerowego jeden z następujących przebiegów: f(a) a b f(b) x y f(a) a b f(b) x y f(a) a b f(b) x y f(a) a b f(b) x y
Przebieg obliczeń metodą regula falsi: x y a b f(a) f(b) x1x1 f(x 1 ) x2x2 analitycznie: ustalamy koniec z warunku f(x 1 )f(a)<0 lub f(x 1 )f(b)<0 Prowadzimy prostą:
ale f(x 1 )=0 stąd lub Dla n-tej iteracji mamy b=x n-1 i podstawiając mamy:
Ocena błędu dla dostatecznie małego przedziału [x n-1,x n ] można przyjąć jako: Metoda regula falsi jest zbieżna dowolnej funkcji ciągłej na przedziale [a,b]. Poszukiwanie pierwiastka zostaje zakończone jeżeli: Metoda jest wolno zbieżna. Przykład:
x f(x) Ponieważ f(-1)=-4, a f(x 1 )=0.192, więc stałym punktem będzie x=-1 x f(x) x f(x) w metodzie bisekcji potrzebowaliśmy 14 kroków ocena błędu:
Metoda siecznych Przepis: Przykład: x f(x) w regula falsi potrzeba 8 kroków
x f(x)0.907E-8 w 6-tym kroku Koniecznie trzeba obliczać f(x n ) i jeżeli zaczyna narastać należy zawęzić przedział i powtórzyć obliczenia. Niebezpieczeństwo znalezienia fałszywego pierwiastka. Metoda szybsza niż reguła falsi. abx1x1 Pierwsza iteracja musi startować z punktów spełniających warunek: f(a)f(b)<0
Metoda Newtona - Raphsona Niech małe w mamy: Pomijając małe drugiego rzędu 2 mamy, że f(x+ )=0, jeżeli Graficznie: x y xnxn n Równanie prostej stycznej w punkcie x n jest: x n+1
Prosta: przechodzi przez zero, czyli y=0, w punkcie x n+1 i mamy: Przykład: x f(x) E-10 W 3 krokach dokładność osiągana w metodzie siecznych w 5 krokach
W obliczeniach numerycznych pochodną najczęściej oblicza się numerycznie: Metoda Newtona – Raphsona jest zbieżna kwadratowo, tzn. Pechowe przypadki: x f(x) x0x0 x1x1 x2x2 rozbieżna Zmniejszyć przedział [x d,x 0 ] xdxd
cykl x f(x) x 1 =x 3 =... x 2 =x 4 =... xdxd Budując procedurę należy się zabezpieczyć przed taką możliwością. Wystartować z punktu x 1 znajdującego się bliżej x d Pierwiastki wielokrotne: Przy pierwiastkach wielokrotnych badać funkcję:
Pierwiastki zespolone Przykład Szukamy zespolonych pierwiastków metodą Newtona - Raphsona
Jako punkt startowy musimy wybrać liczbę zespoloną: x 0 =i gdzie x 2 = i x 3 = i x 4 = i x 5 = i x 6 = i błąd= i x d = i
Układy równań nieliniowych Dany jest układ równań: Dla skrócenia zapisu wprowadzamy oznaczenia: oraz
i równanie zapisujemy krótko: Metoda iteracji prostej Równanie: zapisujemy w postaci: i procedura iteracji prostej ma postać: Stosowana szczególnie w przypadkach jeżeli mamy dobre przybliżenie początkowe. Sytuacja taka występuje np. w przypadku małej zmiany parametrów równania.
Przykład: którego rozwiązaniem jest: x 1 =1; y 1 =0 oraz x 2 =-1; y 2 =0 Szukamy rozwiązania układu po małej zmianie parametrów: mamy schemat iteracyjny: Jako startowy punkt wybieramy: x 0 =1; y 0 =0 i mamy:
n01234 xnxn ynyn n5678 xnxn ynyn n xnxn ynyn
Z przedstawionych obliczeń widać, że metoda jest wolno zbieżna i dlatego stosowana tylko w przypadkach, gdy znamy bardzo dobrze zerowe przybliżenie. Zastosowanie w równaniach różniczkowych. Metoda Newtona - Raphsona Rozwijamy funkcję f k (X) w szereg Taylora w otoczeniu punktu X i :
Dla uproszczenia zapisu wprowadzamy macierz Jacobiego zdefiniowaną następująco:
i w postaci macierzowej możemy krótko zapisać układ równań: gdzie oznaczono: i rozwiązując symbolicznie mamy:
Przykład