首页 > 其他分享 >拉格朗日插值 学习笔记

拉格朗日插值 学习笔记

时间:2024-08-12 21:27:51浏览次数:6  
标签:拉格朗 frac 个点 插值 sum 笔记 prod

我们知道,对于一个 \(k\) 次多项式,我们只需知道它在 \(k+1\) 个点上的取值,就能求出这个多项式。我们可以列方程求出每一个的系数,但是这样的时间复杂度是 \(n^3\) 的,所以我们使用一些别的方法来求出对于某个点的值。

拉格朗日插值:

设已知平面内的 \(n\) 个点,要求这 \(n\) 个点的 \(n-1\) 次的函数。我们将每个点 \(i\) 在 \(x\)轴 上的投影设为 \(i'\) ,我们将每个点 \(i\) 与其余点的投影设一个函数 \(f_i(x)=a*\prod_{j=1,j!=i}^n (x-x_j)\) ,其中 \(a\) 是常数,使用交点式来表达一个函数。将点 \((x_i,y_i)\) 代入后,可以求出 \(a=\frac{y_i}{\prod_{j=1,j!=i}^n (x_i-x_j)}\) ,于是函数 \(f_i(x)\) 的表达式为:

\[f_i(x)=y_i*\prod_{j=1,j!=i}^{n}\frac{x-x_j}{x_i-x_j} \]

然后最终这 \(n\) 个点的函数 \(f(x)=\sum_{i=1}^n f_i(x)\) ,即:

\[f(x)=\sum_{i=1}^n y_i*\prod_{j=1,j!=i}^{n}\frac{x-x_j}{x_i-x_j} \]

这个就是拉格朗日插值的式子了,时间复杂度为 \(O(n^2)\) 。

我们可以使用多项式将其优化至 \(O(n log^2\ n)\) 。

横坐标连续的拉格朗日插值:

在一些题目中,如果给定的点有上面的这种性质 或 题目并没有限制点的横坐标的话,那么我们可以将时间复杂度优化至 \(O(n)\) 。

我们假设这些点的横坐标为 \(1...n\) ,然后原来的式子就可以化成:

\[f(x)=\sum_{i=1}^n y_i*\prod_{j=1,j!=i}^{n}\frac{x-j}{i-j} \]

将分子分母分开来处理 \(\prod\) :

\[\prod_{j=1,j!=i}^{n}x-j=\frac{\prod^{n}_{j=1}(x-j)}{x-i} \]

这里可以预处理上面的积,然后除掉 \((x-i)\) 或 处理出以 \(i\) 为分界点的 \((x-j)\) 的前后缀的积。

分母:

\[\prod_{j=1,j!=i}^{n}i-j=(i-1)!*(-1)^{n-i}*(n-i)! \]

然后总的式子就变成了:

\[f(x)=\sum_{i=1}^n y_i*\prod_{j=1,j!=i}^{n}\frac{x-j}{i-j}=\sum_{i=1}^n(-1)^{n-i}* y_i*\frac{\prod_{j=1}^n (x-j)}{(x-i)*(i-1)!*(n-i)!} \]

预处理阶乘的倒数就好了。

标签:拉格朗,frac,个点,插值,sum,笔记,prod
From: https://www.cnblogs.com/Cyanwind/p/18355777

相关文章

  • Java基础-学习笔记09
    **09单例设计模式、final关键字、抽象类、模板设计模式、接口**单例设计模式(静态方法和属性的经典使用)所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。//比如某个核心类,很耗费资源,但只......
  • 做题笔记(三)
    [USACO13DEC]VacationPlanningG题目传送门[USACO13DEC]VacationPlanningG思路总结:一点点小思维+最短路板子。显然我们发现,对于每一次询问的出发点\(u\)只有两种可能:是中枢或者不是中枢。同时注意到,\(K\)的范围非常小,所以可以考虑在中枢上做文章。我们可以先试着在......
  • 差分约束 笔记
    差分约束笔记给定约束\(n\)个未知数的\(m\)个约束条件,求满足条件的未知数的其中一个整数解。\(m\)个约束条件如下:\[\left\{\begin{matrix} x_{c_1}+w_1\gex_{c'_1}\\ x_{c_2}+w_2\gex_{c'_2}\\ x_{c_3}+w_3\gex_{c'_3}\\ \dots\\ x_{c_m}+w_m\ge......
  • UE5学习笔记9-创建一个小窗口提示人物是否和武器重叠
    一、目标    创建一个UsrWidget去显示如果人物和武器重叠显示窗口,如果人物和武器不重叠将窗口隐藏二、创建窗口并显示    1.创建一个窗口蓝图类,命名为PickUpWidget,这个蓝图类不需要C++类,在对应文件夹中单机右键选择用户界面的控件蓝图    2.在界......
  • Java学习笔记4--Java跨平台原理
    一、Java程序运行机制计算机高级语言按照程序的执行方式可以分为编译型语言和解释型语言。编译型语言:编写的程序源代码需要通过编译器生成机器语言目标文件,在计算机上直接执行目标文件。编译型语言的代表是C、C++等。解释型语言:源代码被解释器逐行解释并执行,因此无需编译器生......
  • 积性函数和狄利克雷卷积学习笔记
    积性函数和狄利克雷卷积学习笔记积性函数定义若函数\(f(x)\)满足\(f(ab)=f(a)f(b)\),其中\(a,b\)互质,我们称这个函数是积性函数。若\(a,b\)不互质则是完全积性函数。常见积性函数狄利克雷卷积定义也叫狄利克雷乘积。形如下式:\[h(n)=\sum_{ab=n,a>0,b>0}f(a)g(b)\]......
  • Java学习笔记3--java编译和运行的CMD命令
    windows下利用cmd命令行可以调用jdk里的javac.exe和java.exe对java文件进行编译和执行,前提是jdk已成功安装并正确配置相关环境变量执行命令解析:javac命令用于将java源文件编译为class字节码文件,如:javacHelloWorld.java。运行javac命令后,如果成功编译没有错误的话,会出现......
  • 《ImageNet: A Large-Scale Hierarchical Image Database》李飞飞论文阅读笔记
    OpenSNN开思通智网,官网地址:https://w3.opensnn.com/2024年8月份"O站创作者招募计划"快来O站写文章,千元大奖等你来拿!“一起来O站,玩转AGI!”论文地址:《ImageNet:ALarge-ScaleHierarchicalImageDatabase》这篇论文是关于一个叫做“ImageNet”的大型图像数据库的介绍。......
  • opencv学习笔记(一)
    前言本文为本人观看b站视频学习opencv的笔记分享,如有错误欢迎指正,如有侵权联系我删除,视频链接一、ReadImagesVideosandWebcams#include<opencv2/imgcodecs.hpp>#include<opencv2/highgui.hpp>#include<opencv2/imgproc.hpp>#include<iostream>usingnamespaces......
  • 《数据资产管理核心技术与应用》读书笔记-第三章:数据血缘
    《数据资产管理核心技术与应用》是清华大学出版社出版的一本图书,全书共分10章,第1章主要让读者认识数据资产,了解数据资产相关的基础概念,以及数据资产的发展情况。第2~8章主要介绍大数据时代数据资产管理所涉及的核心技术,内容包括元数据的采集与存储、数据血缘、数据质量、数据监控与......