Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 牛顿多项式的正则系数_Java_Interpolation_Polynomial Math - Fatal编程技术网

Java 牛顿多项式的正则系数

Java 牛顿多项式的正则系数,java,interpolation,polynomial-math,Java,Interpolation,Polynomial Math,不久前,我为我编写的一个游戏实现了一个多项式近似 我用的是牛顿的金字塔法。 我花了很长时间才弄明白,但我的解决方案需要计算二项式系数,而且我还必须将每个幂的最终系数的所有系数相加(因为解决这个问题类似于平方、立方……项和计算二项式系数) 例如: 从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 我现在的问题是: 有没有一种方法可以

不久前,我为我编写的一个游戏实现了一个多项式近似

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

例如: 从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

我现在的问题是: 有没有一种方法可以不用计算所有的生物学系数,就用牛顿格式计算多项式极化

我的代码:

它工作得相当好,尽管如果一个人给的分数太多,它会相当慢 因为选择的术语已经全部归纳起来

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

干杯

根据判断,我认为您的“金字塔方案”生成系数ci,使得多项式p(x)可以写成
p(x)= c0+(x‒x0)( c1+(x‒x1)( c2+(x‒x2)( c3+(x‒x3)( … ( cn-1+(x‒xn‒1) (中国)

现在可以从后面递归地计算正则系数。从
pn=cn

在每一步中,当前多项式都可以写成
主键= ck+(x‒xk)pk+1= ck+(x‒xk)(b0+ b1x+b2x2+…)
假设下一个较小的多项式已经转化为正则系数

现在您可以使用pk+1的系数bi计算pk的系数ai。从严格的形式上讲,我必须使用索引而不是a和b,但我相信这样更清楚。那么下一个多项式的正则系数是什么呢

  • a0=ck− xkb0
  • a1=b0− xkb1
  • a2=b1− xkb2
您可以将其写入循环,使用并重用单个数组
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];
}

我以前从来没有听说过这种“传销”,但阅读有帮助。有什么特别的原因让你想把金字塔输出转换回标准系数,而不是从这些计算出计算结果吗?若你们真的需要正则系数,拉格朗日方法会是另一种选择吗?无论如何,我还是不明白为什么需要二项式系数。我不明白你的问题:你说的“会是一个选择”是什么意思?哇,非常感谢你,这正是我想要的,似乎我完全错过了利用已经计算好的偏系数的机会。。至于我为什么选择这种方法:我只做了很少的研究,知道如何用手来做,所以一开始我只是好奇我是否能开发一种算法来做这件事,后来我只是在我的项目中使用了这个实现:)