Lab 8 – przykładowe rozwiązania M. Głowacki, L-10, PK
1
Laboratorium komputerowe 8 – przykładowe rozwiązania
zad. 1. Interpolacja Lagrange’a 2-ego stopnia.
x = [-1.5, 1.5, 5]; % węzły interpolacji f = [2, -1, 1.2]; % wartości węzłowe xx = x(1):0.01:x(end); % argumenty funkcji
% interpolującej
% wartości funkcji bazowej L0
L0 = (xx-x(2)).*(xx-x(3)) / ( (x(1)-x(2))*(x(1)-x(3)) );
% wartości funkcji bazowej L1
L1 = (xx-x(1)).*(xx-x(3)) / ( (x(2)-x(1))*(x(2)-x(3)) );
% wartości funkcji bazowej L2
L2 = (xx-x(1)).*(xx-x(2)) / ( (x(3)-x(1))*(x(3)-x(2)) );
% wartości funkcji interpolującej L L = f(1)*L0 + f(2)*L1 + f(3)*L2;
% narysowanie wykresu L oraz wartości węzłowych plot(xx,L,'b');
hold on;
plot(x,f,'ro');
Lab 8 – przykładowe rozwiązania M. Głowacki, L-10, PK
2 zad. 2. Interpolacja Lagrange’a dowolnego stopnia.
x = [-4.1, -1.5, 1.5, 5, 7.7]; % węzły interpolacji f = [-0.5, 2, -1, 1.2, 0.3]; % wartości węzłowe xx = x(1):0.01:x(end); % argumenty funkcji
% interpolującej
n = length(x); % liczba węzłów = liczba funkcji bazowych
L = 0; % wartości funkcji interpolującej L for i = 1:n
Li = 1; % wartości i-tej funkcji bazowej Li
for j = 1:n
if j ~= i
Li = Li.*(xx - x(j)) / ( x(i) - x(j) );
end
end
L = L + f(i)*Li;
end
plot(xx,L,'b'); % wykres funkcji interpolującej hold on;
plot(x,f,'ro'); % wartości węzłowe