Projekt 1 Teoria aproksymacji 1 17

Teoria aproksymacji

Projekt numer 1.17.
Wykonanie: Paweł Kopeć, grupa 32, WFMiIS.

Wstęp

Interpolacja jest to metoda numeryczna polegająca na wyznaczaniu w danym przedziale tak zwanej 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. Interpolacja jest szczególnym przypadkiem metod numerycznych typu aproksymacja.

Interpolacja funkcjami sklejanymi to metoda polegająca na przybliżaniu nieznanej funkcji wielomianami niskiego stopnia. Podany przedział [a, b] dzieli się na przedziały, a w każdym z nich interpoluje się funkcję wielomianem (zwykle niskiego poziomu – 1 lub 3 stopnia) interpolacyjnym. Następnie „sklejenie” tych wielomianów ma tworzyć funkcję sklejaną.

Interpolacja funkcją sklejania stopnia pierwszego


f(x) = ln(x)

Interpolację wykonałem za pomocą funkcji interp1 z metodą „spline”, gdyż jest to odpowiednik interpolacji funkcją sklejania z wykorzystaniem funkcji sklejania 3-rzędu. Wywołanie funkcji musiało odbywać się w zakresie liczb dodatnich, gdyż w przypadku gdy w przedziale [a,b] zawarte było "0", wykres funkcji interpolowanej nie rysował się.

function z = teoaprox17(a,b,n)

% n = liczba przedziałów w przedziale [a,b]

% Walidacja danych

if a > b

c=b;

b=a;

a=c;

end

% Wyznaczanie elementów po podziale na n części

delta=(b-a)/n;

X=a:delta:b;

aux=size(X);

% Tworzenie tablicy używanej przy wykresie

X2=a:0.01:b;

% Obliczenie funkcji nie interpolowanej

Y2=log(X2);

% Tworzenie danych do interpolacji oraz interpolacja

Y=log(X);

Y2int=interp1(X,Y,X2,'spline');

Wykonanie wykresów

Wykresy wykonałem za pomocą funkcji plot. Dodałem również opis osi oraz ograniczyłem wartości na osi pionowej do przedziału y<-10,10> , oraz na osi poziomej do przedziału x <-1,10>(aby wykres sporządzony przez program był czytelny i było na nim widać wszystkie wartości

% Rysowanie wykresów

plot(X2,Y2int,'r.',X2,Y2,'k.');

xlabel('x'); ylabel('y');title('Wykres funkcji y=f(x) oraz funkcji interpolującej');

axis([-1 10 -10 10]);

legend('funkcja interpolująca','funkcja interpolowana');

Wyznaczenie norm


f1∥ = ∫ab|f(x)|dx


$$\left\| f_{2} \right\| = \sqrt[2]{\int_{a}^{b}{f^{2}(x)\text{dx}}}$$

% Liczenie norm

norma1 = trapz(Y);

norma2 = sqrt(trapz(Y.*Y));

disp('norma1: ');disp(norma1);

disp('norma2: ');disp(norma2);

Wyniki, wykresy oraz wnioski

N=2 N=5 N=10 N=50

f1
-1.8444 2.4968 9.3481 62.2512

f2
6.9034 7.4164 8.2106 13.0767

Wykresy funkcji funkcji interpolowanej i interpolującej

Wykresy norm

Jak widać interpolacja metodą sklejanych trzeciego stopnia spisuje się całkiem przyzwoicie, przy zastosowaniu do funkcji logarytmicznej. Już przy wartości N=5 większa część wykresu nakłada się na wykres oryginalnej funkcji. Przy wartościach x bliskich 0 interpolacja metodą sklejanych trzeciego stopnia nie uzyskuje jednak już tak zadowalających rezultatów. Przy wywoływaniu funkcji, należało pamiętać, aby przedział <a;b> nie zawierał w sobie "0". W przeciwnym wypadku funkcja nie była interpolowana.


Wyszukiwarka