AFON // радиотехник affonya@mail.ru
← Все проекты JavaScript

Метод Ньютона

Поиск корня уравнения методом касательных.

JS.25 · Алгоритмы

Задача

Найти корень уравнения x³-x-2=0.

Алгоритм

От текущего приближения переходим к x - f(x)/f'(x), пока изменение не станет мало.

Исходный код

⇩ Скачать 25-metod-nyutona.js

// Метод Ньютона
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.