拉格朗日(Lagrange)插值
问题
给定 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)
代码
#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)插值相关推荐
- 机器学习数据预处理之缺失值:插值法填充+ lagrange插值+拉格朗日插值
机器学习数据预处理之缺失值:插值法填充+ lagrange插值+拉格朗日插值 garbage in, garbage out. 没有高质量的数据,就没有高质量的数据挖掘结果,数据值缺失是数据分析中经常 ...
- 拉格朗日(lagrange)插值及其MATLAB程序
一.n次拉格朗日插值 根据<插值多项式的性质>中的定理6.1可得 其中(6.19)称为基函数,(6.18)称为拉格朗日多项式,用(6.18)计算插值称为拉格朗日多项式插值. 方法2:通过M ...
- 拉格朗日(lagrange)插值(MATLAB实现)
Author:HanDi 上海某高校遥感专业 工科男 相信积微者速成,相信分享的力量 CSDN@这可真是难为我了 在学习气溶胶光学厚度(AOD)反演算法时,遇到了插值方法选择上的难题.对于AOD反演一 ...
- 线性插值、抛物插值、Lagrange插值 | Lagrange拉格朗日插值法(一)
Lagrange(拉格朗日)插值法 Lagrange插值法是一种多项式插值方法. 1. 线性插值(两点插值或一次插值) 线性插值就是通过两个采样点 ( x 0 , y 0 ) (x_0,y_0) (x ...
- c语言构造插值多项式,拉格朗日多项式插值(C语言).docx
拉格朗日多项式插值(C语言) #include #include #include float lagrange(float *x,float *y,float xx,int n)/*拉¤-格?朗¤¨ ...
- Python实现Newton和lagrange插值
一.介绍 Newton和lagrange插值:给出一组数据进行Newton和lagrange插值,同时将结果用plot呈现出来 1.首先是Lagrange插值: 根据插值的方法,先对每次的结果求积,在 ...
- lagrange 插值实现和龙格现象
lagrange 插值实现 import numpy as np #数值运算 import sympy import matplotlib.pyplot as pltclass LagrangeInt ...
- 数学建模准备 插值(拉格朗日多项式插值,牛顿多项式插值,分段线性插值,分段三次样条插值,分段三次Hermite插值)
文章目录 摘要(必看) 0 基础概念 什么是插值 插值用途 什么是拟合 插值和拟合的相同点 插值和拟合的不同点 1 常用的基本插值方法 1.1 多项式插值法 1.1.1 拉格朗日多项式插值法 多项式插 ...
- 插值与拟合 (一) : 拉格朗日多项式插值 、Newton插值 、分段线性插值、Hermite插值 、样条插值、 B 样条函数插值、二维插值
插值:求过已知有限个数据点的近似函数. 拟合:已知有限个数据点,求近似函数,不要求过已知数据点,只要求在某种意义下它在这些点上的总偏差最小. 插值和拟合都是要根据一组数据构造一个函数作为近似,由于近似 ...
- 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 ...
最新文章
- 网页如何与mysql服务器建立连接不上,html与mysql建立连接数据库
- 强化学习AI:它菜了,我慌了
- Codeforces Round #443 (Div. 2) B. Table Tennis
- knllgobjinfo: MISSING Streams multi-version data dictionary!!! 的一次处理 (二)
- 本周进步要点20161009
- GNS3从入门到精通
- 图形用户界面和交互输入方法---图形用户界面的设计
- 如何形象的解释javascript中map,foreach,reduce的区别
- zip压缩文件暴力破解
- 理解ThreadLocal(一)
- selenium.common.exceptions.WebDriverException: Message: Failed to start browser:搞哭了
- -------------分割线-------
- Foobar2000中文版增强安装版
- Vue使用Iconfont图标库
- 可视化滤波器fvtool
- 【ATSC】【OTT】Netflix将作为美国有线机顶盒界面中的一个频道
- spring项目启动慢问题
- 项目管理面试经验之谈
- 最新蚂蚁金服金融源码+蚂蚁财富投资理财源码/基于FastAdminf框架
- 低功耗设计(low power design)和UPF介绍(含代码示例)
热门文章
- PairWise策略设计测试用例及PICT测试用例工具安装使用(实现测试用例的自动化)
- 数据结构实验报告四 图的表示与遍历
- 从零开始搭建DM368开发环境,安装DVSDK4_02_00_06并编译生成uboot、rootfs和kernel镜像
- HaLaShao Tool(零)
- linux bsp格式,bsp是什么格式文件?bsp文件如何打开?
- C语言入门:求符合给定条件的整数集
- 服务启动报错 RedisCommandExecutionException: READONLY You can‘t write against a read only replica.
- Qt编写自定义控件插件路过的坑及注意事项
- 业绩大跌、市值减半、食安隐患,盐津铺子还能“起跳“吗?
- jquery实现仿select列表的即时搜索及拼音搜索