Вычисление Значения Многочлена. Все Ли Тривиально В Этом Вопросе?

Вычисление значения многочлена в точке — одна из простейших задач классического программирования.

При проведении различного рода вычислений часто приходится определять значения полиномов при заданных значениях аргументов.

Часто приближенное вычисление функций сводится к вычислению аппроксимирующих многочленов.

Среднестатистического читателя Хабрахабра нельзя назвать неопытным в использовании всяких извращений.

Каждый второй скажет, что полином нужно вычислять с помощью Правило Горнера .

Но всегда есть маленькое «но», всегда ли схема Горнера самая эффективная?

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

Моя цель — не точно описать алгоритмы вычисления полиномов, а лишь показать, что в некоторых случаях можно (необходимо) применять схемы, отличные от правил Горнера.

Для тех, кому интересен материал, в конце статьи есть список литературы, к которой можно обратиться для более детального изучения вопроса.

Кроме того, иногда становится обидно, что имена наших российских математиков остаются малоизвестными.

Кроме того, мне просто приятно рассказывать о работе наших математиков.

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

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

Правило Горнера стало очень широко использоваться при вычислении значений многочленов.

Метод назван в честь британского математика Уильяма Джорджа Хорнера.

В соответствии с этим правилом полином n-й степени имеет вид:

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

представлен в виде

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

Значение полинома вычисляется в порядке, указанном в скобках.

Что у нас есть? Чтобы оценить полином

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

по схеме Горнера необходимо произвести n умножений и n-k сложений (здесь k — число коэффициентов многочлена, равное 0).

Если

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

, то будет n-1 умножений.

Можно показать, что для вычисления полиномов общего вида невозможно построить более экономичную по числу операций схему, чем схема Горнера.

Наибольшая привлекательность схемы Горнера — простота алгоритма вычисления значения многочлена.

Исключения При вычислении полиномов специального вида может потребоваться меньше операций, чем при использовании универсальной схемы Горнера.

Например, вычисление степени

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

по схеме Горнера означает последовательное умножение n множителей и требует n-1 умножения.

Однако каждый первый читатель скажет, что для расчета, например,

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

нужно рассчитывать последовательно

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

,

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

,

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

, т.е.

выполнить всего 3 умножения вместо 7. Есть ли что-то еще, ведь схема Горнера самая экономичная? На самом деле все решает объем расчетов.

Если вам нужно вычислить одно значение многочлена, то ничего лучше схемы Горнера не придумано.

Но если значения многочлена вычисляются во многих точках, то появляется возможность сэкономить большое количество операций умножения за счет предварительных вычислений, выполняемых ровно один раз.

Это может значительно ускорить работу программы.

В некоторых случаях для получения полиномиальных значений целесообразно использовать двухэтапные схемы.

На первом этапе действия производятся только над коэффициентами многочлена; он преобразуется в специальную форму.

На втором этапе для заданных значений аргумента вычисляется значение самого полинома.

В этом случае может оказаться, что количество операций, выполняемых на втором этапе, будет меньше, чем при расчетах по схеме Горнера.

Еще раз отмечу, что подобные методы расчета уместны при вычислении значений многочлена

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

для большого количества значений x. Выигрыш получается за счет того, что первый этап для полинома выполняется только один раз.

Примером может служить вычисление элементарных функций, где аппроксимирующий полином готовится заранее.

В дальнейших обсуждениях, говоря о количестве операций по вычислению

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

, буду иметь в виду сложность второго этапа расчетов.

Схема Дж.

Тодта для полиномов 6-й степени Имеем следующий полином:

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

Для расчетов мы используем следующие вспомогательные полиномы:

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

,

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

,

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

.

Шансы

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

определяются методом неопределенных коэффициентов исходя из условия

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

.

Из последнего условия составим систему уравнений, приравнивающую коэффициенты равных степеней многочленов.

Саму систему я здесь описывать не буду.

Но она легко решается методом замены, и в этом случае приходится решать квадратные уравнения.

