拉格朗日插值
类似三个点可以确定二次函数解析式,n+1 个点可以确定一个 n 项式
问题:给定 k , n+1 个数和每个数对应的函数值 yi,如何求 fk (P4181)
高斯消元的复杂度 n3,拉格朗日插值可以 n2 解决这个问题
表达式:
f(x)=n∑i=1yi∏j≠ix−xjxi−xj
推导:
我们考虑构造一个函数 Li(x) , 使得 Li(xi)=1,对于任意 1≤j≤n 且 j≠i,Li(xj)=0,
这样使 f(x)=n∑i=1yiLi(x) 对于任意 1≤i≤n 都成立
则:Li(x)=∏j≠ix−xjxi−xj,当 x=xi 时函数值为 1,其余为 0
故表达式为 f(x)=n∑i=1yiLi(x)=n∑i=1yi∏j≠ix−xjxi−xj,复杂度 O(n2)
oiwiki上还有一种类似中国剩余定理的推导,用到了多项式在模意义下的逆元
横坐标是连续整数的拉格朗日插值
f(x)=n∑i=1yin∏j=1(x−j)(x−i)(−1)n−i(i−1)!(n−i)!
这个柿子预处理完是 O(n) 的
推导:
f(x)=n∑i=1yi∏j≠ix−xjxi−xj=n∑i=1yi∏j≠ix−ji−j
分别处理分子和分母,则分子可以改写成 n∏j=1(x−j)x−i
分母分为 j<i 和 j>i 考虑,对于小于那部分数轴上 j 到 i 的距离从 1 累乘到 i−1,即 (i−1)!,大于那部分同理,为 (n−i)!,需要注意因为 j>i,当 n−i 为奇数时贡献为负,所以再乘上 (−1)n−i
故表达式为 f(x)=n∑i=1yin∏j=1(x−j)(x−i)(−1)n−i(i−1)!(n−i)!,复杂度为 O(n)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】