Я работаю над функцией, которая будет генерировать полиномиальные интерполяции для заданного набора упорядоченных пар.В настоящее время вы вводите индексы узловых точек в одном векторе, а значения функции, которые должны быть интерполированы, во втором векторе.Затем я генерирую символическое выражение для полинома Лагранжа, которое интерполирует этот набор точек.Я хотел бы иметь возможность перейти от этой символической формы к векторной форме для сравнения с тестовыми функциями и тому подобное.То есть у меня есть кое-что, что порождает некоторый полином P (x) в терминах некоторой символической переменной x.Я хотел бы затем сэмплировать этот многочлен к вектору и получить значения для многочлена над (например) пробелом (-1,1,1000).Если это возможно, как мне это сделать?
Думаю, я включу код, который у меня есть:
function l_poly = lpoly(x,f)
% Returns the polynomial interpolant as computed by lagrange's formula
syms a
n=size(x,2);
l_poly_vec = 1;
l_poly=0;
for k=1:n,
for l=1:n,
if (k ~= l)
l_poly_vec=l_poly_vec*(a-x(l))/(x(k)-x(l));
end
end
l_poly=l_poly+f(k)*l_poly_vec;
l_poly_vec = 1;
end
Я планирую добавить третий (или, возможно, четвертый)) вход в зависимости от того, как я могу решить эту проблему.Я предполагаю, что мне просто понадобится длина вектора, к которому я хочу выполнить выборку, и конечные точки.