title : 拉格朗日插值
date : 2022-2-19
tags : ACM,数学,杂项
author : Linno
拉格朗日插值
简介
在平面直角坐标系中, n + 1 n+1 n+1个 x x x坐标不同的点可以确认唯一的最高次为 n n n的多项式。当我们要解决这些点求多项式的问题时,可以使用高斯消元来获得每一项的系数,但复杂度是 O ( n 3 ) O(n^3) O(n3)的,而且往往会存在精度问题,而拉格朗日插值法可以在 O ( n 2 ) O(n^2) O(n2)的复杂度内解决这一问题。
公式
假设多项式经过 ( x 1 , y 1 ) , ( x 2 , y 2 ) , ( x 3 , y 3 ) (x_1,y_1),(x_2,y_2),(x_3,y_3) (x1,y1),(x2,y2),(x3,y3)三个点,那么可以假设
f ( x ) = y 1 ( x − x 2 ) ( x − x 3 ) ( x 1 − x 2 ) ( x 1 − x 3 ) + y 2 ( x − x 1 ) ( x − x 3 ) ( x 2 − x 1 ) ( x 2 − x 3 ) + y 3 ( x − x 1 ) ( x − x 2 ) ( x 3 − x 1 ) ( x 1 − x 2 ) f(x)=y_1\frac{(x-x_2)(x-x_3)}{(x_1-x_2)(x_1-x3)}+y_2\frac{(x-x_1)(x-x_3)}{(x_2-x_1)(x_2-x3)}+y_3\frac{(x-x_1)(x-x_2)}{(x_3-x_1)(x_1-x2)} f(x)=y1(x1−x2)(x1−x3)(x−x2)(x−x3)+y2(x2−x1)(x2−x3)(x−x1)(x−x3)+y3(x3−x1)(x1−x2)(x−x1)(x−x2)
这样我们直接把每个点代入,都只会剩下一项 y y y,其正确性可以保证。
给出公式 f ( k ) = ∑ i = 0 n ∏ i ≠ j k − x [ j ] x [ i ] − x [ j ] f(k)=\sum_{i=0}^n \prod_{i\ne j}\frac{k-x[j]}{x[i]-x[j]} f(k)=∑i=0n∏i=jx[i]−x[j]k−x[j],我们以此求出给定 k k k时任一点的拟合 y y y值。
优化
①关于x值连续时的优化
当 x i x_i xi的取值是连续的时候,我们可以把式子优化成 O ( n ) O(n) O(n)的复杂度。
把 x i x_i xi换成 i ∈ [ 0 , n ] i\in [0,n]

本文详细介绍了拉格朗日插值法,包括基本原理、公式、优化方法以及在ACM竞赛和多项式计算中的应用。通过拉格朗日插值,可以在O(n^2)的时间复杂度内解决多项式插值问题,同时探讨了连续插值优化、重心拉格朗日插值以及快速插值等技术,提供了具体的例题和代码实现。
最低0.47元/天 解锁文章

1519

被折叠的 条评论
为什么被折叠?



