问题

给定 nnn 个点,可确定一个多项式 y=f(x)y=f(x)y=f(x) ,要求确定这个多项式并求出 f(k)f(k)f(k)

拉格朗日(Lagrange)插值公式

搬运

令 Ln(x)=f(x)L_n(x)=f(x)Ln​(x)=f(x)


n=1



由点斜式可以得到

其中

这里 lk(x)l_k(x)lk​(x) 和 lk+1l_{k+1}lk+1​ 称作线性插值基函数。


n=2



构造

易得


一般情况

Ln(x)=l0(x)∗y0+l1(x)∗y1+l2(x)∗y2+...+ln(x)∗ynL_n(x)=l_0(x)*y_0+l_1(x)*y_1+l_2(x)*y_2+...+l_n(x)*y_nLn​(x)=l0​(x)∗y0​+l1​(x)∗y1​+l2​(x)∗y2​+...+ln​(x)∗yn​

其中

于是


因此,求 f(k)f(k)f(k) 直接将 kkk 带入即可

时间复杂度 O(n2)O(n^2)O(n2)

O(n2)O(n^2)O(n2)求系数 留坑

高斯消元 O(n3)O(n^3)O(n3) 求系数

代码

模板求 f(k)f(k)f(k)

#include<bits/stdc++.h>
#define LL long long
#define mod 998244353
using namespace std;
const int N=2e3+9;
int n;
LL k,ans;
LL x[N],y[N];
LL Inv(LL a,LL b)
{LL tot=1LL;while(b){if(b&1) (tot*=a)%=mod;(a*=a)%=mod; b>>=1;}return tot;
}
LL Lagrange()
{for(int i=1;i<=n;i++){LL fz=1LL,fm=1LL;for(int j=1;j<=n;j++)if(i!=j){(fz*=(k-x[j]))%=mod;(fm*=(x[i]-x[j]))%=mod;}(ans+=y[i]*fz%mod*Inv(fm,mod-2)%mod+mod)%=mod;}return ans;
}
int main()
{scanf("%d%lld",&n,&k);for(int i=1;i<=n;i++)scanf("%lld%lld",&x[i],&y[i]);printf("%lld\n",Lagrange());return 0;
}

拉格朗日(Lagrange)插值相关推荐

  1. 机器学习数据预处理之缺失值:插值法填充+ lagrange插值+拉格朗日插值

    机器学习数据预处理之缺失值:插值法填充+ lagrange插值+拉格朗日插值 garbage in, garbage out. 没有高质量的数据,就没有高质量的数据挖掘结果,数据值缺失是数据分析中经常 ...

  2. 拉格朗日(lagrange)插值及其MATLAB程序

    一.n次拉格朗日插值 根据<插值多项式的性质>中的定理6.1可得 其中(6.19)称为基函数,(6.18)称为拉格朗日多项式,用(6.18)计算插值称为拉格朗日多项式插值. 方法2:通过M ...

  3. 拉格朗日(lagrange)插值(MATLAB实现)

    Author:HanDi 上海某高校遥感专业 工科男 相信积微者速成,相信分享的力量 CSDN@这可真是难为我了 在学习气溶胶光学厚度(AOD)反演算法时,遇到了插值方法选择上的难题.对于AOD反演一 ...

  4. 线性插值、抛物插值、Lagrange插值 | Lagrange拉格朗日插值法(一)

    Lagrange(拉格朗日)插值法 Lagrange插值法是一种多项式插值方法. 1. 线性插值(两点插值或一次插值) 线性插值就是通过两个采样点 ( x 0 , y 0 ) (x_0,y_0) (x ...

  5. c语言构造插值多项式,拉格朗日多项式插值(C语言).docx

    拉格朗日多项式插值(C语言) #include #include #include float lagrange(float *x,float *y,float xx,int n)/*拉¤-格?朗¤¨ ...

  6. Python实现Newton和lagrange插值

    一.介绍 Newton和lagrange插值:给出一组数据进行Newton和lagrange插值,同时将结果用plot呈现出来 1.首先是Lagrange插值: 根据插值的方法,先对每次的结果求积,在 ...

  7. lagrange 插值实现和龙格现象

    lagrange 插值实现 import numpy as np #数值运算 import sympy import matplotlib.pyplot as pltclass LagrangeInt ...

  8. 数学建模准备 插值(拉格朗日多项式插值,牛顿多项式插值,分段线性插值,分段三次样条插值,分段三次Hermite插值)

    文章目录 摘要(必看) 0 基础概念 什么是插值 插值用途 什么是拟合 插值和拟合的相同点 插值和拟合的不同点 1 常用的基本插值方法 1.1 多项式插值法 1.1.1 拉格朗日多项式插值法 多项式插 ...

  9. 插值与拟合 (一) : 拉格朗日多项式插值 、Newton插值 、分段线性插值、Hermite插值 、样条插值、 B 样条函数插值、二维插值

    插值:求过已知有限个数据点的近似函数. 拟合:已知有限个数据点,求近似函数,不要求过已知数据点,只要求在某种意义下它在这些点上的总偏差最小. 插值和拟合都是要根据一组数据构造一个函数作为近似,由于近似 ...

  10. c语言插值法编程,Lagrange插值的C语言编程.pdf

    Lagrange插值的C语言编程 线性插值 给出两点(x , y ),i 0,1 ,则有线性插值函数 i i x −x x −x 1 0 L (x ) l (x )y =+l (x )y y =+ y ...

最新文章

  1. 网页如何与mysql服务器建立连接不上,html与mysql建立连接数据库
  2. 强化学习AI:它菜了,我慌了
  3. Codeforces Round #443 (Div. 2) B. Table Tennis
  4. knllgobjinfo: MISSING Streams multi-version data dictionary!!! 的一次处理 (二)
  5. 本周进步要点20161009
  6. GNS3从入门到精通
  7. 图形用户界面和交互输入方法---图形用户界面的设计
  8. 如何形象的解释javascript中map,foreach,reduce的区别
  9. zip压缩文件暴力破解
  10. 理解ThreadLocal(一)
  11. selenium.common.exceptions.WebDriverException: Message: Failed to start browser:搞哭了
  12. -------------分割线-------
  13. Foobar2000中文版增强安装版
  14. Vue使用Iconfont图标库
  15. 可视化滤波器fvtool
  16. 【ATSC】【OTT】Netflix将作为美国有线机顶盒界面中的一个频道
  17. spring项目启动慢问题
  18. 项目管理面试经验之谈
  19. 最新蚂蚁金服金融源码+蚂蚁财富投资理财源码/基于FastAdminf框架
  20. 低功耗设计(low power design)和UPF介绍(含代码示例)

热门文章

  1. PairWise策略设计测试用例及PICT测试用例工具安装使用(实现测试用例的自动化)
  2. 数据结构实验报告四 图的表示与遍历
  3. 从零开始搭建DM368开发环境,安装DVSDK4_02_00_06并编译生成uboot、rootfs和kernel镜像
  4. HaLaShao Tool(零)
  5. linux bsp格式,bsp是什么格式文件?bsp文件如何打开?
  6. C语言入门:求符合给定条件的整数集
  7. 服务启动报错 RedisCommandExecutionException: READONLY You can‘t write against a read only replica.
  8. Qt编写自定义控件插件路过的坑及注意事项
  9. 业绩大跌、市值减半、食安隐患,盐津铺子还能“起跳“吗?
  10. jquery实现仿select列表的即时搜索及拼音搜索