首页 > 其他分享 >多项式点值表示

多项式点值表示

时间:2024-09-29 11:15:00浏览次数:8  
标签:表示 多项式 cdots 点值 prod vdots

多项式点值表示的存在性

对 \(n\) 阶多项式 \(F(x) = \sum_{i = 0}^{n} a_i x^{i}\) ,存在一组 \(n\) 阶互异点值 \([p_i, p_1, \cdots, p_n]\) 满足 \(F(x.p_i) = y.p_i, \forall i,j, p_i \neq p_j\) 。其中横坐标是自变量,纵坐标是多项式的结果。

存在性显然。

任意一组 \(n\) 阶点值表示单射一个 \(n\) 阶多项式

下面证明对于任意一组 \([p_0, p_1, \cdots, p_n], (p_i = (x_i, y_i)), \forall i,j, p_i \neq p_j\) 对 \(f(x)\) 单射。

\[\begin{aligned} &\left \{ \begin{aligned} 1 + x_0 + x_0^{2} + \cdots + x_0^{n} = y_0 \\ 1 + x_1 + x_1^{2} + \cdots + x_1^{n} = y_1 \\ 1 + x_2 + x_2^{2} + \cdots + x_2^{n} = y_2 \\ \qquad \vdots \qquad \vdots \qquad \vdots \qquad \ddots \qquad \vdots \\ 1 + x_n + x_n^{2} + \cdots + x_n^{n} = y_n \\ \end{aligned} \right . \\ V^{T}(x_0, x_1, x_2, \cdots, x_n) &= \left | \begin{matrix} 1 & x_{0} & x_{0}^{2} & \cdots & x_{0}^{n} \\ 1 & x_{1} & x_{1}^{2} & \cdots & x_{1}^{n} \\ 1 & x_{2}^{1} & x_{2}^{2} & \cdots & x_{2}^{n} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & x_{n}^{1} & x_{n}^{2} & \cdots & x_{n}^{n} \\ \end{matrix} \right | \\ det(V^{T}) = det(V) &= \prod_{1 \leq i < j \leq n} (x_j - x_i) \end{aligned} \]

\(Vandermonde\) 行列式结果的证明实际上只是展开爆算一下,能接受就行。

显然当 \(\forall i, j, x_i \neq x_j\) 时,行列式不为 \(0\) ,矩阵满秩,一组点值单射一个多项式。

点值表示的卷积

由 \(\forall x, H(x) = F(x) \times G(x)\) ,两个多项式可以选取同一套横坐标的点值表示如 \([(0, F(0)), (1, F(1)), \cdots, (n, F(n))]\) 和 \([(0, G(0)), (1, G(1)), \cdots, (n, G(n))]\) ,则 \(H\) 也存在一组点值表示 \([(0, F(0) \times G(0)), (1, F(1) \times G(1)), \cdots, (n, F(n) \times G(n))]\) 。

容易发现,多项式的代数卷积为 \(O(n^{2})\) ,点值卷积为 \(O(n)\) 。

假设我们能先对齐多项式,快速计算各个多项式固定的 \(n\) 个横坐标的的点值表示。那么就可以将多项式转成点值表示,做完卷积后再转回多项式。

注意到多项式朴素算一组点值的时间复杂度也是 \(O(n^{2})\) 。而快速傅里叶变换展示了如何通过 \(O(n \log n)\) 的时间复杂度让多项式实现代数变换成一组点值,且能以同样的时间复杂度逆变换为代数表示。

快速傅里叶变换变换并不能真正实现多项式的点值表示到代数表示的转化,只是将多项式的代数表示变换为一组特殊的点值表示,再实现逆变换。

多项式插值

有时候我们得到了某个多项式的一组点值表示,考虑如何获得任意一个自变量对应的多项式结果。一个直观的想法是通过点值表示复原代数表示,然后直接计算。但这很难被做到。

多项式插值并不是真正的多项式代数表示,而是借助一组该多项式的点值表示,完成代数意义下的多项式计算。

最常用的多项式插值为 \(Lagrange\) 插值。

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

基于多项式点值表示的性质,多项式插值的存在性和唯一性显然。将已有的点值表示带入 \(Lagrange\) 插值的,展开后正确性显然。无规律的朴素 \(Lagrange\) 插值时间复杂度为 \(O(n^{2})\) 显然。

当已有的点值表示的坐标连续时,\(Lagrange\) 插值可以做到线性时间复杂度。比如对于一组点值表示 \([(0, F(0)), (1, F(1)), (2, F(2)), \cdots, (n, F(n))]\) 。

\[\begin{aligned} F(x) &= \sum_{i = 0}^{n} F(i) \prod_{j \neq i} \frac{x - j}{i - j} \\ &= \sum_{i = 0}^{n} F(i) \prod_{j = 0}^{i - 1} \frac{x - j}{i - j} \prod_{j = i + 1}^{n} \frac{x - j}{i - j} \\ &= \sum_{i = 0}^{n} F(i) \frac{(\prod_{j = 0}^{n} x - j) / (x - i)}{\prod_{j = 0}^{i - 1} i - j \prod_{j = i + 1}^{n} i - j } \\ &= \sum_{i = 0}^{n} F(i) \frac{(\prod_{j = 0}^{n} x - j) / (x - i)}{\prod_{k = 1}^{i} k \prod_{k = 1}^{n - i} -k } \\ &= \sum_{i = 0}^{n} F(i) \frac{(\prod_{j = 0}^{n} x - j) / (x - i)}{i! (n - i)! (-1)^{n - i} } \quad s.t. \quad x > n \\ \end{aligned} \]

标签:表示,多项式,cdots,点值,prod,vdots
From: https://www.cnblogs.com/zsxuan/p/18438830

相关文章

  • 从零开始学机器学习——线性和多项式回归
    首先给大家介绍一个很好用的学习地址:https://cloudstudio.net/columns在之前的学习中,我们已经对数据的准备工作以及数据可视化有了一定的了解。今天,我们将深入探讨基本线性回归和多项式回归的概念与应用。如果在过程中涉及到一些数学知识,大家也不必感到畏惧,我会逐步为大家进行详......
  • Note: 原反补码表示: 合法表示范围, 如补码的最大值2^n-1为什么会有个-1?
    背景:学习关于n+1bit带符号整数的合法表示范围(如下图)笔记缘由:产生了疑惑,不能自解-机器数=无符号数(不包含符号位,所有位都用于表示数值的大小,表示范围非负)+有符号数(原、反、补、移码)-原码:用数值部分表示真值的绝对值,符号位"0/1"对应"正/负"-......
  • Zernike 多项式在圆形、六边形、椭圆形、矩形或环形瞳孔上应用(Matlab代码实现)
        ......
  • <<迷雾>> 第 2 章 用电来表示数 示例电路
    开关的通断对应着1和0info::操作说明鼠标单击开关切换开合状态primary::在线交互操作链接https://cc.xiaogd.net/?startCircuitLink=https://book.xiaogd.net/cyjsjdmw-examples/assets/circuit/cyjsjdmw-ch02-01-represent-number-by-switch.txt原图通过使用多......
  • 利用大规模无监督学习提升药物分子表示
    人工智能咨询培训老师叶梓转载标明出处在人工智能驱动的药物设计和发现领域,获取具有信息量的分子表示是一个至关重要的前提。近年来,研究者们将分子抽象为图,并利用图神经网络(GNNs)进行分子表示学习,展现出了巨大的潜力。然而,实际应用中GNNs面临着两个主要问题:一是用于监督训练的......
  • 动手学运动规划: 2.1 基于5次多项式的参数方程曲线(Quintic Polynomial)
    技不如人,甘拜下风.—刀斯林......
  • 微软宣称其新工具可纠正人工智能幻觉 但专家依然对此表示怀疑
    人工智能经常胡言乱语,微软现在说它有办法解决这个问题,但我们有理由对此持怀疑态度。微软今天发布了一项名为"更正"(Correction)的服务,它可以自动修改人工智能生成的与事实不符的文本。Correction首先会标记出可能存在错误的文本–例如,公司季度财报电话会议的摘要可能存在错误......
  • 用于将日期时间表示为日期和时间的 Pydantic 模型
    我为日期时间创建了一个Pydantic模型,它将处理解析一个类似于{"date":"2021-07-01","time":"12:36:23"}的JSON对象datetime(2021,7,1,12,36,23)它还为模型生成正确的JSON架构。classTimestampWithSplit(RootModel):root:datetime......
  • 浮点数的2进制表示
    参考:https://blog.csdn.net/fwb330198372/article/details/70238982?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2~default~CTRLIST~Rate-1.pc_relevant_paycolumn_v3&depth_1-utm_source=distribute.pc_relevant_t0.none-task-......
  • DSA 与 JS:用 JavaScript 解释大 O 表示法
    废话不多说,我们直接进入正题吧。什么是大o表示法以及它的用途是什么?明确的答案是bigo表示法是一种描述算法性能如何随着输入大小的增长而变化的方法。它可以帮助您了解处理越来越大的数据量时代码的速度有多快或多慢。简单来说,bigo会告诉您最坏的情况,即随着输入变大,代码将......