Схема Горнера
Схе́ма Го́рнера (или правило Горнера, метод Горнера, метод Руффини-Горнера) — алгоритм вычисления значения многочлена, записанного в виде суммы мономов (одночленов), при заданном значении переменной. Метод Горнера позволяет найти корни многочлена[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ретья строка — сумма первых двух, делённая на два. Каждое значение второй строки совпадает с значением третьей строки в предыдущем столбце. Ответ на деление:
Также с помощью схемы Горнера можно вычислять значение числа в позиционной системе исчисления.
Примечания
Литература
- Левитин А. В. Глава 6. Метод преобразования: Схема Горнера и возведение в степень // Алгоритмы. Введение в разработку и анализ — М.: Вильямс, 2006. — С. 284—291. — 576 с. — ISBN 978-5-8459-0987-9
- Волков Е. А. § 2. Вычисление значений многочлена. Схема Горнера // Численные методы. — Учеб. пособие для вузов. — 2-е изд., испр. — М.: Наука, 1987. — 248 с.
- С. Б. Гашков. § 14. Схема Горнера и перевод из одной позиционной системы в другую // Системы счисления и их применение. — М.: МЦНМО, 2004. — С. 37—39. — (Библиотека «Математическое просвещение»). — ISBN 5-94057-146-8.


