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

【笔记】拉格朗日插值

对于一个 \(n\) 次多项式 \(f(x) = \sum_{k = 0}^n a_kx^k\),我们只要知道它在 \(n+1\) 个不同点处的取值,就可以进一步解出它的系数

但使用高斯消元法的时间复杂度是 \({\cal O}(n^3)\) 的,如果我们只是想知道这个多项式在某一点 \(x'\) 处的值,希望有复杂度更优的办法

我们希望有这样一组系数 \(\alpha\),使得:

\[\begin{cases} \alpha_0x_0^0+\alpha_1x_1^0+\cdots+\alpha_nx_n^0 = x'^0\\ \alpha_0x_0^1+\alpha_1x_1^1+\cdots+\alpha_nx_n^0 = x'^1\\ \quad\vdots\qquad\quad\vdots\qquad\ddots\qquad\!\vdots\quad=\ \vdots\\ \alpha_0x_0^n+\alpha_1x_1^n+\cdots+\alpha_nx_n^n = x'^n\\ \end{cases}\tag{1} \]

换句话说:

\[\begin{bmatrix} x_0^0&x_1^0&\cdots&x_n^0\\ x_0^1&x_1^1&\cdots&x_n^1\\ \vdots&\vdots&\ddots&\vdots\\ x_0^n&x_1^n&\cdots&x_n^n\\ \end{bmatrix}\cdot \begin{bmatrix} \alpha_0\\ \alpha_1\\ \vdots\\ \alpha_n \end{bmatrix}= \begin{bmatrix} x'_0\\ x'_1\\ \vdots\\ x'_n \end{bmatrix}\tag{2} \]

然后答案就是

\[\sum_{k = 0}^n f(x_k)\alpha_k\tag{3} \]

这个矩阵十分的特殊,它的行列式叫范德蒙德行列式:

\[\det \begin{bmatrix} x_0^0&x_1^0&\cdots&x_n^0\\ x_0^1&x_1^1&\cdots&x_n^1\\ \vdots&\vdots&\ddots&\vdots\\ x_0^n&x_1^n&\cdots&x_n^n\\ \end{bmatrix} = \prod_{0 \le i < j \le n}(x_j-x_i)\tag{4} \]

于是我们考虑在式 \((2)\) 前后同乘逆矩阵,就有:

\[\alpha_k = \sum_{j = 0}^n\frac{(-1)^{j+k}A_{j,k}}{\det}x'^j\tag{5} \]

而对范德蒙德行列式第 \(k\) 列展开,是:

\[\sum_{j = 0}^n\frac{(-1)^{j+k}A_{j,k}}{\det}x_k^j \]

那相当于我们 \(x_k\coloneqq x'\) 之后的到了一个新的范德蒙德行列式展开式,它显然只有包含 \(x_k\) 的项是与原来不同的

于是我们得到:

\[\begin{aligned} \alpha_k &= \sum_{j = 0}^n\frac{(-1)^{j+k}A_{j,k}}{\det}x'^j\\ &= \frac{\det_k}{\det}\\ &= \frac{\prod_{i \not= k}(x'-x_i)}{\prod_{i \not= k}(x_k-x_i)} \end{aligned} \]

故答案为:

\[f(x') = \sum_{k = 0}^nf(x_k)\frac{\prod_{i \not= k}(x'-x_i)}{\prod_{i \not= k}(x_k-x_i)} \]

时间复杂度为 \({\cal O}(n^2)\)

http://www.wxhsa.cn/company.asp?id=4139

相关文章:

  • 自定义渲染管线(Unity Cocos)
  • 这是一个测试
  • 文献阅读 | Survey of Hallucination in Natural Language Generation
  • 技术 | LLaMA Factory微调记录重修版
  • 支付中心的钱包类业务应该怎么设计
  • MySQL索引浅析
  • WF 2025 游记
  • 17.时间处理
  • [MCP][02]快速入门MCP开发
  • numpy入门
  • 【simpleFOC】一个电机如何模拟不同旋钮的手感反馈?
  • 第一周作业2
  • 第一次课堂作业
  • [高可用/负载均衡] Ribbon LoadBalancer: 开源的客户端式负载均衡框架
  • 梦话周记
  • 【电机控制】无刷电机结构阐述---磁极数、槽数
  • 金刚怒目是我哭
  • nginx使用默认端口80作为服务端口
  • 机器学习和推荐算法顶级会议和期刊
  • java使用mysql
  • 2025年医疗行业API安全最佳实践与深度案例分析:从理论到全面落地
  • 2026 NOI 做题记录(二)
  • lc1027-最长等差数列
  • 13
  • np.zeros函数
  • Langchain之让LLM拥有记忆
  • 25.9.14
  • .net PublishSingleFile 打包程序提取
  • 实用指南:Java类加载机制
  • C 语言注释