java - 牛顿多项式的规范系数

标签 java interpolation polynomial-math

不久前,我为我编写的游戏实现了 Polynom 近似。

我正在使用牛顿金字塔方法。 我花了很长时间才弄明白,但我的解决方案需要计算二项式系数,而且我还必须对每个幂的最终系数的所有系数求和(因为解决这个问题类似于平方、立方……项和计算二项式系数)

例如: 从 n 个生物计量项中选出 k 个并添加它们
一挑成倍增加
a*(x+b)(x+c)(x+d) ==> a*x^3 + a*x^2*(b+c+d) + a*x (bc+bd+cd) +a*b*c*d
所以 b*c*d 也是 b*c 和 b*d 之一

我现在的问题是: 有没有办法用牛顿方案计算多项式插值而不用计算所有的双项式系数?

我的代码: https://github.com/superphil0/Polynominterpolation/blob/master/PolynomInterpolation.java

效果还不错,就是给分太多会很慢 因为选择了所有总结的术语

(我真的不擅长用英语解释这个,但我希望有人能理解我想知道的)

干杯

最佳答案

this description来看,我认为您的“金字塔方案”生成系数 ci 使得多项式 p(x)可以写成
p(x) = c0 + (xx0)( c1 + (xx1)( c2 + (xx2)( c3 + (xx3)( ……( cn-1 + (xx n‒1) cn ) ... ))))

现在您可以从后面递归地计算规范系数。从
开始 pn = cn

在每一步中,当前多项式可以写成
pk = ck + (xxk)pk+1 = ck + (xxk)(b0 + b1x + b2x< sup>2 + …)
假设下一个更小的多项式已经转化为规范系数。

现在您可以使用这些系数 b< 计算 pk 的系数 ai pk+1 的 sub>i。以严格正式的方式,我必须使用索引而不是 ab,但我相信这样更清楚。那么下一个多项式的规范系数是多少?

  • a0 = ckxkb 0
  • a1 = b0xkb 1
  • a2 = b1xkb 2

您可以在循环中编写它,使用并重复使用单个数组 a 来保存系数:

double[] a = new double[n + 1]; // initialized to zeros
for (int k = n; k >= 0; --k) {
    for (int i = n - k; i > 0; --i)
        a[i] = a[i - 1] - x[k]*a[i];
    a[0] = c[k] - x[k]*a[0];
}

关于java - 牛顿多项式的规范系数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13435257/

相关文章:

java - 为什么 Maven 的名声这么差?

python - 识别图形上升趋势或下降趋势

c++ - 添加两个多项式并正确显示结果

java - 使用约定插件更改 Struts2 中的 URL 映射

java - 方法相关指标的 SonarQube 测量

java - 如何在 eclipse java 应用程序中添加 java 参数以及类路径?

Python:将0到1之间的值转换为红色到蓝色的颜色范围

javascript - 如何在 VBA 中编写与 "Application.Match"等效的 JavaScript 代码? - - 用于数值插值函数

python - 动画+在矩阵之间平滑插值

MATLAB - 尝试进行多项式插值,但我得到一个全是零的矩阵(几乎)