Схема Горнера

Схе́ма Го́рнера (или правило Горнера, метод Горнера, метод Руффини-Горнера) — алгоритм вычисления значения многочлена, записанного в виде суммы мономов (одночленов), при заданном значении переменной. Метод Горнера позволяет найти корни многочлена[1], а также вычислить производные полинома в заданной точке. Схема Горнера также является простым алгоритмом для деления многочлена на бином вида . Метод назван в честь Уильяма Джорджа Горнера, однако Паоло Руффини опередил Горнера на 15 лет, а китайцам этот способ был известен ещё в XIII веке.

Описание алгоритма

Задан многочлен:

Пусть требуется вычислить значение данного многочлена при фиксированном значении . Представим многочлен в следующем виде:

Определим следующую последовательность:

Искомое значение есть . Покажем, что это так.

В полученную форму записи подставим и будем вычислять значение выражения, начиная с внутренних скобок. Для этого будем заменять подвыражения через :

Использование схемы Горнера для деления многочлена на бином

При делении многочлена на получается многочлен с остатком (см. теорема Безу).

При этом коэффициенты результирующего многочлена удовлетворяют рекуррентным соотношениям:

Таким же образом можно определить кратность корней (использовать схему Горнера для нового полинома). Также схему можно использовать для нахождения коэффициентов при разложении полинома по степеням :

Схема Горнера может использоваться для нахождения производных многочлена:

Примеры использования

Рассчитать для Используем синтетическое деление:


 x₀│   x³    x²    x¹    x⁰
 3 │   2    −6     2    −1
   │         6     0     6
   └────────────────────────
       2     0     2     5

Здесь в первой строке записаны значение и коэффициенты многочлена.

Значения (по столбцам) в третьей строке соответствуют сумме значений первой и второй строки (), а значения второй строки произведению x на значение в третьей строке предыдущего столбца ().

Например, если мы видим, что  — значения в третьей строке. Так синтетическое деление базируется на методе Горнера.

Разделим на :

 2 │   1    −6    11    −6
   │         2    −8     6
   └────────────────────────
       1    −4     3     0

Новый многочлен .

Пусть и . Разделим на , используя метод Горнера.

  2 │  4    −6    0    3   │   −5
────┼──────────────────────┼───────
  1 │        2   −2   −1   │    1
    └──────────────────────┼───────
       2    −2   −1    1   │   −4

Tретья строка — сумма первых двух, делённая на два. Каждое значение второй строки совпадает с значением третьей строки в предыдущем столбце. Ответ на деление:

Также с помощью схемы Горнера можно вычислять значение числа в позиционной системе исчисления.

Примечания

Литература