Метод деления пополам: оцените полиномиальную функцию

Я реализую метод деления пополам, и в качестве первого шага мне нужно оценить полиномиальную функцию, но я не получаю правильный результат.

Используемый полином 3(x^2)+7(x)+1
с x=2результат должен быть 27

public static double evaluaFx(int []coef, int grade, int x) { 
   //int x viene siendo los x0,xf.xmenter code here
   double Fx=0;
   //System.out.println("grade"+grade+"x"+x);
   //for (int i = grade; i >=0; i--) {
   //   System.out.println(coef[i]);
   //}
   for (int i = grade; i>=0; i--) {
      Fx= Math.pow((coef[i]*x), grade);
      // System.out.println(Fx+"mas"+"("+coef[i]+x+") a la grado"+grade);
   }
   return Fx;
}

Что не так с приведенным выше алгоритмом?

1 ответ

Несколько вещей не так в вашем алгоритме:

Формула для одного сорта (шаг i) должно быть:

 // for instance, if i=2, you want 3 * x^2 which translate to
 Fx = coef[i]*Math.pow(x, i);

Затем в цикле for вы не добавляете последовательные вычисления оценок, теряя на каждом шаге предыдущий результат. Вы должны сделать что-то вроде (обратите внимание на += вместо =)

 Fx += coef[i]*Math.pow(x, i);
Другие вопросы по тегам