Files
OctaveFunctions/LagrangePolynomial.m

30 lines
933 B
Matlab

function [Lnk] = LagrangePolynomial(x_data, k, x)
%LagrangePolynomial evaluates a single Lagrange polynomial
%
% Input
% - x_data: One-dimensional list of x-coordinates of poins through
% which the interpolating polynomial will pass. The degree of the
% interpolating polynomial, n, will be inferred from the number
% entries in x_data
% - k: The interpolating polynomial will equal one at x_data(k + 1)
% and be zero for other entries in x_data. 0 <= k <= n
% - x: One-dimensional list of values for which the Lagrange
% polynomial will be evaluted
% Output
% - Lnk: Value of the Lagrange polynomial of degree n, index k, at x
n = length(x_data) - 1;
%Make x a row vector. As noted above, it is assumed to be a single row or
%column
x = x(:)';
Lnk = 1;
for(m = 0:n)
if(m ~= k)
Lnk = Lnk.*(x - x_data(m + 1))/(x_data(k + 1) - x_data(m +1));
end
end
end