Квадратные корни

Автор работы: Пользователь скрыл имя, 09 Марта 2011 в 16:22, лекция

Описание работы

Многочлены — инструмент вычислителя

Файлы: 1 файл

Вычисление многочленов.doc

— 111.00 Кб (Скачать файл)

Вычисление  многочленов —  от Ньютона до наших  дней

Э. Г. Бeлага

§1. Многочлены — инструмент вычислителя

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

Г. X. Андерсен

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

Многочлены, действительно, предельно просты: алгебраическая запись

f(x) = xn + a1xn–1 + a2xn–2 + ... + an–1x + an (1)

является одновременно и формулой для вычисления значений многочлена1 . Хотя выражения типа cosx, 5√x, 10x, log2x намного лаконичнее, с вычислительной точки зрения они бессодержательны: для вычисления, скажем чисел cos17°, 5√2, 100,13 или log27 нужны специальные приближённые формулы (или таблицы, составленные с помощью тех же формул). Как правило, в таких формулах появляются многочлены: например,

cos x »  1 – x2

2!

+ x4

4!

x6

6!

+ x8

8!

(ошибка в  интервале 0≤x≤π/4 меньше одной  десятимиллионной!).

А ведь тригонометрические, степенные и т.п. (элементарные) функции  — это самые простые из функций  анализа, изучаемых и используемых математиками, физиками, инженерами. Известный  математик-вычислитель Р.В.Хемминг  в своей книге «Численные методы» (М., «Наука», 1972) пишет: «Поскольку с многочленами легко обращаться, большая часть классического численного анализа основывается на приближении многочленами».

Так как вычислять  многочлены приходится часто, то важно  научиться делать это как можно  проще. Мы расскажем об эволюции методов вычисления значений многочленов с момента зарождения (XVIIвек). Впрочем, слово «эволюция» здесь не вполне уместно: история этих методов — скорее очень длинный роман с интересной, но краткой завязкой, однообразным действием и неожиданной развязкой.

§2. Схема Горнера

По правде говоря, здесь возникает сомнение, или  вернее вопрос, которого миновать нельзя, не поставив его и на него не ответив.

А. Данте. Пир (1303 г.)

Общепринятый  сейчас способ вычисления многочленов  восходит к Ньютону и называется схемой Горнера. Эта универсальная (то есть применимая к любому многочлену) схема предельно проста и изящна. Она получается из формулы (1) вынесением за скобки x всюду, где это возможно:

f(x) = (...(((x + a1)·x + a2)·x + a3)...)·x + an. (2)

Порядок действии при вычислении f(x) определяется скобками в (2): сначала сложение внутри самой  внутренней пары скобок (его результат  обозначим через p1), затем умножение и сложение внутри следующей пары скобок (результат p2) и т.д.:

ì p1 = x + a1;
ï p2 = p1x + a2;
í p3 = p2x + a3;
ï · · · ·  · · · · · · · · ·  · · · · ·
î pn = pn–1x + an,   f(x) = pn;
 
(3)

всего n–1 умножений  и n сложений2 .

Схема Горнера  настолько совершенна, что вопрос о возможности её улучшения не возникал два с половиной века и был задан «вслух» впервые лишь в 1954году! Постановка этого вопроса (ответ на него предполагался отрицательным) имела важные и неожиданные последствия.

§3. Индивидуальные схемы

— Вы позволите мне записать эту романтическую историю, сэр? — спросил потрясенный мистер Снодграсс.

— Сколько угодно, сэр, сколько угодно, ещё пятьдесят  таких, если они вам по вкусу.

Ч. Диккенс

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

Сравнивая разные схемы по числу операций, мы будем  объединять операции сложения и вычитания  в группу «(+,–)-операций», а гораздо  более трудоёмкие операции умножения и деления — в группу «(×,:)-операций».3

Примеры.

(а) Многочлен  f(x) = x2^k можно вычислить за k умножений (а не за 2k по Горнеру):

p1 = x·x = x2,

p2 = p1·p1 = x4,  ...,

pk = pk–1·pk–1,  f(x) = pk.

(б) Многочлен  f(x) = x15 можно вычислить за пять (×,:)-операций, так как f(x) = x15 = x16 : x = x2^4 : x.

(в) Многочлен  f(x) = xn + xn–1 + ... + x + 1 вычисляется по формуле геометрической прогрессии: f(x) = (xn+1 – 1) : (x – 1).

(г) Многочлен

f(x) = xn + ( n

1

) xn–1 + ... + ( n

n–1

) x + 1;

есть бином  Ньютона: f(x) = (x + 1)n.

Число примеров можно, конечно, увеличить.

§4. Каждому многочлену — свою схему?

