【算法竞赛学习笔记】拉格朗日插值-数学提升计划

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

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(x1x2)(x1x3)(xx2)(xx3)+y2(x2x1)(x2x3)(xx1)(xx3)+y3(x3x1)(x1x2)(xx1)(xx2)

这样我们直接把每个点代入,都只会剩下一项 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=0ni=jx[i]x[j]kx[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]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RWLinno

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值