【数学】多项式插值

问题描述

给出 n+1 个二维平面上的点对 (x0,y0),(x1,y1),(x2,y2),,(xn,yn) ,求一个经过这些点的不超过 n 次的多项式 P(x)=pnxn+pn1xn1+pn2xn2++p1x+p0 ,也就是 P(xi)=yi 。这个多项式是唯一的。

这个过程叫做插值,也是从多项式的点值表达转换成系数表达的问题。

注:这里使用从0开始的下标是为了让点的下标和多项式系数的下标还有 x 的幂次显得整齐,下面的代码中的下标不一定是从0开始的。

解决思路

拉格朗日插值

由这 n+1 个点,可以构造对应的 n+1 个多项式,其中第 i 的多项式的形式为:

li(x)=j=0,jin(xxj)(xixj)

把下标为 i 的点 xi 代入,可以得到:

li(xi)=j=0,jin(xixj)(xixj)=j=0,jin1=1

把给定的点中,下标不为 i 的某个点 xj0 代入,可以得到:

li(xj0)=j=0,jin(xj0xj)(xixj)=0

因为分子部分总存在 (xj0xj0)=0 所以上式为 0

把不在给定的点中的任意点 x 代入,显然有 n 项,所以,这是一个 n 次的多项式。

于是,把上面的 n+1 个不同的 li(x)yi 相乘,再相加,即可构造下面的多项式:

L(x)=i=0nyili(x)

由上面的推理可知, L(xi)=yi ,并且 L(xi) 是一个不超过 n 次的多项式(由于最高次的系数可能会被抵消,导致次数降低)。

由唯一性定理可知,这个 L(x) 就是我们要找的 P(x) ,即

P(x)=L(x)

模板:【数学】多项式插值 - 拉格朗日插值

牛顿插值

多项式快速插值

高斯消元

求解未知数为 pi,i=0,1,2,,n 的方程组

[x0nx0n1x0n2x0x1nx1n1x1n2x1x2nx2n1x2n2x2xnnxnn1xnn2xn]=[y0y1y2yn]

利用高斯消元在 O(n3) 时间内求出这个方程组的解。

引申阅读

重心拉格朗日插值法、差分法、龙格现象

https://www.luogu.com.cn/problem/solution/P4781

posted @   purinliang  阅读(41)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
历史上的今天:
2021-04-10 【算法 - 数据结构】主席树
点击右上角即可分享
微信分享提示