background image

 

 

1/16 

 

 

 

 

 

W

W

y

y

k

k

ł

ł

a

a

d

d

 

 

1

1

:

:

 

 

I

I

n

n

t

t

e

e

r

r

p

p

o

o

l

l

a

a

c

c

j

j

a

a

 

 

w

w

i

i

e

e

l

l

o

o

m

m

i

i

a

a

n

n

o

o

w

w

a

a

 

 

 

 

 

 

background image

 

 

2/16 

 

Sformułowanie problemu interpolacji. Letoda lagrange’a 

Rozważmy  zadany  układ  punktów 

{(

,

),

0,1,..., }

j

j

x y

j

n

,  zwanych  dalej  węzłami 

interpolacyjnymi.  

Poszukujemy wielomianu interpolacyjnego zadanego wzorem 

1

1

1

0

0

( )

...

n

n

n

k

n

n

n

k

k

P x

a x

a

x

a x

a

a x

 

 

i takiego, że         

 

 

(

)

,

0,1,...,

n

j

j

P x

y

j

n

 

Innymi słowy – wykres wielomianu 
powinien być linią przechodzącą 
przez zadany układ węzłów 
interpolacyjnych (vide obrazek 

Trzy podstawowe pytania: 

1. Czy taki wielomian istnieje? 
2. Jeśli tak, to czy jest jedyny? 
3. Jeśli tak, to jak go wyznaczyć? 

background image

 

 

3/16 

 

Zacznijmy  od  podejścia  typu  „brutalna  siła”  (brute  force  approach).  Podejście  to  polega  na 
wypisaniu  wynikającego  z  warunków  interpolacji  układu  równań  dla  współczynników 
wielomianu  

(

)

,

0,1,...,

n

j

j

P x

y

j

n

. Układ ten ma postać 

2

1

0

0

0

0

0

0

2

1

1

1

1

1

1

1

2

1

2

1

1

1

1

1

n

n

n

n

n

n

j

j

j

j

j

j

n

n

n

n

n

n

n

n

a

y

x

x

x

x

a

y

x

x

x

x

a

y

x

x

x

x

a

y

x

x

x

x

    

    

    

    

    

    

    

    

   

 

W notacji macierzowo-wektorowej mamy   

 

 

Wa

y

      

gdzie  element macierzy W (zwanej macierzą Van der Monda) dane są wzorem  

,

,

,

0,1,...,

k

j k

j

w

x

j k

n

 

Otrzymany układ równań można (przynajmniej w teorii) rozwiązać za pomocą jednej ze standardowych 
metod (np. metodą eliminacji Gaussa). Można pokazać, że jeśli wszystkie węzły są różne, to macierz W 
jest nieosobliwa i układ ma jednoznaczne rozwiązanie – wielomian interpolacyjny istnieje i jest jedyny. 

background image

 

 

4/16 

 

Zauważmy,  że  stopień  wielomianu  interpolacyjnego 

n

P

  jest  o  jeden  niższy  niż  liczba  węzłów.  W 

przeciwnym  wypadku  zagadnienie  wyznaczenia  wielomianu  interpolacyjnego  albo  jest  nieokreślone 
(gdy  stopień  wielomiany  jest  ≥  liczby  węzłów;  wtedy  istnieje  nieskończenie  wiele  wielomianów 
interpolacyjnych) lub nadokreślony (gdy stopień wielomianu jest < liczba węzłów minus jeden; wtedy 
układ jest na ogół sprzeczny i wielomian interpolacyjny nie istnieje) 

Dobra  wiadomość:  istnieją  metody  sprytniejsze  niż  metoda  ”brutalna”!  Ich  zastosowane 
pozwala uniknąć rozwiązywania jakiegokolwiek układu
 równań.  

Zacznijmy  od  metody  Lagrange’a.  Jej  główna  idea  polega  na  wykorzystaniu  specjalnie 
skonstruowanych wielomianów interpolacyjnych, danych wzorem 

0

1

1

0

0

1

1

(

)

(

)(

)

(

)

( )

,

0,1,...,

(

)

(

)(

)

(

)

n

j

k

k

n

k

j

k

k

k

k

k

k

n

k

j

j k

x

x

x

x

x

x

x

x

x

x

l x

k

n

x

x

x

x

x

x

x

x

x

x

 

Kluczowa własność tych wielomianów to 

0

(

)

1

k

j

jk

symbol

j

k

if

l x

if

j

k

 

Kronecker

 

background image

 

 

5/16 

 

 

Wykresy 

takich 

wielomianów 

przedstawiają się następująco 

 

 
 
 
Mając powyżej zdefiniowane wielomiany (interpolacyjne Lagrange’a; nie należy ich mylić w 
tzw.  ortogonalnymi  wielomianami  Lagrange’a)  rozwiązanie  problemu  interpolacji  jest 
natychmiastowe. Wystarczy napisać 

0

( )

( )

n

n

k k

k

P x

y l x

   

W istocie, weryfikacja warunków interpolacji daje następujący efekt 

0

0

(

)

(

)

,

0,1,...,

n

n

n

j

k k

j

k

jk

j

k

k

P x

y l x

y

y

j

n

 

background image

 

 

6/16 

 

Dla dociekliwych: 

Alternatywna (ale równoważna) formuła dla wielomianu interpolacyjnego P

n

  ma postać 

       

      

 

 

 

1

0

1

( )

( )

(

)

(

)

n

n

n

k

k

k

n

k

x

P x

y

x

x

x

     (

wykazać !

gdzie 

1

0

1

0

( )

(

)

(

)(

)...(

)

n

n

k

n

k

x

x

x

x

x

x

x

x

x

 

Przybliżanie (aproksymacja) funkcji wielomianem interpolacyjnym 

Wielomian interpolacyjny może być użyty do przybliżania innych funkcji. Załóżmy, że mamy 
dane węzły interpolacyjne 

{(

,

),

0,1,..., }

j

j

x y

j

n

        gdzie    

,

0,1,...,

(

)

j

j

j

n

y

f x

 

Kluczowe pytanie: jaka jest dokładność przybliżenia (aproksymacji) zadanej funkcji f  przez 
wielomian interpolacyjny P

n

 obliczony dla tych węzłów? 

Ogólnej odpowiedzi na tak zadane pytanie udziela następujące twierdzenie.  

 

background image

 

 

7/16 

 

Twierdzenie 1: Załóżmy, że 

(

1)

(

)

n

x

f

C

I

 dla pewnego przedziału 

x

 z jej dziedziny. Niech 

0

1

1

,

,...,

n

x x

x

 będą zadanymi i różnymi  węzłami interpolacyjnymi  zawartymi  w 

x

I

  i niech x 

oznacza dowolną liczbę w tym przedziale. 

Wówczas  istnieje  taka  liczba 

x

I

  ,  że  błąd  aproksymacji  funkcji  f  przez  wielomian 

interpolacyjny P

n

  może być zapisany w postaci 

(

1)

1

( )

( )

( )

( )

( )

(

1)!

n

n

n

n

f

E x

f x

P x

x

n

 

 

gdzie 

1

0

1

0

( )

(

)

(

)(

)...(

)

n

n

k

n

k

x

x

x

x

x

x

x

x

x

 

Dowód: 

Ustalmy x and rozważmy funkcję postaci 

1

1

( )

( )

( )

( )

,

,

0,1,...,

( )

n

n

n

k

n

E x

g t

E t

t

x

x

k

n

x

 

Twierdzimy, że funkcja g ma dokładnie n+2 miejsca zerowe (pierwiastki).  

background image

 

 

8/16 

 

W istocie, mamy … 

1

1

0

0

1

( )

(

)

(

)

(

)

0 ,

0,1,...,

( )

( )

( )

( )

( )

n

k

n

k

n

k

n

n

n

n

E x

g x

E x

x

k

n

x

E x

g x

E x

x

1

( )

n

x

0

 

Skoro tak, to pochodna 

g

  ma w  przedziale I

x

  n+1 miejsc zerowych, pochodna 



g

 ma n 

miejsc zerowych, itd. Wreszcie, pochodna 

(

1)

n

g

 ma w przedziale I

x

  dokładnie jedno miejsce 

zerowe – oznaczmy je symbolem ξ 

(

1)

( )

0 ,

n

x

g

I

 

Co to oznacza? Otóż mamy: 

1

1

(

1)

(

1)

(

1)

(

1)

(

1)

1

1

0

!

(

1

)

1

( )

( )

0

( )

( )

( )

( )

( )

(

1)!

( )

( )

n

n

n

wspolczynnik

bo P jest

stopnia n

przy x

w

n

n

n

n

n

n

n

n

n

n

n

x

jest rowny

n

E x

E x

g

E

f

P

n

x

x

 

co po przekszałceniu daje natychmiast formułę z tezy twierdzenia. Koniec dowodu!  

background image

 

 

9/16 

 

W przypadku szczególnym równoodległych węzłów interpolacyjnych mamy 

0

0

,

0,1,..., ,

n

k

x

x

x

x

kh

k

n

h

n

 

Można pokazać, że dla węzłów równoodległych mają miejsce oszacowania 

0

1

(

1)

(

1)

1

1

4

[

,

]

0

( )

!

( )

( )

max |

( ) |

4(

1)

n

n

n

n

n

n

k

n

x x

k

h

x

x

x

h

n

f x

P x

f

n

                

Czy  zwiększenie  liczby  użytych  węzłów  interpolacyjnych  prowadzi  do  ulepszenia 
aproksymacji,  tj.  zmniejszenia  różnicy  pomiędzy  oryginalną  funkcją  a  przybliżającym  ją 

wielomianem interpolacyjnym? Niekoniecznie! 

 

Rozważmy aproksymację następującej fukcji wymiernej 

2

1

( )

1 10

f x

x

 

na  odcinku  [-1,1] 

wielomianami  interpolacyjnym 

rozpiętych na węzłach równoogległych.  

Efekt pokazuje obrazek.  

background image

 

 

10/16 

 

Amplituda “oscylacji” wielomianu interpolacyjnego w pobliżu konców przedziału powiększa 
się  ze  wzrostem  jego  stopnia  n.  Błąd  aproksymacji  nie  maleje,  lecz  wzrasta.  Ściślej,  ciąg 
liczbowy postaci 

[ 1,1]

max

( )

( )

n

n

x

f x

P x

 

 

jest rozbieżny. Jest to przykład tzw. efektu Rungego

Lekarstwem  na  efekt  Rungego  (do  pewnego  stopnia)  jest  użycie  węzłów  rozmieszczonych 
nierównomiernie.  Intuicja  podpowiada,  że  w  pobliżu  końców  przedziału  interpolacji  węzły 
pownny być rozmieszczone gęściej. Okazuje się, że istnieje optymalny wybór węzłów! Dla 
przedziału [-1,1] są to liczby miejsca zerowe wielomianu Czebyszewa (2-ego rodzaju) stopnia 
n+1, tj.  

2

1

cos

,

0,1,...,

1 2

T

k

k

x

k

n

n

 

Wielomiany Czebyszewa definiuje następująca reguła rekurencyjna 

0

1

1

1

,

( )

1

( )

1

( )

2

( )

( ) ,

1, 2,...

k

k

k

T

T x

x

T

x

xT x

T

x

k

 

background image

 

 

11/16 

 

Na przykład: 

2

3

4

2

2

3

4

( )

2

1 ,

( )

4

3 ,

( )

8

8

1

T x

x

T x

x

x T x

x

x

 , itd. Zachodzi również 

następujący związek z funkcjami trygonometrycznymi 

cos

(cos )

k

kx

T

x

 

Z punktu widzenia aktualnego problemu, kluczowa własność wielomianów Czebyszewa to 

[ 1,1]

( )

1 ,

0,1,...

k

x

T x

k

  

 

Możemy zatem napisać 

1

0

0

1

( )

2

(

)

(

)

2

n

n

n

T

T

n

k

k

n

k

k

T

x

x

x

x

x

 

Głębokie twierdzenie mówi, że dla każdego innego wyboru n+1 punktów w przedziale [-1,1] 
mamy zawsze  

[ 1,1]

0

1

max

(

)

,

[ 1,1] ,

0,1,...,

2

n

k

k

n

x

k

x

z

z

k

n

 

 

 

tj. wybór miejsc zerowych wielomianu  

1

( )

n

T

x

 w roli węzłów interpolacyjnych  minimalizuje 

wartość bezwzględną wielomianu 

1

( )

n

x

 w przedziale [-1,1]. 

background image

 

 

12/16 

 

Oszacowanie  błędu  aproksymacji  przez  wielomian  interpolacyjny  zbudowany  na  węzłach 
Chebyszewa ma postać 

(

1)

[ 1,1]

1

( )

( )

max |

( ) |

2 (

1)!

n

n

n

f x

P x

f

n

 

 

Zauważmy, że mianownik bardzo szybko maleje ze wzrostem stopnia wielomianu n

 Oznacza 

to,  że  dobre  przybliżenie  funkcji    f    jest  możliwe  nawet  wtedy,  gdy  maksimum  modułu  jej 
(n+1)-ej  pochodnej  rośnie  szybko  z  n.  Jak  pokazuje  rysunek,  wybór  węzłów  Chebyszewa 
eliminuje efekt Rungego w naszym przykładzie. 

 

Dla  przedziału  [a,b]  węzły  Czebyszewa  definiujemy 
wzorem 

2

1

cos

2

1 2

2

T

k

b a

k

a

b

x

n

 

a oszacowanie błędu aproksymacji ma postać 

1

(

1)

2

1

[ , ]

(

)

( )

( )

max |

( ) |

2

(

1)!

n

n

n

n

a b

b a

f x

P x

f

n

 

background image

 

 

13/16 

 

Konstrukcja wielomianu interpolacyjnego metodą Newtona

 

Na koniec przedstawimy alternatywną metodę wyznaczania wielomianu interpolacyjnego.  

Jak  poprzednio,  mamy  dane 
interpolacyjne 

 

0

0

1

1

{(

,

),( ,

),...,(

,

)}

n

n

x y

x y

x y

 

Konstruujemy sekwencje (tablicę) 
tzw.  różnic  dzielonych 

wg 

przedstawionych  formuł.  Należy 
zwrócić 

uwagę 

na 

sposób 

numerowania  kolejnych  różnic 
dzielonych 

na 

kolejnych 

poziomach.

 

 

 

 

1

1

,

1

1

1

2,

1

,

1

,

1,

2

2

1,

2,...,

,

1,...,

1

,

1,...,

1,

0,1,...,

,

0,1,....,

,

0,1,...,

1

,

0,1,...,

2

,

0,1,...,

k

k

k

k

k

k

k k

k

k

k

k

k

k

k k

k k

k

k

k

k

k

k m

k k

k m

k k

k m

k m

m

n

Y

y

k

n

y

y

Y

Y

Y

k

n

x

x

x

x

Y

Y

Y

k

n

x

x

Y

Y

Y

k

n

m

x

x

Y

Y

 

2,...,

0,1,...,

1

0

,

n

n

n

Y

m

n

x

x

background image

 

 

14/16 

 

Następnie, definiujemy  rodzinę wielomianów

 

0

1

0

(

)(

)...(

)

(

) ,

0,...,

1

k

k

k

j

j

x

x

x

x

x

x

x

x

k

n

 

Wreszcie, wielomian interpolacyjny  P

n

  jest skonstruowany następująco 

0

0,1,..,

1

1

0

0,1

0

0,1,2

0

2

0,1,2,...,

0

2

1

( )

( )

(

)

(

)(

) ...

(

)(

)...(

)

n

n

k

k

k

n

n

P x

Y

Y

x

y

Y

x

x

Y

x

x

x

x

Y

x

x

x

x

x

x

 

 

Powyższa formuła jest nieoczywista, ale jej dowód jest dość długi i  „techniczny”. Można do 
znaleźc w większości podręczników do analizy numerycznej. Ograniczymu się do pokazania 
jak działa wzór Newtona dla n = 2.  

Zgodnie z tym wzorem, wielomian interpolacyjny dla węzłów 

0

0

1

1

2

2

{( ,

),( ,

),( ,

)}

x y

x y

x y

 ma 

postać 
 

2

0

0,1

0

0,1,2

0

1

( )

(

)

(

)(

)

P x

Y

Y

x

x

Y

x

x

x

x

 

background image

 

 

15/16 

 

Pokażemy, że wielomian 

2

( )

P x

 

istotnie spełnia warunki interpolacji tj. 

2

(

)

,

0,1, 2

j

j

P x

y

j

 

Rachunki przebiegają następująco:

 

2

0

0

1

0

2

1

0

0,1

1

0

0

1

0

(

)

( )

(

)

P x

y

y

y

P x

y

Y

x

x

y

x

x

1

0

(

)

x

x

1

0

2

1

2

1

1

0

1

0

1

0

1

2

2

0

0,1

2

0

0,1,2

2

0

2

1

0

2

0

2

0

(

)

(

)

(

)(

)

(

)

y

y

y

y

x

x

x

x

y

y

x

x

y

P x

y

Y

x

x

Y

x

x

x

x

y

x

x

x

x



2

0

(

)

x

x

1

0

1

0

1

0

1

0

1

0

1

0

2

1

0

2

0

2

1

2

1

0

2

1

2

(

)

(

)

(

)

(

y

y

y

y

y

y

x

x

x

x

x

x

x

x

y

x

x

y

y

x

x

y

y

y

x

0

1

2

x

x

x

2

)

y





 

 
 
 
 
 
 
 

background image

 

 

16/16 

 

Algorytm Hornera 
 

Efektywną numerycznie metodą obliczania wartości wielomianu interpolacyjnedo zadanego 
w formie Newtona jest algorytm Hornera. Jego pseudokod można zapisać następująco  
 

0,1,...,

%

%

%

( )

,

0,1,...,

( )

1 : 0 : 1 (

!)

(

)

( )

k

k

Horne

s

r summation of the Newton p

W n

for k

n

loop runs backwards

s

s

x

x

W k

end

retur

olynomial

Vector w stores necessary divided differences

w k

Y

k

n

n

s

 

 