拉格朗日(Lagrange)插值

article/2025/10/24 13:34:18

问题

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

拉格朗日(Lagrange)插值公式

搬运

L n ( x ) = f ( x ) L_n(x)=f(x) Ln(x)=f(x)


n=1



由点斜式可以得到
在这里插入图片描述
其中
在这里插入图片描述
这里 l k ( x ) l_k(x) lk(x) l k + 1 l_{k+1} lk+1 称作线性插值基函数。


n=2


在这里插入图片描述
构造
[公式]
易得
在这里插入图片描述


一般情况

L n ( x ) = l 0 ( x ) ∗ y 0 + l 1 ( x ) ∗ y 1 + l 2 ( x ) ∗ y 2 + . . . + l n ( x ) ∗ y n L_n(x)=l_0(x)*y_0+l_1(x)*y_1+l_2(x)*y_2+...+l_n(x)*y_n Ln(x)=l0(x)y0+l1(x)y1+l2(x)y2+...+ln(x)yn

其中
在这里插入图片描述
于是
在这里插入图片描述


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

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

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

高斯消元 O ( n 3 ) 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;
}

http://chatgpt.dhexx.cn/article/VPlrnX4R.shtml

相关文章

oracle手动锁表

[转载]oracle手动锁表 手工锁表&#xff1a; lock table tbl_t1 in row share mode nowait; --2 lock table tbl_t1 in share update mode nowait; --2 lock table tbl_t1 in row exclusive mode nowait; --3 lock table tbl_t1 in sha…

Oracle数据库锁表解决办法

1.输入查锁语句 SELECT s.sid, s.serial#,b.object_name, s.username, s.schemaname, s.osuser, s.process, s.machine, s.terminal, s.logon_time, l.type FROM v$session s, v$lock l,v$locked_object a,dba_objects b WHERE s.sid l.sid and b.object_id a.object_id and …

Oracle数据库锁表解决

PLSQL不会用,Oracle数据库不了解&#xff0c;哈哈哈,直接闹出了笑话, 由于多次的事务没有提交,导致多个会话没有关闭 造成Oracle数据库表锁死 报 ORA-00054错误 即多个会话没有关闭,Oracle不然你操作了 解决办法 1.查所有被锁的sessionid 用户 哪张表被锁 select l.sessio…

Oracle锁表解决方法

锁表或锁超时相信大家都不陌生&#xff0c;经常发生在DML语句中&#xff0c;产生的原因就是数据库的独占式封锁机制&#xff0c;当执行DML语句时对表或行数据进行锁住&#xff0c;直到事务提交或回滚或者强制结束当前会话。 对于我们的应用系统而言锁表大概率会发生在SQL执行慢…

centos7 升级 gcc 版本

GNU Mirror List 查看动态库版本 strings /usr/lib64/libstdc.so.6 | grep CXXABI查找gcc生成的最新动态库 find / -name "libstdc.so*"一、升级 gcc&#xff1a; 1、查看当前gcc版本 #默认4.8.5 g -v 或者 gcc --version2、下载gcc源码&#xff08;10.2.0&…

环境搭建—3.0 Linaro gcc

一、gcc gcc&#xff0c;GNU Compiler Collection&#xff0c;GNU编译器套件&#xff0c;它最初是专门给GNU操作系统开发的&#xff0c;随着时间推移&#xff0c;现在已经成为了嵌入式领域应用最广泛的c/c编译器工具。不管是单片机开发还是linux开发&#xff0c;都离不开gcc。主…

mac使用gcc编译器

mac自带的编译器是clang编译器而且自带的gcc是映射到clang的之前看到网上需要关闭SIP模式很烦&#xff0c;我试了试关闭了也删除不了gcc&#xff0c;也无法软链接。 后来找到一篇曲线救国的帖子&#xff0c;是在&#xff5e;目录下使用的。 首先下载gcc的最新版本&#xff0c…

win10下安装gcc

win10下安装gcc 一、gcc是什么&#xff1f;1.1、安装gcc 第一次安装,记录一下 一、gcc是什么&#xff1f; GNU编译器套件(GNU Compiler Collection)包括C、C、Objective-C、Fortran、Java、Ada和Go语言的前端&#xff0c;也包括了这些语言的库(如libstdc、libgcj等等)。GCC的初…

gcc

