Гашков С.В. Современная элементарная алгебра в задачах и решениях
.pdf§ 3.4. Производные и кратные корни |
151 |
Справедливы следующие утверждения о производной многочлена.
Теорема 73.
(i)Производная многочлена нулевой степени равна 0.
(ii)Для любого c F производная многочлена x − c равна 1.
(iii)Производная суммы двух многочленов равна сумме производных.
(iv) |
Для любых c F, f F[x] |
справедливо равенство (cf)′ = cf′, |
|
т. е. постоянный множитель можно выносить за знак про- |
|
|
изводной. |
f1 f2 F[x] справедлива формула |
(v) |
Для любых многочленов |
|
Лейбница
(f1 f2)′ = f1′ f2 + f1 f2′.
(vi)Для любых многочленов fi F[x], i = 1, . . . , n, справедлива обобщенная формула Лейбница
(f1 . . . fn)′ = f1′ f2 . . . fn + f1 f2′ f3 . . . fn + . . . + f1 f2 . . . fn−1 fn′ . (vii) Для любого многочлена f F[x]
(fk)′ = kfk−1 · f′.
(viii) Для любого элемента c F
((x − c)k)′ = k(x − c)k−1.
Д о к а з а т е л ь с т в о. Первые четыре утверждения следуют непосредственно из определения. Формула Лейбница (v) легко доказывается сначала в частном случае, а потом переходим к более общему случаю:
(а) f1 (x) = axm, f2 (x) = bxn;
(б) f1 (x) = a0xn + a1xn−1 + . . . + an−1x + an, f2 (x) = bxn;
(в)f1 (x) = a0xn + a1xn−1 + . . . + an−1x + an, f2 (x) = b0xm + b1xm−1 + . . . + bm−1x + bm.
Утверждение (vi) легко выводится из формулы Лейбница по индукции. Утверждение (vii) является частным случаем предыдущего. Последнее утверждение очевидно следует из предыдущих. 
Естественным образом можно ввести понятие производных высшего порядка.
Определение 80. Производная от первой производной называется второй производной, производная от второй производной называется третьей производной и т. д.; n-я производная – это производная от (n − 1)-й производной. Производная порядка n многочлена f обозначается обычно f (n) .
152 |
|
Глава III. Многочлены |
||
Справедливо следующее обобщение формулы Лейбница. |
||||
Теорема 74. Для любых многочленов fi |
F[x], i = 1, . . ., n, и любого |
|||
натурального k справедливо равенство |
|
|||
|
|
n |
(k) f |
(n−k) , |
|
(f1 f2) (n) = Ck f |
|||
|
|
n |
1 |
2 |
где f (0) |
обозначает f. |
k=0 |
|
|
X |
|
|
||
Д о к а з а т е л ь с т в о. Доказательство проводится по индукции. База (n = 1) доказана в предыдущей теореме. Шаг индукции обосновывается с помощью предыдущей теоремы и тождества Паскаля (см. с. 48). 

