Вычисление значений многочлена

Материал из testwiki
Перейти к навигации Перейти к поиску

Вычисление значений многочлена — определение точных значений многочлена в заданном наборе точек. Одним из традиционных методов вычисления значений многочлена является метод Горнера. Помимо этого, существуют параллельные алгоритмы для решения данной задачи, а также быстрые методы для вычисления значений многочлена в нескольких точках одновременно. Существуют также специальные алгоритмы для решения частных случаев данной задачи, такие как алгоритм Блуштайна и быстрое преобразование Фурье.

Постановка задачи

Многочлен P степени n над полем 𝕂 задан своими коэффициентами. Необходимо по заданному набору точек x1,,xm вычислить значения P в этих точках. Если P зависит только от одной переменной, он может быть представлен как P(x)=a0+a1x++anxn. Соответственно, необходимо вычислить P(x1),,P(xm). Используемая модель вычислений определяет, какие операции можно использовать при решении задачи. Как правило алгоритмы формулируются в терминах арифметических операций (сложение, вычитание, умножение, деление) над 𝕂.

Метод Горнера

Шаблон:Основная статья Схема Горнера предполагает вычисление последовательности pn,,p0, где pn=an, а остальные члены определяются рекуррентно как pk=ak+xpk+1. Разворачивая схему в обратную сторону, можно получить:

p0=a0+xp1=a0+x(a1+xp2)==a0+x(a1+x(a2+x())), где наиболее вложенная скобка содержит выражение an1+xan, то есть, pn1.

По такой схеме, pk равно значению в точке x многочлена, составленного из коэффициентов ak,,an — в частности, p0=P(x). Алгоритм позволяет вычислить P(x) за O(n) сложений и умножений. Соответственно, вычисление в m точках потребует O(nm) операций.

Литература

Шаблон:Algebra-stub