gcc&#xff1a;一个工具集合,包含预处理器,编辑器,汇编器,链接器等组件 说明&#xff1a;当不使用任何选项时,gcc将会生成一个名为a.out的可执行文件 gcc选项 gcc -E 预处理 .igcc -S 编译成汇编代码 .sgcc -c 汇编成目标代码 .ogcc -o 链接成可执行代码 .out/.…

GCC,G++介绍

1.什么是GCC GCC 原名为 GNU C语言编译器&#xff08;GNU C Compiler&#xff09;GCC&#xff08;GNU Compiler Collection&#xff0c;GNU编译器套件&#xff09;是由 GNU 开发的编程语言 译器。GNU 编译器套件包括C、C、Objective-C、Java、Ada 和 Go 语言前 端&#xff0c;…

tdm gcc怎么运行c语言,TDM-GCC 64位

TDM-GCC 是为windows系统打造的编译器套件&#xff0c;包括了自由并开源的 MinGW 或 MinGW-w64 的运行时 APIs&#xff0c;当GCC创建一个新的版本&#xff0c;TDM构建二进制包在MinGW环境中使用MinGW的官方GCC软件包的替代品。需要的朋友可以下载&#xff01; TDM-GCC安装教程 …

什么是GCC? GCC编译过程

什么是GCC&#xff1f; 最简单的回答就是Linux 下的C/C 编译器。 其实一开始的确是这样的&#xff0c;GCC 原名为GUN C 语言编译器( GNU C Compiler), 原本只能处理编译C语言。 但是后来GCC发展壮大了&#xff0c;可以编译C, Fortran,Pascal,Objective-C&#xff0c; Java,A…

GCC是什么

GCC是什么 说到 GCC&#xff0c;就不得不提 GNU&#xff0c;“GNU”是“GNUs Not Unix!”&#xff08;GNU并非Unix&#xff01;&#xff09;的首字母递归缩写&#xff0c;中文名“革奴计划”。GNU 计划的最终目标是打造出一套完全自由&#xff08;即自由使用、自由更改、自由发…

GCC简介

一. GCC简介 GCC&#xff08;GNU C Compiler&#xff09;原名GNU C语言编译器&#xff0c;是由GNU开发的编程语言译器&#xff0c;只能处理C语言。但其很快扩展&#xff0c;变得可处理C&#xff0c;后来又扩展为能够支持更多编程语言&#xff0c;如Fortran、Pascal、Objective…

一张图学会python递归函数

递归函数属于那种“难者不会&#xff0c;会者不难”的事情&#xff0c;回想自己大学时学习递归函数的经历&#xff0c;简直是痛不欲生&#xff0c;代码里没有一行是看不懂的&#xff0c;但就是理解不了它是怎样运行的。 等到自己悟通了原理&#xff0c;就又会觉得这东西太简单了…

【Python递归练习】

1.出售金鱼问题第一次卖出全部金鱼的一半加二分之一条金鱼&#xff1b;第二次卖出乘余金鱼的三分之一加三分之一条金鱼&#xff1b;第三次卖出剩余金鱼的四分之一加四分之一条金鱼&#xff1b;第四次卖出剩余金鱼的五分之一加五分之一条金鱼&#xff1b;现在还剩下11条金鱼。问…

python 递归函数详解

在 python中&#xff0c;有一种非常神奇的函数&#xff1a;递归函数&#xff0c;它可以让你的程序实现自顶向下的递归调用&#xff0c;从而实现程序的无限循环。这是一种非常神奇的语言&#xff0c;可以让你使用一种语言实现另一种语言。它还有一个很酷的名字&#xff1a; shel…

python函数递归求和详解_Python递归函数详细分析

什么是递归? 递归,就是在函数运行中自己调用自己 代码示例: def recursion(n): # 定义递归函数 print(n) # 打印n recursion(n1) # 在函数的运行种调用递归 recursion(1) # 调用函数 这个函数在不断的自己调用自己,每次调用n1,看下运行结果: 1 2 ..... 998Tracebac…

Python递归思想与代码实现

1&#xff0c; 递归思想 递归算法:递归(Recursion)&#xff0c;在数学与计算机科学中&#xff0c;是指在函数的定义中使用函数自身的方法。 这是官方的解释&#xff0c;翻译成人话就是&#xff1a; 函数内部自己调用自己函数必须有出口 函数自己调用自己很好理解&#xff0c…

python函数递归调用时对深度没有限制_python递归深度

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 今天在写爬虫的时候,发现了一个事情,使用str方法强制转换一个beautifulsoup对象成字符串的时候报错了,提示是“maximum recursion depth exceeded while cal…