JS.25 · Алгоритмы
Задача
Найти корень уравнения x³-x-2=0.
Алгоритм
От текущего приближения переходим к x - f(x)/f'(x), пока изменение не станет мало.
Исходный код
// Метод Ньютона
function newton(f, df, x0) {
let x = x0;
for (let i = 0; i < 50; i++) {
const x1 = x - f(x) / df(x);
if (Math.abs(x1 - x) < 1e-10) return x1;
x = x1;
}
return x;
}
const root = newton(x => x ** 3 - x - 2, x => 3 * x * x - 1, 1.5);
console.log('корень x^3 - x - 2 = 0:', root.toFixed(8));
Пояснения
Функция и её производная передаются колбэками; критерий остановки — точность 1e-10.