首页 > 其他分享 >拉格朗日插值法

拉格朗日插值法

时间:2023-03-23 16:11:34浏览次数:45  
标签:拉格朗 limits 插值法 dfrac sum prod neq

拉格朗日插值法

引入

拉格朗日插值法是一种解决多项式插值的方法。

多项式插值:

已知 \(n + 1\) 个点 \((x_i, y_i)\), 求一个多项式函数 \(f(x)\) 使得其图像经过这 \(n + 1\) 个点。

其中 \(f(x)\) 被称为插值多项式。

可以证明 \(n + 1\) 个点可以唯一确定一个最高 \(n\) 次的插值多项式。

结论

\[f(k) = \sum\limits_{i = 0}^n y_i \prod\limits_{j \neq i} \dfrac{k - x_j}{x_i - x_j} \]

可以发现对于一个点 \((x_a, y_a)\),当 \(i \neq a\) 时,\(\prod\) 部分会有一个 \(\dfrac{x_a - x_a}{x_i - x_a}\),此时该式子值为 \(0\)。而当 \(i = a\) 时,\(\prod\) 部分的值为 \(1\)。故 \(f(x_a) = y_a\)。

求某一点的值的复杂度为 \(O(n^2)\)。

取值连续时的优化

当 \(x\) 的取值连续,即 \(x_i = i\) 时,可以将复杂度优化到 \(O(n)\)。

\[\begin{align*} f(k) &= \sum\limits_{i = 0}^n y_i \prod\limits_{j \neq i} \dfrac{k - x_j}{x_i - x_j} \\ &= \sum\limits_{i = 0}^n y_i \prod\limits_{j \neq i} \dfrac{k - j}{i - j} \end{align*} \]

令 \(pre_i = \prod\limits_{j = 0}^i (k - j), suf_i = \prod\limits_{j = i}^n (k - j)\)。

\[f(k) = \sum\limits_{i = 0}^n y_i \dfrac{pre_{i - 1} \times suf_{i + 1}}{i! \times (n - i)!} \times (-1)^{n - i} \]

重心拉格朗日插值法

一种可以 \(O(n)\) 插入一个点,\(O(n)\) 查询的拉格朗日插值法。

依然考虑这个式子:

\[\begin{align*} f(k) &= \sum\limits_{i = 0}^n y_i \prod\limits_{i \neq j} \dfrac{k - x_j}{x_i - x_j} \\ &= \sum\limits_{i = 0}^n y_i \dfrac{\prod\limits_{j \neq i} k - x_j}{\prod\limits_{j \neq i} x_i - x_j} \\ &= \sum\limits_{i = 0}^n \dfrac{y_i}{k - x_i} \dfrac{\prod\limits_{j = 0}^n k - x_j}{\prod\limits_{j \neq i} x_i - x_j} \\ \end{align*} \]

设 \(g(k) = \prod\limits_{i = 0}^n k - x_i, t_i = \dfrac{y_i}{\prod\limits_{j \neq i} x_i - x_j}\)。

\[\begin{align*} f(k) &= \sum\limits_{i = 0}^n \dfrac{g(k)t_i}{k - x_i} \\ &= g(k) \sum\limits_{i = 0}^n \dfrac{t_i}{k - x_i} \end{align*} \]

于是每次插入只需要更新之前的所有 \(t_i\) 并计算当前点的 \(t_i\) 即可,时间复杂度为 \(O(n)\)。

由于 \(g(k)\) 和 \(\sum\limits_{i = 0}^k \dfrac{t_i}{k - x_i}\) 都可以 \(O(n)\) 求得,故询问复杂度也是 \(O(n)\)。

标签:拉格朗,limits,插值法,dfrac,sum,prod,neq
From: https://www.cnblogs.com/mk-oi/p/lagrange.html

相关文章

  • 拉格朗日插值入门
    我们都知道,通过\(n+1\)个点可以求出一个\(n\)次的多项式,使这个多项式通过这\(n+1\)个点。拉格朗日插值,就是一种求这个多项式的方法。这种方法使如此的睿智,以至于我可......
  • 拉格朗日插值
    这个东西应该在很久之前就要学的结果被鸽到了现在。我是鸽德拉格朗日插值拉格朗日插值解决的是一类给定多项式的点值表示让你求另一个点的函数值的问题。先来思考这个......
  • 拉格朗日和kkt公式的应用示例
    https://o-o-sudo.github.io/numerical-methods/-kkt-lagrange-multiplier-to-kkt-condition.html                 ......
  • 函数拟合各方法比较(4次多项式-指数方程-4参数方程-拉格朗日-埃特金插值-Akima插值-三
    函数定义4次多项式: y=a*x*x*x+b*x*x+c*x+d指数方程: y=a*pow(e,b*x)+c4参数方程: y=(a-d)/(1+pow(x/c,b))+d其他为插值方式数据源数据源自热敏电阻的温度曲线, ......
  • 拉格朗日插值小应用
    关于拉格朗日插值:我只会最简单的形式喵。就是给\(n\)个点值,就能在\(O(n^2)\)的时间复杂度内求出当\(x=a\)的时候的值。其标准形式是:\(\displaystyle\sum_{i=1}^n......
  • 拉格朗日插值
    前言关于范德蒙德矩阵的傻逼证明自行百度。点值表达一个次数界为\(n\)的多项式\(A(x)\)的点值表达是一个由\(n\)个点对组成的集合:\[\{(x_0,y_0),(x_1,y_1),\dot......
  • 拉格朗日插值
    拉格朗日插值公式任给定\(F\)中\(2n+2\)个数\(x_1,x_2,…,x_{n+1},y_1,y_2,…,y_{n+1},\)其中\(x_1,x_2,…x_{n+1}\)互不相同,则存在唯一的次数不超过n的多项式\(f(x)\),满足\(f(x_i)=......
  • 拉格朗日插值学习笔记
    拉格朗日插值首先一个定理:n个点(横坐标不同)唯一确定一个最高n-1次的多项式。拉格朗日插值法用于在\(O(n^2)\)的时间复杂度内解决以下问题给定\(n\)个点\((x_i,y_......
  • 拉格朗日插值
    本文作者为JustinRochester。目录地址上一篇下一篇......
  • 拉格朗日插值法
    概述拉格朗日插值法(下简称拉插)是一种多项式单点求值的算法。对于任意的\(K\)次多项式,我们可以利用其已知的\(K+1\)个或更多的点唯一确定该多项式的形式,且拥有比......