Метод деления пополам: оцените полиномиальную функцию
Я реализую метод деления пополам, и в качестве первого шага мне нужно оценить полиномиальную функцию, но я не получаю правильный результат.
Используемый полином 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);