首页 > 其他分享 >Lagrange 插值

Lagrange 插值

时间:2024-09-11 15:02:53浏览次数:10  
标签:dots ell limits 插值 多项式 因式 Lagrange prod

给定 \(n\) 个横坐标不同的点,求过这 \(n\) 个点的 \(n-1\) 次多项式。

算法引入

这可以直接用高斯消元做,但是时间复杂度 \(\mathcal O(n^3)\) 不可接受,我们需要优化。
我们令 \((x_1,y_1),(x_2, y_2),\dots,(x_t, y_t)\) 为这些点。考虑构造一个函数 \(\ell_j(x)\) 满足

\[\ell_j(x)=\begin{cases} 1 &x=x_j\\ 0 &x\not=x_j \end{cases} \]

如果有这样一个函数,则该多项式可以表示为 \(F(x)=\sum\limits_{j=1}^{t}y_j\ell_j(x)\)。问题的关键变成如何构造这样一个 \(\ell _j(x)\)。
先来看看 \(\ell_j(x)\) 需要满足什么性质:

  1. 是多项式函数
  2. 最高次小于等于 \(n-1\)
    当 \(j\) 等于 \(1,2,\dots,j-1,j+1,j+2,\dots,t\) 时,\(\ell_j(x)=0\)。所以很显然的有 \(\ell_j(x)\) 中有 \(\prod\limits_{i\not=j}(x-x_i)\) 这个因式。又由于该因式的最高次为 \(n-1\),则 \(\ell_j(x)\) 为该因式的倍数。

\([x_j]\prod\limits_{i\not=j}(x-x_i)=\prod\limits_{i\not=j}(x_j-x_i)\) ,\(\ell_j(x)=1\),所以就有了如下式子

\[\ell_j(x)=\prod\limits_{i\not= j}\dfrac{x-x_i}{x_j-x_i} \]

再与前式整合,得到

\[F(x)=\sum\limits_{j=1}^ty_j\prod_{i\not=j}\dfrac{x-x_i}{x_j-x_i} \]

至此,我们就解决了如上问题。

标签:dots,ell,limits,插值,多项式,因式,Lagrange,prod
From: https://www.cnblogs.com/cqbzljh/p/18408265

相关文章

  • 如何通过插值法计算cell delay?
            我们知道,celldelay是根据inputtransition和outputload计算得到的。如图所示,为X8驱动的buffer的timing查找表。由于buffer是正单边类型cell,那么当一个1->0 翻转的信号经过buffer时,计算timingdelay应该去查找cell_fall这个表格。假设inputtransition为0.......
  • Numba最近邻插值(CPU+ GPU + Z轴切块 + XYZ轴切块 + 多线程)
    文章目录最近邻插值(加速方法)(1)scipy.ndimage.zoom(2)Numba-CPU加速(3)Numba-GPU加速(4)Numba-CPU加速(Z轴切块)(5)Numba-CPU加速(XYZ轴切块)(6)Numba-CPU加速(XYZ轴切块)+多线程输入数据插值倍数时耗scipy.ndimage.zoom(1024,1024,512)4172.16sNumba-CPU(1024,1024,512)456.58sN......
  • 拉格朗日插值
    CSR:又拉又插的东西(又垃圾,又傻叉)JCY:什么你拉插了一晚上?(我学习拉插学了一晚上)什么是拉插给定一些点值,是否可以求出一个函数,使得函数图像穿过这些点,并求出给定的\(x\)所对应的\(y\)。初步思路前置我们想到两个点肯定可以确定一条直线,而三个点肯定可以确定一条抛物线,所以我们......
  • matlab中的插值与拟合(代码)
    目录1.对均匀数据的插值与拟合2.对散点数据的拟合(如ANSYSfluent导出的节点数据)1.对均匀数据的插值与拟合interp1:一维插值。这是最常用的插值函数之一,用于对一维数据进行插值。它可以执行线性插值、最近邻插值、样条插值等多种类型的插值。%已知数据点x=1:5;y......
  • 拉格朗日插值优化 DP 做题笔记
    本来想在洛谷题单里找斜率优化DP的,然后发现了一个拉格朗日插值优化DP的题单,就点进去尝试了一下。题单。于是先看了雨兔的题解,学了CF995F的做法,然后A了这个题。雨兔题解的链接和我的代码见CF上的提交记录。现在正在做后面的题。P3643[APIO2016]划艇\(a_i,b_i......
  • [转]插值-样条插值 - 努力的孔子 - 博客园
    百度百科定义插值:在离散数据的基础上插补连续函数,使得这条连续曲线经过全部离散点,同时也可以估计出函数在其他点的近似值。样条插值:一种以可变样条来作出一条经过一系列点的光滑曲线的数学方法。插值样条是由一些多项式组成的,每一个多项式都是由相邻的两个数据点决定的,这样,任......
  • 有符号浮点运算的基本步骤:以双线性插值为例
    参考:韩彬的图像处理书、无双软件学院方法。步骤一:无损定点化浮点数在硬件计算中首先需要做的便是定点化,一般是左移一定位宽,可以是2048或4096;这个过程要注意保障无损;步骤二:运算和位宽匹配;要确定所有参与计算的数小数位位宽是匹配的,否则无法进行任何层次的计算;需要特别注意很......
  • vue ---- {{}}插值表达式数据绑定
    数据绑定常用有4种方式:{{}}、v-text、v-html、template{{}}数据绑定最常见的形式就是使用“Mustache”语法(双大括号)的文本插值:<span>message:{{msg}}</span>mustache标签会被替代为对应数据对象航msgproperty的值。无论何时,绑定的数据对象msgproperty发生了改变,插值处的......
  • 拉格朗日插值 学习笔记
    我们知道,对于一个\(k\)次多项式,我们只需知道它在\(k+1\)个点上的取值,就能求出这个多项式。我们可以列方程求出每一个的系数,但是这样的时间复杂度是\(n^3\)的,所以我们使用一些别的方法来求出对于某个点的值。拉格朗日插值:设已知平面内的\(n\)个点,要求这\(n\)个点的\(n......
  • 集合:(ArrayList)的插值和去重,包含(Iterator和listIterator)迭代器相关使用
    总结:去重用for循环,插值可用for循环和迭代器(可以方便在中间插值),如果要修改集合,就用listIterator,防止父类的Iterator没有add添加功能,也避免版本号不一致报错去重:用contains方法,确认新集合中是否存在旧值1、基本数据类型String去重publicclassArrayListQuChong{public......