mirror of
https://bitbucket.org/Mattrixwv/octavefunctions.git
synced 2025-12-06 10:43:58 -05:00
30 lines
933 B
Matlab
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
|
|
|