Interpolacja
Interpolacja jest metoda numeryczna polegająca na wyznaczaniu w danym przedziale tzw. funkcji interpolacyjnej, która przyjmuje w nim z góry zadane wartości w ustalonych punktach, nazywanych węzłami. Stosowana jest ona często w naukach doświadczalnych, gdzie dysponuje się zazwyczaj skończoną liczbą danych do określenia zależności między wielkościami oraz w celu uproszczenia skomplikowanych funkcji, np. podczas całkowania numerycznego.
W naszym zadaniu badaliśmy 3 funkcje f(x). Dla każdej z nich wybieraliśmy w przedziale
[-5;5] n równooddalonych argumentów. Wartości funkcji dla tych argumentów były jakby naszymi wynikami pomiaru. Problem polegał na, tym że należało znaleźć funkcję p(x), która opisywałaby te wyniki. Oznacza to że wykres funkcji p(x) ma przechodzić przez wybrane przez nas punkty na wykresie funkcji f(x).
Do wyznaczenia szukanej funkcji interpolacyjnej p(x) posłużył nam program wykorzystujący metodę Lagrange'a.
gdzie
równoodległe argumenty funkcji, czyli
, a
wartości funkcji w wybranych przez nas punktach.
Fragment kodu źródłowego:
function [war]=p(arg,x,y,n1)
war=0;
for i=1:n1
s=y(i);
for j=1:n1
if i~=j
s=s*(arg-x(j))/(x(i)-x(j));
end
end
war=war+s;
end
end
Poniżej przedstawiliśmy wyniki naszego doświadczenia. wykres czerwony przedstawia funkcję f(x) natomiast czarny wielomian interpolacyjny. x0 jest pierwszym branym pod uwagę argumentem funkcji. h oznacza odległość między kolejnymi argumentami. n - ilość węzłów interpolacji.
f(x)=sin(x); h=2,5; x0=-5; n=4
f(x)=sin(x); h=2; x0=-5; n=5
f(x)=sin(x); h=1,8; x0=-5; n=7;
f(x)=sin(x); h=1; x0=-5; n=10;
f(x)=1/(1+x^2); h=2.5; x0=-5; n=4
f(x)=1/(1+x^2); h=2; x0=-5; n=5
f(x)=1/(1+x^2); h=1; x0=-5; n=10;
f(x)=1/(1+x^2); h=0.7; x0=-5;n=15
f(x)=exp(-x^2); h=2; x0=-5; n=5
f(x)=exp(-x^2); h=1.5; x0=-5; n=7
h=1; x=-5; n=10;
f(x)=exp(-x^2); h=0.5; x0=-5; n=20;
Jak widać na wykresach dokładność interpolacji bardzo silnie zależy od ilości punktów, przez które ma ona przechodzić, Im więcej mamy węzłów interpolacji tym bardziej funkcja p(x) jest zbliżona do funkcji wyjściowej f(x).
Porównując metodę Lagrange'a i metodę różnic skończonych możemy przypuszczać, że metoda Lagrange'a jest bardziej złożona obliczeniowo. Dla dużej ilości punktów pomiarowych program może potrzebować bardzo dużo czasu na obliczenie wartości wielomianu interpolacyjnego. Metoda różnic skończonych natomiast wymaga nieco większego wykorzystania pamięci do przechowania dodatkowych zmiennych.