有数据 ( x 0 , y 0 ) , ( x 1 , y 1 ) , . . . . , ( x n , y n ) (x_0, y_0),(x_1,y_1),....,(x_n,y_n) (x0,y0),(x1,y1),....,(xn,yn)
可以构造n+1个基函数
b i ( x ) = y i ( x − x 0 ) ( x − x 1 ) . . . ( x − x i − 1 ) ( x − x i + 1 ) . . . ( x − x n ) ( x i − x 0 ) ( x i − x 1 ) . . . ( x i − x i − 1 ) ( x i − x i + 1 ) . . . ( x i − x n ) b_i(x)=y_i\frac{(x-x_0)(x-x_1)...(x-x_{i-1})(x-x_{i+1})...(x-x_n)}{(x_i-x_0)(x_i-x_1)...(x_i-x_{i-1})(x_i-x_{i+1})...(x_i-x_n)} bi(x)=yi(xi−x0)(xi−x1)...(xi−xi−1)(xi−xi+1)...(xi−xn)(x−x0)(x−x1)...(x−xi−1)(x−xi+1)...(x−xn)
他会有 b i ( x j ) b_i(x_j) bi(xj),当i=j时,取值 y i y_i yi,否则全为0
把这些函数加起来就是拉格朗日插值 P n ( x ) P_n(x) Pn(x)
它可以表述成 P n ( x ) = ∑ y i l i ( x ) P_n(x)=\sum y_il_i(x) Pn(x)=∑yili(x)
每次用两个点计算一次线性插值函数,然后用线性插值点和新的数据点再计算新函数,反复迭代到误差极小的程度作为最终的插值函数
一阶差商
二阶差商
构造n阶差商,展开并假设n阶差商为0,就可以建立f(x)和差商的关系式作为近似插值函数
一次分段插值
作为在 [ x i − 1 , x i ] [x_{i-1}, x_i] [xi−1,xi]区间的插值
类似地也有二次,三次分段插值
样条插值是在分段节点处导数连续的分段插值
构造基函数 S i ( x ) = a x 3 + b x 2 + c x + d S_i(x)=ax^3+bx^2+cx+d Si(x)=ax3+bx2+cx+d
根据数据点的值应该相等
连接点处一二阶导数应该相等
边界条件构建方程组解出各个基函数的位置参数
边界条件有三种
自然边界,首尾端点二阶导等于0
固定边界,指定超参数设置首尾边界的值
非扭结边界,首尾端点的二阶导等于他们最近邻的二阶导
带导数的插值,可以在之前牛顿或者拉格朗日插值的基础上,添加导数的约束