以Java简化形式编写多项式

问题描述 投票:1回答:1

所以我有一个复数系数数组。因此,如果c = a + ib,则系数将存储为(a,b)。我的数组称为Coeff [i]。我想编写一个函数,该函数将接受一个变量,例如z,并评估多项式。但事实是,我不想使用Math.Pow函数,我想像这样评估多项式:

enter image description here

我曾尝试写下1,2,3,4级的多项式,由此我注意到了一种模式(我的意思是显而易见的)。但是后来我想不出这样的写法。如果有人可以帮助,那就太好了。

也许我应该建立一个循环,该循环将从最高的索引开始,然后从内部对多项式求和?

我认为我必须为此设置一个循环,但是我不确定如何准确地做到这一点:enter image description here

java math polynomials
1个回答
1
投票

您所描述的称为Hormer's Method,用于评估多项式。您可以通过从最高阶项开始,然后重复将其乘以z进行评估,然后添加下一个最高阶项,进行重复冲洗。看起来像这样:

Complex eval(Complex z, Complex coeff[]) {
  Complex eval = 0;

  for (int i = coeff.length-1; i > 0; i--) {
    eval += Complex.add(coeff[i], Complex.mul(eval, z));
  }

  return eval + coeff[0];
}

您将需要对输入进行一些验证(即,确保数组不为空),并且假设您有一个用于处理复数的类(我不记得是否有一个可用的标准数字)。另外,我还没有测试过,所以要加一点盐,但这是一般的想法。

© www.soinside.com 2019 - 2024. All rights reserved.