Коэффициенты могут оказаться сложными, но если коэффициенты окажутся действительными, то для вычислений потребуется три умножения и семь сложений вместо пяти умножений и шести сложений по схеме Горнера.

Нет необходимости говорить об универсальности этой схемы, но читатель может ясно оценить сокращение количества операций по сравнению со схемой Горнера.

Схема Ю.

Л.

Кеткова

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

Наконец-то я добрался до наших математиков.

Ю.

Л.

Кетков дал общее представление полинома n-й степени для n> 5, которое всегда приводит к вещественным выражениям и требует умножения [(n+1)/2]+[n/4] и сложения n+1 для вычисления полинома n-й степени.

.

Например, при n=2k схема Кеткова сводится к поиску многочленов:

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?



Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?



Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?



Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?



Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

Где

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

,

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

когда k четно, и

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

,

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

, если k нечетно (k> 2).

Все неизвестные коэффициенты находятся из равенства

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

.

В работах Кеткова дан метод решения результирующих систем, всегда дающий действительные коэффициенты.



Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

.

Схемы В.

Я.

Пана

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

?.

Белага в своих работах он дал строгое доказательство невозможности построения схемы вычисления произвольных многочленов n-й степени, используя на втором этапе менее чем [(n+1)/2]+1 умножений и n сложений.

В.

Я.

Пан работал над задачами оптимального расчета полиномов.

В частности, он предложил несколько схем вычисления действительных многочленов, которые очень близко подошли к оценкам ?.

Белаги.

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

1. Схема вычисления многочленов четвертой степени.

Учитывая полином

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

.

Давайте представим

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

как:

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?



Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

Где

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?



Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

2. Схема расчета

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

,

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

.

Построение вспомогательных полиномов

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

,

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

,

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

:

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?



Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

, s=1,2,…,k. Для вычисления значения многочлена воспользуемся следующими выражениями:

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

, в

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

,

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

, в

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

,

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

, в

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

,

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

, в

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

, Данная схема на втором этапе требует

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

умножение и

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

добавление.

Особенность этой схемы в том, что коэффициенты

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

всегда существовать, когда

Вычисление значения многочлена.
</p><p>
 Все ли тривиально в этом вопросе?

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

У В.

Я.

Пан существуют и другие схемы вычисления полиномов, в том числе комплексные.

Заключение Подводя итог сказанному, отмечу, что расчет одного или нескольких значений полинома, несомненно, должен осуществляться по схеме Горнера.

Однако если количество значений полиномов, которые необходимо вычислить, велико, а производительность очень важна, то имеет смысл рассмотреть возможность использования специальных методов расчета полиномов.

Некоторые читатели скажут, что возиться с другими схемами, кроме схемы Хорнера, сложно, утомительно и не стоит заморачиваться.

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

Литература

  1. Кетков Ю.

    Л.

    Об одном способе вычисления полиномов на математических машинах.

    // Новости вузов.

    Радиофизика, вып.

    1., № 4, 1958 г.

  2. В.

    Я.

    Пан, “Расчет полиномов с использованием схем с предварительной обработкой коэффициентов и программы автоматического поиска параметров”, Ж.

    в.

    Вычисл.

    математика.

    и математика.

    Физ.

    , 2:1 (1962), 133–140.

  3. В.

    Я.

    Пан, “О методах вычисления значений многочленов”, Успехи матем.

    Наук, 21:1(127) (1966), 103–134

  4. В.

    Я.

    Пан, “О вычислении многочленов пятой и седьмой степени с действительными коэффициентами”, Ж.

    вычисл.

    Вычисл.

    математика.

    и математика.

    Физ.

    , 5:1 (1965), 116–118.

  5. Пан В.

    Я.

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

    Проблемы кибернетики.

    Том.

    5. М.

    : Наука, 1961, 17–29.

  6. Белага?.

    Д.

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

    Проблемы кибернетики.

    Том.

    5. М.

    : Физматгиз, 1961, 7–15.

Теги: #полиномы #полиномы #вычисление полиномов #схема Хорнера #схемы Пана #Алгоритмы #математика
Вместе с данным постом часто просматривают: