HyperAIHyperAI

Command Palette

Search for a command to run...

多项式插值 Polynomial Interopolation

日期

2 年前

插值法又称「内插法」,是利用函数 f(x) 在某区间中已知的若干点的函数值,作出适当的特定函数,在区间的其他点上用这特定函数的值作为函数 f(x) 的近似值,这种方法称为插值法。如果这特定函数是多项式,就称它为多项式插值。常用的几种多项式插值法有:直接法、拉格朗日插值法和牛顿插值法。

定义

数据点(x**i,y**i),其中任意两个 x**i 都不相同, 需要找到一个满足

P(xi)=yi,i=0,… ,n

的不大于 n 阶的 p 阶多项式。唯一性定理表明存在一个并且仅有一个这样的 p 阶多项式。

用更加复杂的说法,这个多项式可以表述为:对于 n+1 个插值点(xi),多项式插值定义了一个线性双射

{\displaystyle L_{n}:\mathbb {K} ^{n+1}\to \Pi _{n}}
{\displaystyle L_{n}:\mathbb {K} ^{n+1}\to \Pi _{n}}

其中 

{\displaystyle \Pi _{n}}
{\displaystyle \Pi _{n}}
 是小于或者等于 n 的多项式的向量空间。

在实际应用中,这些插值点可能来自某次实验测量所得的数据,也可能来自某个复杂函数 y=f(x) 的值。通过计算插值多项式,我们可以找到这些实验数据间的规律,或者使用简单的多项式函数 y=P(z) 来近似复杂的函数 y=f(x) 。

构建多项式插值

假设插值多项式的形式为

{\displaystyle p(x)=a_{n}x^{n}+a_{n-1}x^{n-1}+\cdots +a_{2}x^{2}+a_{1}x+a_{0}.\qquad (1)}
{\displaystyle p(x)=a_{n}x^{n}+a_{n-1}x^{n-1}+\cdots +a_{2}x^{2}+a_{1}x+a_{0}.\qquad (1)}

p 对数据点进行插值其含义为

{\displaystyle p(x_{i})=y_{i}\qquad {\mbox{for all }}i\in \left{0,1,\dots ,n\right}.}
{\displaystyle p(x_{i})=y_{i}\qquad {\mbox{for all }}i\in \left{0,1,\dots ,n\right}.}

如果代入等式(1),就得到系数为 

{\displaystyle a_{k}}
{\displaystyle a_{k}}
 的线性方程系统,用矩阵向量形式表示为
{\displaystyle {\begin{bmatrix}x_{0}^{n}&x_{0}^{n-1}&x_{0}^{n-2}&\ldots &x_{0}&1\x_{1}^{n}&x_{1}^{n-1}&x_{1}^{n-2}&\ldots &x_{1}&1\\vdots &\vdots &\vdots &&\vdots &\vdots \x_{n}^{n}&x_{n}^{n-1}&x_{n}^{n-2}&\ldots &x_{n}&1\end{bmatrix}}{\begin{bmatrix}a_{n}\a_{n-1}\\vdots \a_{0}\end{bmatrix}}={\begin{bmatrix}y_{0}\y_{1}\\vdots \y_{n}\end{bmatrix}}.}
{\displaystyle {\begin{bmatrix}x_{0}^{n}&x_{0}^{n-1}&x_{0}^{n-2}&\ldots &x_{0}&1\x_{1}^{n}&x_{1}^{n-1}&x_{1}^{n-2}&\ldots &x_{1}&1\\vdots &\vdots &\vdots &&\vdots &\vdots \x_{n}^{n}&x_{n}^{n-1}&x_{n}^{n-2}&\ldots &x_{n}&1\end{bmatrix}}{\begin{bmatrix}a_{n}\a_{n-1}\\vdots \a_{0}\end{bmatrix}}={\begin{bmatrix}y_{0}\y_{1}\\vdots \y_{n}\end{bmatrix}}.}

为了构建插值多项式

{\displaystyle p(x)}
{\displaystyle p(x)}
,要解这个系统计算系数
{\displaystyle a_{k}}
{\displaystyle a_{k}}

左侧的矩阵通常叫作范德蒙矩阵,它的行列式不为零,这也就证明了唯一性定理:存在唯一的一个插值多项式。

多项式插值的应用

多项式可以根据少数给定的数据点来逼近复杂的曲线,如字体排印学中的文字。一个相关的应用是估计自然对数和三角函数的值:选择几个已知的数据点、构建一个查找表、然后在这些数据点之间进行插值。这样可以得到非常快速的计算。另外多项式插值也是数值积分和数值常微分方程中算法的基础。

多项式插值在 sub-quadratic 乘法以及平方运算中也很关键。例如,有 a = f(x) = a0x0 + a1x1 + … 以及 b = g(x) = b0x0 + b1x1 + … 那么乘积 ab 等于 W(x) = f(x)g(x) 。基于这些点的插值将得到 W(x) 以及乘积 ab 。对于卡拉楚巴乘法来说,这项技术的速度要比普通数目输入的二次乘法速度要快,尤其是在用并行的硬件实现的时候更是这样。

参考来源

【1】https://zh.wikipedia.org/wiki/%E5%A4%9A%E9%A1%B9%E5%BC%8F%E6%8F%92%E5%80%BC

用 AI 构建 AI

从创意到上线——通过免费 AI 协同编码、开箱即用的环境和最优惠的 GPU 价格,加速您的 AI 开发。

AI 协同编码
开箱即用的 GPU
最优定价

HyperAI Newsletters

订阅我们的最新资讯
我们会在北京时间 每周一的上午九点 向您的邮箱投递本周内的最新更新
邮件发送服务由 MailChimp 提供