Почему эта функция Лагранжа выдает другие значения, чем полифит? - PullRequest
0 голосов
/ 31 марта 2019

Я должен решить эту проблему для некоторой домашней работы, и я не уверен, почему моя функция Лагранжа выдает значения, отличные от polyfit.

function [p] = LaGr(x, k, xk)

p = 1;
N = length(xk);
n = N - 1;
for j = 1:N
    if(j ~= k)
        p = p * (x - xk(j)) / (xk(k) - xk(j));
    end
end


end

(https://imgur.com/a/L9GKAMh) (https://imgur.com/a/j44Nsbd)) Извините, я не могу опубликовать изображения, потому что моя репутация ниже 10.

Функция и значения x и yэто работает на

clear all;
f = @(x) 1 ./ (1 + 14 * x.^2);
xdata = linspace(-1,1,9);
x = linspace(-1,1,100);
ydata = f(xdata);
y = f(x);
for j = 1:length(x)
    K = 5;
    y(j) = LaGr(x(j), K, xdata);
end

hold on;
plot(x, y, 'r', 'LineWidth',2);
plot(x, f(x), '-', 'LineWidth', 2);
plot(xdata, ydata, '*k');

Я знаю, что это частично связано с первыми значениями в x, xdata, y и p, но я не уверен, почему. Просто polyfit более точенили что-то не так с моей функцией Лагранжа? Я бы опубликовал значения x, y, xdata и ydata, но в x и y есть 100 значений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...