полиномиальной: a0x^0 + a1x^1 + a2x^2 + A3x^3 + ... + апх^пНаиболее эффективный способ вычислить многочлен
Массив: array_a [] = {a0, a1, a2, a3 ... an};
Я написал функцию для вычисления этого многочлена в Java:
public double cal(double x) {
double y = 0.0;
for (int index = array_a.length - 1; index >= 0; index--) {
y = array_a[index] + y * x;
}
return y;
}
Это кажется чем петля y += array_a[index] * Math.Pow(x, index);
Но я интересно, если есть лучший способ, чтобы вычислить этот полином 5 раз быстрее?
** Для кого-то думает, что это другой расчет: я проверил функцию выше. Он делает то же самое с y += array_a[index] * Math.Pow(x, index);
, и они вычисляют тот же результат.
Спасибо.
Он использует то, что многочлен равен a0 + x * (a1 + x * (a2 + ...)) –
@ErwinBolwidt Да, я это сделал. Я знаю, что это похоже на другой расчет. Но он делает то же самое. Вы можете проверить. –
Есть ли лучший способ? Похоже, это лучший способ. Минимальное количество вычислений. Почему ты спрашиваешь? Какая часть вам не нравится? – Andreas