当前位置: 首页 > news >正文

插值相关

通常的,我们被给到一个函数在一些点上的值,我们可以用高斯消元在 \(O(n^3)\) 的时间复杂度内求出对应的多项式

当我们只被要求求出其中的的一个点时,我们可以使用插值这个工具在 \(O(n^2)\) 的时间复杂度之内求解。

一、拉格朗日插值

1. 算法原理

我们现在的目标是构造一个多项式,使得带入每一个给定的点都能够保证得到的答案一一对应

于是乎,我们有一个初始的想法:

\[ f(x) = \sum_{i=1}^n [x == x_i] y_i\]

好想法!但是我们怎么把 \([x == x_i]\) 转化为多项式呢?

我们想要让只有 \(x == x_i\) 的时候,这个多项式的结果为 \(1\)\(x == x_j (j\neq i)\) 的时候,这个多项式的结果为 \(0\),其他数的结果任意,并且多项式的理论次数为 \(0\)

我们经过千辛万苦,构造出如下式子:

\[ \prod_{j\neq i} \frac{x-x_j}{x_i-x_j}\]

如何千辛万苦

我们需要构造函数 \(f_1(x),f_2(x),\dots,f_n(x)\) 使得对于函数 \(f_i(x)\) 过点 (x_i,1) 和所有的 \((x_j,0)\)

我们设 \(f_i(x) = A \prod_{j\neq i} (x-x_j)\),带入 \((x_i,1)\) 可以得到 \(A = \frac 1 {\prod_{j\neq i} (x_i-x_j)}\)

所以 \(f_i(x) = \prod_{j\neq i} \frac {x-x_j} {\prod_{j\neq i} (x_i-x_j)}\)

我们发现,当 \(x = x_i\) 的时候,这个式子的结果是 \(1\),而当 \(x = x_j\) 的时候,\(x_j-x_j = 0\),使得结果是 \(0\)

这样我们就得出了拉差式子:

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

2. 下标连续的线性复杂度拉差

http://www.zskr.cn/news/8880.html

相关文章:

  • 详解scheduleAtFixedRate 与 scheduleWithFixedDelay 的区别
  • 模拟输入的过程
  • Manim实现水波纹特效
  • CSP 2025 S1 游记
  • JS之使用for...of赋值失败的原因分析
  • Linux /lib/modules/$(uname -r)/ 目录功能作用详解
  • 软件工程第二次作业_个人项目
  • Chapter 3 Resize and Cropping
  • 解决Kubernetes集群中master节点无法与node节点通信的策略
  • 配置Nginx以支持Websocket连接的方法
  • Extundelete工具恢复数据
  • 最新!!!MySQL环境搭建(windows系统) - 详解
  • SQLite数据库 - 教程
  • 【Bluedroid】A2DP Source 音频流暂停流程解析[3]:AVDTP 协议中 Suspend Accept 响应的处理流程与建立分析(Suspend Accept)
  • Mysql查询条件里的字符串不加引导索引失效
  • 详细介绍:在Ubuntu平台搭建RTMP直播服务器使用SRS简要指南
  • 实用指南:在 k8s 上部署 Kafka 4.0 3节点集群
  • 完整教程:VLAN划分——TRUNK
  • 现代操作系统-音频处理技术1 Linux驱动底层
  • 智元首次明确七人合伙人团队
  • ABC424
  • 解决 Windows 无法挂载 HTTP WebDAV(AList,OpenList)的问题
  • HN CSP-S 2024 游记
  • 关于oj在创建文件夹失败的原因
  • 图解15:DNS工作原理
  • 图解12:软件开发8大模型
  • 图解13:软件版本是怎么命名的
  • 图解14:CDN(最近使用的都是阿里云的)
  • WINUI/WPF——自定义ListView
  • 用 Rust 实现英文数字验证码识别