数模常用算法系列---插值之拉格朗日多项式插值

插值:求过已知有限个数据点的近似函数

拉格朗日多项式插值

具体原理与推导不多说,感兴趣可以百度,这里直接给出推导公式

\(L_n(x) = \sum_{i=0}^ny_il_i(x) = \sum_{i=0}^nyi(\prod_{j=0,j\neq i}^ny_i\frac{x-x_j}{x_i-x_j})\)

上式称为n次的Largrange插值多项式子。

Matlab实现插值函数:设n个节点数据以数组 x0, y0输入,m个插值点以数组x输入,输出数组y为m个插值。

function y = lagrange(x0,y0,x);
n = length(x0); m = length(x);
for i = 1: m
    z = x(i);
    s = 0.0;
    for k = 1: n
        p = 1.0;
        for j = 1 : n
            if j ~= k
                p = p * (z - x0(j)) / (x0(k) - x0(j));
            end
        end
        s = p*y0(k) + s;
    end
    y(i) = s;
end
        

今日感触:事情多的忙不过来,唉,要学的东西太多了。拒绝浮躁。

你可能感兴趣的:(数模常用算法系列---插值之拉格朗日多项式插值)