Рассмотрим поле F характеристики 0 и кольцо многочленов над ним.
Определение 81. Элемент x0 F называется корнем |
|
|
|
n |
|
|
|
кратно- |
|||
F[x], если f(x) делится без остатка на (x |
− |
x ) , |
|||
сти n многочлена f(x) n+1 |
|
|
0 |
|
|
но не делится на (x − x0) |
. Корень кратности 1 называется простым. |
||||
Теорема 75. Элемент x0 F является корнем многочлена f(x) кратности n (n > 2) тогда и только тогда, когда f(x0) = 0 и он является корнем кратности n − 1 у производной многочлена f(x).
Д о к а з а т е л ь с т в о. Пусть x0 – корень кратности n |
многочле- |
на f(x), тогда по определению f(x) = (x −x0)n ·h(x), где h(x) |
не делится |
на x − x0. Применяя предыдущую теорему, отсюда имеем, что |
|
f′ (x) = n(x − x0)n−1 · h(x) + (x − x0)n · h′ (x) =
= (x − x0)n−1 · (n · h(x) + (x − x0) · h′ (x)).
Следовательно, f′ (x) делится на (x − x0)n−1, но не делится на (x − x0)n, так как h(x) не делится на x − x0.
Обратно, пусть f(x0) = 0 и f′ (x) делится на (x − x0)n−1. Докажем, что x0– корень кратности n многочлена f(x). Предположим, что f(x) = = (x − x0)k · h(x), где h(x) не делится на x − x0. Тогда
f′ (x) = k(x − x0)k−1 · h(x) + (x − x0)k · h′ (x) =
= (x − x0)k−1 · (k · h(x) + (x − x0) · h′ (x)),
многочлен kh(x) + (x − x0) · h′ (x) не делится на x − x0 и, следователь′ |
- |
но, x0 является корнем кратности k − 1 производной f (x), откуда |
|
k = n. |
|
Любой многочлен f может быть единственным образом разложен по степеням (x − c):
f(x) = b0 (x − c)n + b1 (x − c)n−1 + . . . + bn−1 (x − c) + bn
§ 3.4. Производные и кратные корни |
153 |
Это легко доказывается индукцией по степени многочлена. Действительно, разделим f(x) на x − c с остатком. Получим
f(x) = (x − c) f1 (x) + bn,
где bn – остаток, f1 (x) – многочлен степени n − 1. В силу индуктивного предположения
f1 (x) = b0 (x − c)n−1 + b1 (x − c)n−2 + . . . + bn−1,
откуда f(x) = b0 (x − c)n + . . . + bn.
Опишем алгоритм для вычисления коэффициентов bi . Свободный член bn разложения есть остаток от деления f на x − c, bn−1 есть остаток при делении неполного частного f1 на x − c, и вычисление последующих коэффициентов требует вычисления неполного частного f2 при делении f1 на x − c. Далее, bn−2 находится как остаток при делении f2 на x − c и т. д. Красивые формулы для коэффициентов bi указывает следующая теорема.
Теорема 76 (Тейлор ). Любой многочлен f степени n можно представить в виде
f(c) + |
f ′ (c) |
(x − c) + |
f ′′ (c) |
(x − c)2 + . . . + |
f (n) (c) |
(x − c)n. |
1! |
2! |
n! |
Д о к а з а т е л ь с т в о. Пусть
f(x) = d0 + d1 (x − c) + d2 (x − c)2 + . . . + dn (x − c)n.
Продифференцируем k раз обе части этого равенства. Используя правила дифференцирования, получаем, что
f (k) (x) = k! dk + (k+ 1)! dk+1 (x −c) + . . . + n(n−1) . . . (n−k+ 1)dn (x −c)n−k. Полагая x = c, имеем f (k) (c) = k! dk. 
Задачи и упражнения к § 3.4
1.Определить A и B так, чтобы (x − 1)2 | Axn+1 + Bxn + 1.
2.Докажите, что многочлены
(i)x2n − nxn+1 + nxn − 1;
(ii)x2n+1 − (2n + 1)xn+1 + (2n + 1)xn − 1
имеют один тройной корень.
3. Найдите условие, при котором многочлен x5 + ax3 + b имеет двойной ненулевой корень.
* Б. Тейлор (Brook Taylor, 1685–1731) – английский математик, член Лондонского королевского общества.
154 |
Глава III. Многочлены |
4.Докажите, что трехчлен xn + axn−m + b не может иметь ненулевых корней кратности выше второй.
5.Докажите, что k-членный многочлен a1xn1 + . . . + akxnk не может иметь ненулевых корней кратности выше (k − 1)-й.
6.Докажите, что многочлен 1 + x + x2/2 + x3/3! + . . . + xn/n! не имеет кратных корней.
7*. Докажите, что многочлен 1 + x + x2/2 + x3/3! + . . . + xn/n! имеет не более одного действительного корня.
8*. Докажите, что многочлен 1+ x + x2/2+ x3/3!+ . . . + xn/n! не имеет рациональных корней. У к а з а н и е. Применить формулу Лежандра
оделимости факториалов.
9.Разложите многочлен x6 − 6x4 − 4x3 + 9x2 + 12x + 4 на множители, не имеющие кратных корней.
10.Если многочлен с целыми коэффициентами принимает в четырех разных целых точках значение a, то он не может принимать ни в одной целой точке значение a + p, где p – простое число.
11*. (Эйлер.) Многочлен n2 + n + 41 при n = 0, 1, . . . , 39 принимает только простые значения, но при n = 40 – нет. Докажите теорему: не существует непостоянного многочлена, принимающего только простые значения при всех натуральных значениях аргумента.
12*. Существует многочлен f(x) n-й степени с целыми коэффициентами такой, что f(0), . . . , f(n) – различные простые числа.
§ 3.5. Схема Горнера
Деление произвольного многочлена на двучлен может быть выполнено существенно проще, чем деление на произвольный многочлен.
Действительно, если нужно разделить многочлен
f(x) = a0xn + a1xn−1 + . . . + an−1x + an F[x] |
|
|
|
F[x], |
|
на двучлен x − c, где c F, т. е. найти такие q(x) и r, что q(x) n−1 |
+ |
|
r F, и f(x) = (x − c)q(x) + r, естественно искать q(x) в форме b0x |
|
|
+ b1xn−2 + . . . + bn−1. Тогда получим равенство
f(x) = a0xn + a1xn−1 + . . . + an−1x + an =
=(x − c) (b0xn−1 + b1xn−2 + . . . + bn−1) + r,
* В. Горнер (William George Horner, 1786–1837) – английский математик.
§ 3.5. Схема Горнера |
155 |
равносильное цепочке равенств
a0 = b0,
a1 = b1 − cb0,
a2 = b2 − cb1,
. . . . . . . . . . . . . . . . . . . .
an−1 = bn−1 − cbn−2, an = r − cbn−1,
откуда последовательно определяются коэффициенты q(x) и остаток r:
b0 = a0,
b1 = a1 + cb0,
b2 = a2 + cb1,
. . . . . . . . . . . . . . . . . . . .
bn−1 = an−1 + cbn−2, r = an + cbn−1.
Заметим, что остаток r равен значению f(c) многочлена f(x) при x = c. Действительно, переходя в равенстве f(x) = (x − c)q(x) + r к значениям при x = c, получим f(c) = (c − c)q(c) + r, откуда r = f(c).
Указанный способ вычисления коэффициентов частного q(x) и остатка r носит название схемы Горнера (хотя она была, по существу, известна, например, и Ньютону, и Руффини, и даже в Китае в XIII в.).
Далее сложностью алгоритма будем называть число выполняемых
внем арифметических операций.
Вприведенном выше алгоритме Горнера использовались только операции сложения-вычитания и умножения и фактически была доказана следующая
Теорема 77. Частное и остаток от деления многочлена f(x) степени n на x − c находятся со сложностью n плюс число ненулевых коэффициентов у многочлена f(x) минус единица.
Упражнение 63. Найдите неполное частное и остаток при делении многочлена x5 на x − 2.
Выпишем последовательно коэффициенты многочлена x5 и, после вертикальной черты, число 2:
1 0 0 0 0 0 | 2 .
Под этой строкой запишем коэффициенты неполного частного и остаток, пользуясь только что выведенными формулами:
1 |
0 |
0 |
0 |
0 |
0 | 2 |
1 |
2 |
4 |
8 |
16 |
32 |
(остаток – подчеркнутое число). Итак,
x5 = (x − 2) (x4 + 2x3 + 4x2 + 8x + 16) + 32.
156 |
Глава III. Многочлены |
З а м е ч а н и е. В связи с этим примером отметим, что деление x100 на x − 1000 на компьютере таким способом выполнить затруднительно, потому что остаток будет равен 1030 и вызовет переполнение. Не все, что легко в теории, является таким и на практике.
Описанному в предыдущем параграфе алгоритму разложения многочлена по степеням двучлена x − c можно придать следующий вид.
Теорема 78. Младшие k + 1 коэффициентов многочлена f(x + c),
равные
f(c), f′ (c), . . . , f (k) (c)/k!,
можно вычислить со сложностью (k + 1) (2n − k), где n = deg f(x).
В частности, все коэффициенты вычисляются со сложностью n(n + 1).
Д о к а з а т е л ь с т в о. Обозначим G(n, k + 1) сложность этого вычисления. С помощью схемы Горнера со сложностью 2n вычислим q(x)
и f(c), где
f(x) = (x − c)q(x) + f(c).
Тогда
f(x + c) = xq(x + c) + p(c),
и для вычисления остальных k коэффициентов достаточно найти k младших коэффициентов у многочлена q(x + c) степени n − 1. Поэтому
G(n, k + 1) 6 G(n − 1, k) + 2n, G(n, 1) 6 2n,
значит,
G(n, k + 1) 6 2n + 2(n − 1) + . . . + 2(n − k) = (k + 1) (2n − k).
При k = n получаем G(n, n+ 1) = n(n+ 1), причем используется n(n+ 1)/2 сложений и столько же умножений на константу c.
Тот факт, что коэффициент при xk в многочлене f(x + c) равен f (k) (c)/k!, следует из формулы Тейлора. 
З а м е ч а н и е. Если c = 1, то реально умножений вообще не производится. В общем случае почти все умножения можно сэкономить, если предварительно вычислить c2, . . . , cn, и от многочлена
f(x) = a0 + . . . + anxn
перейти к многочлену
F(x) = f(xc) = a0 + . . . + ancnxn,
вычислив его коэффициенты a0, a1c, . . ., ancn, далее получить разложение F(x) по степеням x − 1
F(x) = b0 + b1 (x − 1) + . . . + bn (x − 1)n
§ 3.5. Схема Горнера |
157 |
с помощью n(n + 1)/2 сложений, откуда при y = xc
f(y) = b0 + b1 (y/c −1) + . . . + bn (y/c −1)n = b0 + bc1 (y −c) + . . . + bcnn (y −c)n,
значит, нужные нам коэффициенты f (k) (c)/k! находятся по формулам bk/ck с помощью n делений.
Упражнение 64. Разложим многочлен x5 по степеням x − 2. Применяя схему Горнера, получим:
1 |
0 |
0 |
0 |
0 |
0 | 2 |
1 |
2 |
4 |
8 |
16 |
32 |
1 |
4 |
12 |
32 |
80 |
|
1 |
6 |
24 |
80 |
|
|
1 |
8 |
40 |
|
|
|
1 |
10 |
|
|
|
|
1 |
|
|
|
|
|
где остатки подчеркнуты. Таким образом,
x5 = (x − 2)5 + 10(x − 2)4 + 40(x − 2)3 + 80(x − 2)2 + 80(x − 2) + 32.
Для приближенного вычисления корней многочлена бывает нужно найти одновременно f(c) и f′ (c). Выполнить это можно при помощи схемы Горнера, вычислив два коэффициента разложения f по степеням x − c.
Упражнение 65. Для многочлена x3 −x −1 вычислим f(1,2) и f′ (1,2). Применим схему Горнера:
1 |
0 |
−1 |
−1 |
| 1,2 |
1 |
1,2 |
0,44 |
−0,472 |
|
1 |
2,4 |
3,32 |
|
|
Итак, f(1,2) = −0,472 и f′ (1,2) = 3,32.
В качестве еще одного применения схемы Горнера опишем алгоритм перевода из двоичной системы в десятичную и обратно.
Сначала переведем число из двоичной системы в восьмеричную. Для этого разбиваем справа налево его цифры на тройки (последняя тройка на самом деле может быть парой или одной цифрой) и переводим их в восьмеричную систему схемой Горнера (выполняемой устно). Например,
(1111110000)2 = (1.111.110.000)2 = (1760)8.
Выполним перевод из восьмеричной системы в десятичную. Пусть число u = (un . . . u1)8. На k-м шаге выполняем над полученной на предыдущем шаге записью в десятичной арифметике действия
un . . . un−k−1 − 2 · un . . . un−k = vn+1 . . . vn−k−1
158 |
Глава III. Многочлены |
и получаем запись
vn+1 . . . vn−k−1.un−k−2 . . . u1,
где точка используется вместо десятичной запятой, а старшие разряды могут оказаться нулевыми и в реальных вычислениях участвовать не будут. На (n − 1)-м шаге получаем десятичную запись числа u. Например, (1760)8 = (1008)10:
(1.7 6 0)8
− 2
1 5.6 0 − 3 0
1 2 6.0 − 2 5 2
(1 0 0 8)10
Алгоритм перевода из десятичной системы в двоичную почти такой же. Сначала переводим в восьмеричную запись. Для этого, пользуясь восьмеричной арифметикой, на k-м шаге выполняем над полученной на предыдущем шаге записью действия:
un . . . un−k−1 + 2 · un . . . un−k = vn+1 . . . vn−k−1
и получаем запись
vn+1 . . . vn−k−1.un−k−2 . . . u1
(поначалу (n + 1)-е разряды окажутся нулевыми и в реальных вычислениях участвовать не будут). На (n − 1)-м шаге получаем восьмеричную запись числа u. Например, (1945)10 = (3631)8:
+(1.9 4 5)10 2
+ 2 3.4 5 4 6
+3 0 2.5
6 0 4
(3 6 3 1)8
Здесь числа левее точки записаны в восьмеричной системе. Далее переводим восьмеричное n-значное число в двоичное (вычисляя для каждой восьмеричной цифры двумя делениями на два с остатком ее двоичную запись).
§ 3.5. Схема Горнера |
159 |
Задачи и упражнения к § 3.5
1.Укажите ускоренный вариант схемы Горнера, удобный для вычисления четных и нечетных многочленов, и дайте оценку его сложности.
2.Переведите из десятичной в двоичную число 12345678987654321.
3.Переведите из двоичной в десятичную число 10101010101010101.
4.Дайте подробное обоснование изложенных в этом параграфе алгоритмов перевода из двоичной в десятичную систему и обратно.
5.На одной из шумерских клинописных табличек написано число 608 + 10 · 607. Переведите его из шестидесятеричной системы в десятичную.
6*. (Параллельная схема Горнера.) Если компьютер имеет k параллельно работающих процессоров, операции обмена между которыми занимают пренебрежимо малое время, то вычисление значения многочлена степени n в заданной точке требует не более
|
2n/k + max l(j) + log2 k + O(1) |
|
||
|
|
j6k |
|
|
единиц времени, где l(m) – время вычисления xm. |
|
|||
У к а з а н и е. |
Положим n = mk + s, 0 6 s < k, |
и представим p(x) |
||
в виде |
|
|
|
|
k−1 |
s |
m |
k−1 |
m−1 |
X |
X |
X |
X |
X |
x j pj (xk) = x j |
uki+ j xki + |
x j |
uki+ j xki . |
|
j=0 |
j=0 |
i=0 |
j=s+1 |
i=0 |
На j-м процессоре вычисляем x j pj (xk). Для этого на (k − 1)-м процессоре вычисляется со сложностью l(k) + O(1) степени xk−1 и xk и последняя передается на остальные процессоры, которые тем временем вычисляют степени x j . После этого все процессоры вычисляют x j pj (xk) со сложностью 2n/k + O(1) каждый (используя обычную схему Горнера).
Остается сложить полученные результаты за время log2 k + O(1), используя параллельно k/2 процессоров.
7*. Для одновременного вычисления значений многочлена в нескольких точках схему Горнера иногда можно немного ускорить.
Докажите, что для одновременного вычисления значений p(c) и p(−c) достаточно 2n + 1 операции, где n – степень многочлена p(x).
У к а з а н и е. Разделим p(x) на x2 − c2. Получим равенство
p(x) = q(x) (x2 − c2) + r1x + r0.
Представляя p(x) в виде суммы многочленов, содержащих только четные и только нечетные степени переменной, получим, что p(x) = p0 (x2) + + xp1 (x2), где сумма степеней многочленов p0 (x) и p1 (x) равна n − 1.
160 Глава III. Многочлены
Деля их на x − c2, имеем
p0 (x) = q0 (x) (x − c2) + k0, p1 (x) = q1 (x) (x − c2) + k1.
Отсюда
q(x) (x2 − c2) + r1x + r0 = p(x) = p0 (x2) + xp1 (x2) =
=q0 (x2) (x2 − c2) + k0 + x(q1 (x2) (x2 − c2) + k1) =
=(x2 − c2) (q0 (x2) + xq1 (x2)) + k1x + k0,
значит,
r1 = k1, r0 = k0,
Сложность деления на x2 − c2 не превосходит 2n − 2. Для вычисления p(c) = q(c) (c2 − c2) + rc + r = rc + r,
p(−c) = q(−c) (c2 − c2) + r1 (−c) + r0 = −r1c + r0
нужно дополнительно 3 операции.
§ 3.6. Аддитивные цепочки
Назовем аддитивной цепочкой любую начинающуюся с 1 последовательность натуральных чисел a0 = 1, a1, . . ., am, в которой каждое число является суммой каких-то двух предыдущих чисел (или удвоением
какого-то предыдущего числа). Обозначим l(n) наименьшую длину аддитивной цепочки, заканчивающейся числом n. Для определенности под длиной цепочки a0 = 1, a1, . . . , am понимаем число m.
П р и м е р ы. 1. Последовательность 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 – аддитивная цепочка.
2.Последовательность 1, 2, 3, 5, 7, 14 – минимальная цепочка для 14,
т.е. l(14) = 5.
3.Аддитивные цепочки можно изображать в виде ориентированно-
го графа, в котором в вершину ai идут ребра от вершин aj , ak, если ai = aj + ak (в случае, если такое представление неоднозначно, выбираем любое из них и рисуем только два ребра). Если из какой-то вершины выходит только одно ребро, то для краткости можно «склеить» эту вершину с той вершиной, в которую ведет это ребро. Граф для предыдущего примера см. рис. 21.
1 |
2 |
3 |
5 |
7 |
14 |
Рис. 21
