【问题标题】:Finding a polynomial of minimum degree given series找到给定序列的最小次数多项式
【发布时间】:2014-04-03 08:08:34
【问题描述】:

给定一个数列,如何找到一个推广该数列的多项式。通过这种概括,人们应该能够找出该系列中的任何术语。

在网上搜索时,我发现可以使用 Langrange 的插值技术。泛化系列的方法有多准确?

我们可以使用其他方法来找到多项式吗?

【问题讨论】:

  • “准确度如何”是什么意思?
  • 它是精确地插值曲线还是近似它?
  • 对于常见情况,没有办法获得精确形式的多项式(如果系列中的数字可以是任何数)。您可以尝试实现interpolation - 但它仍然不是原生的“多项式”解决方案
  • 我认为对于这种情况,可以得到精确的多项式。最简单的就是取与数据点数相同次数的多项式。既然我们需要最小度数,那么我们就尽量减少度数。这种归约过程是 OP 所质疑的,无论是精确归约(即仍然与系列完全匹配),还是近似。
  • 顺便说一句,Lagrange's Interpolation 多项式是精确的。另一个简单的精确方法可以是Neville's algorithm

标签: algorithm math series


【解决方案1】:

有几种算法可以生成与有限级数匹配的多项式,因为“justhalf”确定了拉格朗日插值是一种技术。

一般来说,如果给定一个具有 n 个点的函数,您可以唯一地定义一个 n-1 次(或有时更小)的多项式,它在每​​个点上都匹配。

考虑只有两个术语“2, 4”的系列。由于这只有两项(n = 2),因此有一个 1 次多项式将生成该系列。一般形式是y = ax+b,我们需要找到a和b:

y = ax + b

所以

2 = a⋅1 + b     =>     2 =  a + b
4 = a⋅2 + b     =>     4 = 2a + b

因此 a = 2 且 b = 0。

y = 2x

您可以看到,如果将 x=1 和 x=2 替换,则分别得到值 2 和 4。

如果系列是 2、4、8,那么你需要一个 3-1 = 2 次的多项式,比如 y = ax^2 + bx + c(其中 a 和 b 是新值,不一定相同作为前一种情况的 a 和 b)。

那么你就会知道:

2 = a⋅1² + b⋅1 + c     =>     2 =  a +  b + c     (i)
4 = a⋅2² + b⋅2 + c      =>      4 = 4a + 2b + c      (ii)
8 = a⋅3² + b⋅3 + c      =>      8 = 9a + 3b + c      (iii)

你可以解这些方程来找到 a、b 和 c:

从 (ii) 中减去 (i):

2 = 3a + b      (iv)

从 (iii) 中减去 (ii)

4 = 5a + b      (v)

从 (v) 中减去 (iv)

2 = 2a     =>     a = 1

所以从 (iv)

2 = 3⋅1 + b = 3 + b     =>     b = -1

来自 (i)

2 = a + b + c = 1 + -1 + c = c     =>     c = 2

所以多项式 y = ax² + bx + c = x² - x + 2 在三个点上一致

验证:

1² - 1 + 2 = 2
2² - 2 + 2 = 4
3² - 3 + 2 = 8

如我们所愿。

但请注意,这个多项式 y = x² - x + 2 也准确地生成了仅包含前 2 项“2, 4”的系列。所以这个只有两项的数列满足两个多项式,y = 2x 和 y = x² - x + 2。尽管前两个值 2,4 一致,但它们是非常不同的多项式。

一般来说,如果您有一系列 n 项,则有一个唯一的 n-1 次多项式将生成该系列。一般来说,不会有任何次数小于 n-1 的多项式会准确地生成它(你可能会很幸运,但它通常不是真的)。有无数个次数大于 n-1 的多项式将生成数据。

通常在数值分析中,您会尝试生成一个次数小于 n-1 的多项式,以逼近数据(不完全匹配,但可以最大限度地减少误差)。 n-1 阶的精确解是不稳定的,因为输入序列的微小变化会产生非常不同的方程。对于次数小于 n-1 的多项式逼近,情况并非如此。由于许多物理测量具有固有误差,因此使用低次多项式可以最大限度地减少测量误差的影响。

现在让我们考虑系列 2、4、8、16

您可以使用完全相同的方法生成与这些数据点完全匹配的 3 次多项式 (y = ax³ + bx² + cx + d)。这(再次)只是求解一组线性联立方程。这基本上就是拉格朗日算法的工作原理;我们手动求解方程,而不是使用矩阵表示法(如拉格朗日所做的那样)。

但是考虑到 2、4、8、16,大多数人会认为等式是 y = 2x。这不是多项式方程,所以不能表示为多项式。

对于级数 2,4,8,我们推导出多项式 y = x² - x + 2。如果我们尝试外推以找到下一个值,插入 x=4 将得到 y = 4² - 4 + 2 = 14 . (x=5) 之后的项是 y = 5² - 5 + 2 = 22。随着 x 变大,y = x² - x + 2 越来越接近 y = 2x。事实上,没有多项式会像 y = 2x 这样快速增长。

所以...

如果你有 n 个点,你总能找到一个唯一的 n-1 次(或有时更小)多项式,它会为 x=1,2,3..n 准确地生成这 n 个点。这不常用于现实生活中的问题,因为这些解决方案是不稳定的(输入的微小变化会对多项式产生很大的变化)。

如果您有 n 个点,则有无数个 n 次或更大的多项式将产生该级数。这些对于 x = 1, 2, ... n 都有相同的值,但在 n+1, n+2 等项上会有不同。

通常使用次数小于 n-1 的多项式逼近。它通常不会精确拟合,但通常会显示曲线的一般形状。对于 8 点,您可能会尝试找到一个 4 次多项式 (y = ax⁴ + cx³ + dx² + e),它可以最大限度地减少误差。根据经验,经常使用大约 n/2 次的多项式。这更像是艺术而不是科学;通常您对基本(正确)公式是什么有所了解,这有助于选择近似多项式的次数。

多项式近似可以很好地用于插值(在两个数据点之间找到一个值),但对于外插则没有希望。由于我们完全不知道“下一个”值可能是一个系列(它可以是任何东西),因此没有公式可以成功预测它。

我希望这是有用的。生成一个精确生成有限级数的多项式并不难......它只需求解具有 n 个变量的 n 个线性联立方程(xn-1、xn-2 的系数sup>, ... x², x 和常数项)。这就是我们上面所做的以及拉格朗日的工作原理。然而,在物理系统中,它可能不是特别有意义。用户小心。

【讨论】:

    猜你喜欢
    • 2018-05-06
    • 1970-01-01
    • 2019-01-14
    • 1970-01-01
    • 2012-11-20
    • 2017-07-14
    • 2017-05-30
    • 2010-12-07
    • 1970-01-01
    相关资源
    最近更新 更多