Algorytm Neville’a – algorytm zaproponowany przez angielskiego matematyka Erica Harolda Neville’a. Jest używany do wyznaczania wartości wielomianu interpolacyjnego (Lagrange’a i Newtona) w danym punkcie Ideą jest wyznaczenie rozwiązania w krokach od pojedynczych węzłów do całego ich zbioru.
Biorąc pod uwagę zbiór danych punktów węzłowych wielomian jest stopnia nie wyższego niż a jego wartości w punktach węzłowych są takie same jak wartości interpolowanej funkcji: dla
Definiujemy wielomiany interpolacyjne i ich wartości w ustalonym punkcie – wartość, w punkcie wielomianu stopnia zerowego przechodzącego przez punkt dla – wartość, w punkcie wielomianu stopnia pierwszego przechodzącego przez punkty oraz dla – wartość, w punkcie wielomianu stopnia n-tego przechodzącego przez punktów dla
Wielomiany powyższego typu spełniają następującą własność rekurencyjną:
gdzie: odpowiada stopniowi wielomianu, oraz
Algorytm Neville’a polega na tym, że za pomocą powyższych wzorów konstruujemy tablicę symetryczną, która zawiera wartości wielomianu interpolacyjnego w ustalonym punkcie dla
Kolejne elementy są obliczane rekurencyjnie na podstawie elementów poprzednich.
W praktyce algorytm Neville’a przedstawiamy w nieco innej wersji. Stosując oznaczenia:
Tablica przyjmuje postać: {|t
Ułatwia to komputerowe zaprogramowanie powyższej tablicy (jako tablicy dwuwymiarowej).
Otrzymujemy również wzór rekurencyjny w prostszej postaci:
gdzie: dla
Pseudokod: for i := 0 to n do t[i] = f[i] for i := i - 1 downto 0 do t[j]= t[j + 1] + (t[j + 1] - t[j]) * (x - x[i]) / (x[i] - x[j])
Szukaną wartość wielomianu interpolacyjnego otrzymujemy jako t.
Przykład Dane mamy:
Wyliczymy wartość wielomianu interpolacyjnego w punkcie x=2. Korzystamy ze wzorów i konstruujemy tablicę:
Zatem dla x=2 wartość wielomianu wynosi 3.
Uogólnienie algorytmu Neville’a Mając zadane węzły do interpolacji można również użyć funkcji wymiernych:
spełniających warunki: dla
W przypadku interpolacji funkcjami wymiernymi można wyprowadzić uogólniony wzór Neville’a. Algorytm wygląda wówczas następująco:
Bibliografia J. Stoer, R. Bulirsch, Wstęp do analizy numerycznej, PWN, 1987. J.N. Lyness, C.B. Moler, Van Der Monde Systems and Numerical Differentiation, „Numerishe Mathematik” 8 (1966), s. 458–464
Kategoria:Algorytmy numeryczne