Тогда я решил  тем же способом разделаться и  с остальными медведями.

Э. Распэ. Мюнхаузен среди белых медведей.

А что если для  каждого многочлена существует своя схема, гораздо более экономная, чем схема Горнера?

Такие схемы  можно было бы искать либо исходя из особенностей отдельного многочлена (искусно  комбинируя его коэффициенты), либо сконструировав универсальный метод построения схем, намного более экономных, чем схема Горнера, но, возможно, для некоторых многочленов не наилучших. Недостаток первого подхода в том, что для каждого многочлена придется придумывать свои приёмы, и нет никакой гарантии, что нам это всегда удастся; позже (в §10) мы увидим, что второй путь надёжнее во всех отношениях.

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

Возможно, подобные рассуждения и привели в 1955году к открытию универсальной схемы  совершенно нового типа для многочлена шестой степени. Мы проиллюстрируем основную идею этой схемы на примере более простой схемы — для многочленов степени4. Пусть

f(x) = x4 + ax3 + bx2 + cx + d; (4)

положим

ì p1 = x(x + A),
í p2 = (p1 + B)(p1 + x + C) + D,
î f(x) = p2,
 
(5)

где A, B, C и D —  параметры.

Пример. Многочлен x4 + 3x3 + 6x2 + 3x + 2 можно вычислять по схеме: p1 = x(x + A), f(x) = (p1 – 1)(p1 + x + 5) + 7, содержащей два умножения (вместо трёх по Горнеру) и пять (вместо четырёх) (+,–)-операций; здесь A=1, B=–1, C=5, D=7.

Выпишем явное  выражение для p2(x):

p2(x) = x4 + (2A + 1)·x3 + (A2 + A + B + C)·x2 +

+ (AB + B + AC)·x + BC + D;

приравняв коэффициенты f(x) и p2(x), выразим параметры, входящие в формулу(5), через коэффициенты(4):

A = (a –  1)/2;
B = c – bA + A2(A + 1);
C = b –  B – A(A + 1);
D = d –  BC.
 
(6)

Из этих формул ясно, что схема (5) универсальна.

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

§5. Универсальная схема  степени n

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

— И если бы спина  Иа-Иа неожиданно треснула, то мы бы все  здорово посмеялись, — сказал Иа.

А. А. Милн. Винни  Пух

В 1958 году была найдена  общая универсальная схема с  предварительной обработкой коэффициентов. Структура этой схемы для многочлена чётной степени (n=2k) напоминает пирамиду — в основании лежит схема(5) (в её «прочности» мы уже убедились), содержащаяся в схеме степени6, которая содержится в схеме степени8 и т.д.:

ì p1 = x(x + b1),
ï p2 = (p1 + b2)(p1 + x + b3) + b4,
í p3 = p2(p1 + b5) + b6,
ï · · · ·  · · · · · · · · ·  · · · · ·
î pk = pk–1(p1 + b2k–1) + b2k,  f(x) = pk,  k≥2.
 
(7.k)

схема (7.2) — это  и есть схема (5). Результат схемы (7.k) — многочлен pk(x) степени n=2k; многочлен же нечётной степени n=2k+1 можно представить в таком виде:

f(x) = x(x2k + a1x2k–1 + ... + a2k) + a2k+1; (8)

многочлен в  круглых скобках вычисляется  по схеме (7.k). В итоге схема содержит k умножений и 2k+1 сложений для многочлена чётной степени n=2k и k+1 умножений и 2k+2 сложений для многочлена нечётной степени n=2k+1 (с учётом (7.k) и (8) ).

5. Докажите индукцией  по k≥2 универсальность схемы  (7.k).

Решение

Пусть f(x) = x2k + a1x2k–1 + ... + a2k.

Нам нужно по коэффициентам a1, ..., a2k многочлена f(x) найти параметры b1, ..., b2k, превращающие последнюю строку схемы (7.k) в тождество.

Параметр b1 — единственный, для которого существует формула, причём простая.

Лемма 1. Справедливо  соотношение

a1 = kb1 + 1. (I)

Доказательство проводится индукцией по k≥2.

Если k=2, то a1 = kb1 + 1 согласно (6) (роль b1 играет в (6) параметр A).

Пусть k≥3, и пусть  в схеме (7.k)

pk–1(x) = x2k–2 + αx2k–3 + ... ;

тогда

pk = pk–1(p1 + b2k–1) + b2k =

= (x2k–2 + αx2k–3 + ...)(x2 + b1x + b2k–1) + b2k =

= x2k + (α + b1)x2k–1 + ... ,

так что, если по предположению индукции α = (k – 1)b1 + 1, то a1 = α + b1 = kb1 + 1.

Информация о работе Квадратные корни