Loading...
墨滴

氟西汀

2021/04/24  阅读:29  主题:默认主题

拉格朗日插值法

插值法

引言

许多实际问题都用函数 来表示某种内在规律的数量关系,其中相当一部分函数是通过实验或计算得到的,并且只是 上一系列点 的函数值 这只是一张函数表。有的问题虽有解析表达式,但由于计算复杂,使用不方便,通常也造一个函数表,比如平方根表、立方根表、对数表和三角函数表等等。为了研究函数的变化规律,往往需要求不在表上的函数值。因此,我们希望根据给定的函数表做一个既能反映函数 的特性,又便于计算的简单函数 ,用 近似

函数逼近问题

通常同代数多项式或分段代数多项式作为 ,并使 成立。这样确定的 就是我们希望的函数。

常用插值法

  • 多项式插值: 为多项式函数
  • 分段插值: 为分段多项式函数
  • 三角插值: 为三角函数

插值法定义

设函数 在区间 上有定义,且 已知在点 上的值

若存在一简单函数 ,使

成立,就称 的插值函数,点 称为插值节点,包含插值的区间** 称为插值区间**,上式称为插值条件,求插值函数 的方法称为插值法

为次数不超过 的代数多项式,即:

其中 为实数,就称 插值多项式,相应的插值法称为多项式插值。若 为分段多项式,就是分段插值。若为三角多项式,就称为三角插值

插值方法研究的问题

拉格朗日多项式 函数称为拉氏基函数,满足条件

注:

插值余项

但绝对不是次数越高越好

matlab代码实现

function func = Lagrange_poly(X, y)
    func = 0;
    x = sym('x');
    n = length(X);
    for i = 1:n
        f = 1;
        for j = 1:n
            if i~=j
                f = f*(x-X(j))/(X(i)-X(j));
            end
        end
        f = f*y(i);
        func = func + f;
    end
end

对三角函数进行插值测试

X = [0pi/6pi/25*pi/6pi];
Y = [01/2 ,11/20];
x = 0:pi/50:pi;
f = Lagrange_poly(X, Y);
y = subs(f, x);
plot(x, sin(x));
hold on
plot(x, y);

得到的插值结果与原图基本一样。

氟西汀

2021/04/24  阅读:29  主题:默认主题

作者介绍

氟西汀