为什么此Lagrange函数输出的值与polyfit不同?

时间:2019-03-30 21:23:53

标签: matlab

我必须做一些作业才能解决此问题,而且我不确定为什么我的Lagrange函数输出的值与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更准确还是我的Lagrange函数有问题吗?我会发布x,y,xdata和ydata值,但x和y中有100个值。

0 个答案:

没有答案