Как найти полином по заданным

Полином
– многочлен.

Общая
запись: y = anxn + an-1xn-1+…+a1x + a0

Вычисление
х в степени n (бинарный метод, метод
множителей, степенное дерево, аддитивная
сложность).

Бинарный
метод

Запишем
n в двоичной системе счисления и заменим
в этой записи каждую цифру “1” парой
букв SX, а каждую цифру “0” – буквой S,
после чего вычеркнем крайнюю левую пару
букв SX. Результат, читаемый слева на
право, превращается в правило вычисления
хn,
если букву “S”
интерпретировать как операцию возведения
в квадрат (S
– square
– квадрат), а букву “X
” – как операцию умножения на х.

Пример:
n
= 46, переводим в двоичную n
= 1011102,
заменяем SxSSxSxSxS,
записываем правило: x2x4x5x10x11x22x23x46
итого 8 умножений

Метод
множителей

Если
n=p·q,
где р – наименьший простой множитель
числа n
и q
>1, то для вычисления хn
мы можем сначала вычислить хр,
а затем возвести это число в степень q.
В случае, когда n
простое, мы можем вычислить сначала
число хn-1,
а затем умножить его на х.

Если
n=1,
число хn
имеется без всяких вычислений.
Многократное применение этих правил
дает нам процедуру вычисления хn
для любого данного n.

Пример:
n
= pq
; p=7,
q=13,
n=91

y
= x7
=
((x2)x)2x

y13
= (((y2)y)2)2y

итого
9 умножений

Степенное
дерево

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

Аддитивная
сложность

Аддитивной
цепочкой для
n
называется всякая последовательность
целых чисел 1=a0,…,ar=n,
обладающих тем свойством, что ai=aj+ak
при некоторых k
j
<
i
для всех i=1,2,…,r.

Заметим,
что а1
всегда равно 2, а2
равно 2, 3 или 4.

Наименьшее
значение r
длины аддитивных цепочек для n
обозначается через l(n)
и называется аддитивной
сложностью

или высотой
числа n.

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

f(x)=anxn+an-1xn-1+…+a1x+a0,
a
n≠0

f(x)=(…(anx+an-1)x+…)x+a0

Весь
процесс требует n
умножений
и n
сложений.

Обобщенная
схема Горнера.

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

F’(x)=nanxn-1+(n
-1)a
n-1xn-2+…+a1

Это
удобно сделать, положив

c0=an,
b0=0

cj=cj-1x+an-j,
b
j=bj-1x+cj-1,
1≤j≤n.

Здесь
cn=f(x)
и bn=f’(x),
вычисление требует (2n
-1) умножений и (2n
-1) сложений, причем нет необходимости
хранить в памяти новые коэффициенты
j·aj.

Пример:
f(x)=2x7+0x6-3x5-4x4x3-8

C0=a5=2

……

C5=C4*x+a0
= (((2x2-3)*x-4)*x-1)*x-8=
f(x)

b0=0

b1=b0*x+C0=2

…….

b5=b4x+C4=2x4+3x2-4x-4

Литература:
[1], [5].

5. Нахождение нод полиномов от одной переменной

Наивный
метод.

Пусть
f
и g
полиномы и мы хотим вычислить их НОД.
«наивный»
метод

(основан на алгоритме Евклида). Такие
действия над полиномами с рациональными
коэффициентами требуют неоднократного
вычисления НОД целых чисел и что целые
числа, фигурирующие в этих вычислениях,
не всегда являются маленькими.

Модулярные
методы.

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

Вопросы:
1.- как вычислять нетривиальный НОД? 2.-
что делать, если модулярный НОД не
является модулярным образом НОД?м 3.-
какова стоимость этого метода? Граница
для коэффициентов НОД двух полиномов.

Неравенство
Ландау-Миньотта, следствия.

Теорема
(неравенство
Ландау-Миньотта
).
Пусть
-делитель
полинома(где
аi,
biцелые
числа). Тогда
.Следствие
1
.
Каждый коэффициент НОД полиномов
,(с целыми коэффициентами аi,
bi)
ограничен величиной.Следствие
2
.
Каждый коэффициент НОД полиномов
,(с целыми коэффициентами аi,
bi)
ограничен величиной
.

Соответствие
модулярное – целое.

Соответствие
модулярное-целое:
Лемма
1
.
Если число p
не делит старший коэффициент НОД(a,b)
полиномов a
и b,
то степень НОД(aр,bр)
больше или равна степени НОД(f,g).
Формулировка, которой легче пользоваться:
Следствие.
Если число р не делит старшие коэффициенты
полиномов a
и b
(в частности, может делить один из них,
но не оба одновременно), то степень НОД
(aр,bр)
>= степени НОД(a,b).
Поскольку НОД является единственным
полиномом этой степени, который делит
и a,
и b,
то мы можем проверить корректность
наших вычислений НОД: если результат
имеет ту же степень, что и НОД(aр,bр)
(где р удовлетворяет предположению
следствия), и если он делит a
и b,
то
он совпадает с НОД (с точностью до целого
множителя). Пример.
Пусть a=х86-3х4+3х32+2х-5;
b=3х6+5х4-4х2-9х+21.
Тогда НОД(a2,b2)
= х+1, хотя мы уже знаем, НОД(a,b)=1.

Лемма
2
.
Пусть c=НОД(a,b).
Если число р удовлетворяет условию
следствия и, если р не делит Resх(a/c,b/c),
то НОД(aр,bр)=cр.
Если
НОД(aр,bр)=НОД(a,b)р,
то мы говорим, что редукция
задачи хорошая

или что р

число
с хорошей редукцией.

В противном случае мы говорим, что р

число
с плохой редукцией.

Из этой леммы, в частности, следует, что
существует только конечное число
значений р, таких, что степень НОД(aр,bр)
отличается от степени НОД (a,b):
— это те р, которые делят НОД старших
коэффициентов; — это те р, которые делят
результант, упоминающийся в лемме (он
не нулевой и потому имеет только конечное
число делителей).

Вычисление
НОД.

Как
вычислять нетривиальный НОД. Очевидный
метод – воспользоваться неравенством
Ландау-Миньотта, которое позволяет
определить такое число
М
таоке, что все коэффициенты НОД ограничены
М, и производить вычисления по модулю
простого числа, большего чем 2М.

М:=граница_Ландау_Миньотта
(a,
b);

Цикл
до ∞

р:=найти_большое_простое
(2·М);

если
степень_остатка(p,
a)
или
степень_остатка(p,
b)
то

c:=модулярный_НОД(a,b,р);

если
делит (c,
a)
и
делит (c,
b)
то

выход
c;

где:

алгоритм
«граница_Ландау_Миньотта» применяет
следствия и неравенства; алгоритм
«найти_большое_простое» — возвращает
большое простое число, не делящее его
аргумент (каждый раз новое число);
алгоритм «степень_остатка» проверяет,
что редукция по модулю p
не меняет степень, т.е. p
не делит старший коэффициент; алгоритм
«модулярный_НОД» применяет алгоритм
Евклида по модулю p;
алгоритм «делит» проверяет, что полиномы
делятся над кольцом целых чисел.
Недостаток этого метода состоит в том,
что он требует многочисленных вычислений
по модулю р, которое может быть довольно
большим. Поэтому обычно примен-ся метод,
использующий несколько маленьких
простых чисел и китайскую теорему об
остатках. Если мы вычислим cр
и cq,
где c-требуемый
НОД, а р,q-два
простых числа, то эта теорема позволяет
нам вычислить cрq.

Оценка
стоимости алгоритма.

Оценим
стоимость алгоритма.

Время вычисления ограничивается
величиной О(n3·log23·H),
где n-такое, что степени полиномов a,
b
не больше этого числа; H-величина,
удовлетворяющая
неравенству.

Литература:
[1], [5], [6].

ТЕОРИЯ
ИНФОРМАЦИИ

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Подбор полинома по заданным точкам

По заданным точкам построен полином

Задача, которую решает этот калькулятор, звучит так: Построить по N -известным значениям  полином N-1 степени.

Это является одним из видов аппроксимации, но практически, редко используется. Связанно это с тем, что несмотря на то что в узловых точках (исходных) значение вычсленного полинома совпадает на 100%, в промежуточных точках значение может быть очень далеким от реальных значений.

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

Он запросил данные и получил, что в первый год рост человека 50см, на 3 год — 80 см, в 6 лет -120см,  в 15 лет -150 см, а в 25 лет — 180 см

Введя данные он получил следующий полином

По заданным точкам построен полином
Исходный многочлен

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

 Изменение роста - аппроксимация

Удивительно, но где то в 20 лет у человека рост  резко уменьшается до 130 см.

Мы то с Вами прекрасно понимаем, что это не так, но в других расчетах, такая аппроксимация может приводить вот к таким «аномалиям» и следовательно к неверным выводам.

Для чего же тогда нужен этот калькулятор?

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

Несколько примеров:

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

1 результат 

Содержание

Полином одной переменной

§

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



ЗДЕСЬ.

Будем обозначать через $ mathbb A_{} $ какое-либо из множеств $ mathbb Z,mathbb Q, mathbb R_{} $ или
$ mathbb C_{} $.

Общая информация

Функция вида
$$
f(x)=a_0x^n+a_1x^{n-1}+dots+a_n = sum_{j=0}^n a_jx^{n-j}
$$
при $ n_{} in {0,1,dots } $ и $ {a_{0},dots,a_n}subset mathbb A $ относительно переменной $ x_{} $ называется
полиномом1)
или многочленом от указанной переменной над множеством $ mathbb A_{} $. Число $ a_{j} $
называется коэффициентом2) полинома (при $ (n-j)_{} $-й степени переменной),
выражение $ a_{j}x^{n-j} $ — членом (одночленом) полинома,
$ a_{n} $ — свободным членом, $ x_{}^{n-j} $ — мономом.

П

Пример. Выражения

$$ x^{2}+2,x-679, x^{2}+sqrt{2}x-pi , {mathbf i} , x^{3}- 2,x +sqrt{3} $$
являются полиномами; а
$$ x^{-2}+3, x +x^{2} , x^{x}, sum_{j=0}^{infty} x^{j}/j_{} $$
полиномами не являются.

Если $ a_{0}ne 0 $, то член $ a_0x^{n} $ называется ведущим членом, а
$ a_{0} $ — старшим коэффициентом полинома. При этом
число $ n_{} $ называется степенью полинома и обозначается3) $ deg f_{}(x) $.
Полином первой степени называется линейным полиномом.
Полином, все коэффициенты которого, кроме, возможно, $ a_{n} $, равны нулю,
называется константой4); будем обозначать его const.
Очевидно, что степень константы равна нулю; исключительным для этого
утверждения является случай когда константа является нулем.
Если все коэффициенты полинома равны нулю,
то такой полином называется (тождественно) нулевым. В этом
случае его степень не определяется.

На переменную $ x_{} $ мы пока не накладываем ни какого ограничения: она может
принимать значения из любого указанного выше множества — не обязательно
из того, которому принадлежат коэффициенты полинома. Обозначим область
определения полинома через $ mathbb B_{} $.

Значением полинома при (или в точке) $ cin mathbb B_{} $ называется число
$$
f(c) = a_0c^n+a_1c^{n-1}+dots+a_n .
$$

Два полинома
$$ f(x)=a_0x^n+dots+a_n u g(x)=b_0x^m+dots+b_m $$
с коэффициентами из $ mathbb A $ называются (тождественно) равными:
$$ f(x)equiv g(x) $$
если совпадают множества их членов; или, что то же, равны их степени
и равны коэффициенты при одинаковых степенях переменной.

Это определение отличается от привычного определения равенства двух функций:
две функции $ F_{}(x) $ и $ G(x)_{} $ называются равными на множестве $ mathbb B_{} $ если
совпадают их значения при любом $ x in mathbb B_{} $.
На самом деле, для случая полиномов эти два определения — алгебраическое и функциональное — эквивалентны.

Т

Теорема. $ f_{}(x)equiv g(x) $ тогда и только тогда, когда
$ f(c)=g(c)_{} $ для $ forall cin mathbb B_{} $.

Одним из следствий теоремы является тот факт, что для полинома совершенно
не важен порядок следования его членов; в частности, наряду с записью
полинома по убывающим степеням переменной, мы имеем право
записывать его и по возрастающим: $ f_{}(x)= sum_{j=0}^n a_{n-j}x^{j} $.
Форма полинома, в которой его разложение записывается
по убывающим степеням переменной, называется его канонической формой.
Кроме того, теорема дает нам право на операцию, называемую
приведением подобных членов:
$$ ax^{j}+bx^j equiv (a+b)x^j, quad ax^jcdot bx^k=ab x^{j+k} .$$
Имея в виду этот факт, определим теперь две основные операции для полиномов:
сложение и умножение.

Суммой двух полиномов $ f_{}(x) $ и $ g_{}(x) $ называется полином, составленный как сумма всех одночленов, входящих в состав
$ f_{}(x) $ и $ g_{}(x) $:
$$ f(x) + g(x) = (a_n+b_m) + (a_{n-1}+b_{m-1})x+dots +
left{begin{array}{ll}
(a_0+b_0)x^n & npu m=n, \
a_0x^n & npu m<n, \
b_0x^m & npu m>n.
end{array} right.
$$

Т

Теорема. $ deg (f+g_{})le max (deg f, deg g) $.

Произведением двух полиномов $ f_{}(x) $ и $ g_{}(x) $ называется полином, составленный как сумма всевозможных попарных произведений членов первого полинома на члены второго:
$$
begin{matrix}
f(x)g(x) &=& a_0b_0x^{n+m}+(a_1b_0+a_0b_1)x^{n+m-1}
+(a_2b_0+a_1b_1+a_0b_2)x^{n+m-2}+ \
& &+dots + (a_0b_k+a_1b_{k-1}+dots+a_kb_0)x^{n+m-k}+ dots + a_nb_m .
end{matrix}
$$
(В записи коэффициента при $ x^{n+m-k} $ мы полагаем $ a_{j}= 0 $ при $ j>n_{} $ и
$ b_{ell} = 0 $ при $ ell>m_{} $).

Т

Теорема. Если $ f_{}(x) notequiv 0 $ и $ g_{}(x) notequiv 0 $,
то $ deg (fcdot g_{})= deg f + deg g_{} $.

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

П

Пример. Перемножить полиномы

$$ x^{5}+x^3-2,x^2+3 quad mbox{ и } quad 2, x^{4}-3,x^3 +4,x^2-1 , . $$

Решение. Представим полиномы наборами их коэффициентов, расположив
один из них горизонтально, а второй — вертикально. Умножение полинома
$ f_{}(x) $ на $ b_{j}x^{n-j} $ сводится к умножению набора $ (a_{0},dots,a_n) $
на $ b_{j} $; результат следующего умножения — на $ b_{j+1}x^{n-j-1} $ —
получается аналогичным образом, но записывается со сдвигом на одну позицию
вправо. Получившиеся ряды суммируются по столбцам.
$$
begin{array}{r|rrrrrrrrrr}
&1 & 0 & 1 & -2& 0 & 3 \
hline
2 & 2 & 0 & 2 & -4 & 0 & 6 \
-3& & -3 & 0 & -3 & 6 & 0 & -9 \
4 & & & 4 & 0 & 4 & -8 & 0 & 12 \
0 & & & \
-1 &&&&& -1 & 0 & -1 & 2 & 0 & -3 \
hline& 2 & -3 & 6 & -7 & 9 & -2 & -10 & 14 & 0 & -3
end{array}
$$
(В отличие от перемножения чисел здесь результаты сложения в столбиках не
переносятся в следующий разряд.)

Ответ. $ 2,x^{9}-3,x^8+6,x^7-7,x^6+9,x^5-2,x^4-10,x^3+14,x^2 — 3 $.

Множество всех полиномов от переменной $ x_{} $ с коэффициентами из $ mathbb A_{} $
будем обозначать $ mathbb A_{} [x] $.

§

Способы более эффективного умножения полиномов излагаются



ЗДЕСЬ

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

Задача. Вычислить значение полинома в точке $ c $.

Схема вычисления, заложенная в самом определении, «стóит» $ 3n_{}-1 $ операции:
$$ begin{array}{rrrrr}
& &c^2=ctimes c, & dots, & c^n=c^{n-1}times c , \
&a_{n-1} times c, & a_{n-2} times c^2, & dots, & a_0 times c^n ,\
a_n & +a_{n-1} times c & + a_{n-2} times c^2 & + dots & + a_0 times c^n,
end{array}
$$
т.е. $ 2n_{}-1 $ операции умножения и $ n_{} $ операций сложения. Организуем теперь
вычисления по-другому:
$$
begin{matrix}
f(c)&=&a_n+a_{n-1}c+a_{n-2}c^2+dots +a_1c^{n-1}+a_0c^n = \
&=&a_n+cleft(a_{n-1}+a_{n-2}c+ dots + a_0c^{n-1} right) = \
&= &a_n+cleft(a_{n-1}+cleft(a_{n-2}+dots + a_0c^{n-2} right) right) = \
&=& dots = \
&=&a_n+cleft(a_{n-1}+cleft(a_{n-2}+dots + c(a_1+ a_0c)dots right) right) .
end{matrix}
$$
Начинаем вычислять с самой внутренней скобки:
$${mathfrak b}_1= a_1+ a_0c, {mathfrak b}_2= a_2+ {mathfrak b}_1 c,dots,
{mathfrak b}_{n-1} = a_{n-1} +{mathfrak b}_{n-2}c,, {mathfrak b}_{n} = a_{n} +{mathfrak b}_{n-1}c=f(c)
$$
Вычисление каждой величины $ {mathfrak b}_{k} $ «стоит» $ 2_{} $ операции — одного
сложения и одного умножения (при условии, что предварительно вычислено $ {mathfrak b}_{k-1}^{} $).
Приведем компактную запись алгоритма:
$$
{mathfrak b}_k = a_k + {mathfrak b}_{k-1}c quad npu quad {mathfrak b}_0 = a_0 quad u quad
kin {1,dots,n }
.
$$
«Стоимость» вычисления значения $ f_{}(c) $ по этой схеме Хорнера составляет
$ 2n_{} $ операций. Налицо экономия по сравнению с прямым способом вычисления $ f_{}(c) $.

Вычисления удобно производить с помощью таблицы, стартовое состояние которой следующее:
$$
begin{array}{c|ccccccc}
& a_0 & a_1 & a_2 & dots & a_{n-2} & a_{n-1} & a_n \
hline
c & a_0
end{array}
$$
Будем отсчитывать строки сверху вниз, начиная от горизонтальной черты, т.е.
нулевой строкой будем считать строку из коэффициентов полинома.
Вычисление значения $ {mathfrak b}_{1} $ в первой строке производится по схеме: предыдущее число умножается на $ c_{} $ и складывается с верхним, т.е.
$$
begin{array}{c|ccccccc}
& a_0 & a_1 & a_2 & dots & a_{n-2} & a_{n-1} & a_n \
hline
c & a_0 & underbrace{a_1+ca_0}_{{mathfrak b}_1}
end{array}
$$
Далее вычисления идут по тому же правилу:
$$
begin{array}{c|ccccccc}
& a_0 & a_1 & a_2 & dots & a_{n-2} & a_{n-1} & a_n \
hline
c & a_0 &{mathfrak b}_1&underbrace{a_2+c{mathfrak b}_1}_{{mathfrak b}_2}
end{array}
$$
и т.д. Величина, получившаяся в последнем столбце, и будет искомым значением $ f_{}(c) $:
$$
begin{array}{c|ccccccc}
& a_0 & a_1 & a_2 & dots & a_{n-2} & a_{n-1} & a_n \
hline
c & a_0 &{mathfrak b}_1&{mathfrak b}_2&dots &{mathfrak b}_{n-2} & {mathfrak b}_{n-1}&
underbrace{a_n+c{mathfrak b}_{n-1}}_{{mathfrak b}_n=f(c)}
end{array}
$$

П

Пример. Вычислить значение полинома $ x^{5}-3, x +1 $ в точке $ 2+ mathbf i_{} $.

Решение.
$$
begin{array}{c|cccccc}
& 1 & 0 & 0 & 0 & -3 & 1 \
hline
2+ mathbf i & 1& 2+mathbf i &3+4 mathbf i &2+11 mathbf i & -10+24mathbf i& -43+38mathbf i
end{array}
$$

Ответ. $ -43+38mathbf i_{} $.

Выясним теперь смысл коэффициентов $ {mathfrak b}_{1},dots, {mathfrak b}_{n-1} $
первой строки схемы Хорнера.

Т

Теорема. Пусть $ cin mathbb B_{} $ и $ mathbb Bsubset mathbb A_{} $. Полином
$ f_{}(x)in mathbb A[x] $ допускает единственное представление в виде:

$$
f(x)equiv (x-c)q(x)+r npu r=constin mathbb A, q(x)in mathbb A[x],
deg q = deg f — 1 .
$$

Доказательство. Будем искать константу $ r_{} $ и полином $ q_{}(x) $ методом неопределенных
коэффициентов:
$ q(x)= q_{0}x^{n-1}+q_1x^{n-2}+ dots + q_{n-1} $. Подставим его в правую часть доказываемого
тождества, приведем подобные и приравняем коэффициенты
полученного полинома коэффициентам полинома $ f_{}(x) $. Получим линейные уравнения,
из которых последовательно определяем $ q_{0},q_1, dots, q_{n-1} $ :
$$
begin{array}{l|lll}
x^n& a_0&=q_0, & \
x^{n-1}& a_1&=q_1-q_0c &Rightarrow q_1=a_1+q_0c, \
x^{n-2}& a_2&=q_2-q_1c &Rightarrow q_2=a_2+q_1c, \
vdots & & dots & \
x & a_{n-1}&=q_{n-1}-q_{n-2}c &Rightarrow q_{n-1}=a_{n-1}+q_{n-2}c,\
1 & a_n&=qquad -q_{n-1}c+r & Rightarrow r=a_n+q_{n-1}c.
end{array}
$$
Видим, что формулы, определяющие коэффициенты $ q_{k} $, полностью совпадают
с формулами, определяющими элементы первой строки
схемы Хорнера, т.е. $ q_0={mathfrak b}_{0},dots,q_{n-1}={mathfrak b}_{n-1} $.
Но тогда $ r=a_n+q_{n-1}c=a_{n}+{mathfrak b}_{n-1}c={mathfrak b}_{n}=f(c) $.



Итак, имеем:
$$q(x)={mathfrak b}_0x^{n-1}+dots+{mathfrak b}_{n-1}, r={mathfrak b}_{n} , $$
при этом все коэффициенты вычисляются по схеме Хорнера, а старший коэффициент
полинома $ q_{}(x) $ совпадает со старшим коэффициентом $ f_{}(x) $. Так, для полинома приведенного выше примера имеет место тождество:
$$x^5-3, x +1 equiv
$$
$$
equiv (x-2-mathbf i)left(x^4+ (2+mathbf i)x^3+(3+4,mathbf i)x^2+ (2+11,mathbf i)x
-10+24,mathbf i right) -43+38 mathbf i .
$$

Фактически результат предыдущей теоремы говорит о возможности деления полинома $ f_{}(x) $ на линейный полином $ (x-c)_{} $ с остатком. Строгое определение операции деления полиномов дается



НИЖЕ.

Алгоритм схемы Хорнера можно развить и до вычисления значений производных от полинома $ f(x_{}) $ в точке $ c_{} $. См.



ЗДЕСЬ.

Корни

Если значение полинома $ f_{}(x) $ при $ x=cin mathbb B_{} $ равно нулю, то число $ c_{} $ называется корнем полинома $ f_{}(x) $.
Иными словами, корень полинома $ f_{}(x) $ — это решение уравнения $ f_{}(x)=0 $, принадлежащее множеству
$ mathbb B_{} $.

«Корень»
как название неизвестной величины, которую требуется определить («извлечь») из уравнения,
является переводом арабского слова


ریشه


«джизр, джазир» — буквально означающего
«корень растения». В свою очередь, арабский вариант, по-видимому, является переводом санскритского слова «мула», применявшегося индийскими
учеными для обозначения квадратного корня.

Уравнение $ f_{}=0 $, в левой части которого стоит полином одной или
нескольких переменных, называется алгебраическим.

Задача. Выяснить количество корней полинома $ f_{}(x)in mathbb A[x] $,
принадлежащих множеству $ mathbb B_{} $, и вычислить их.

Решить алгебраическое уравнение $ f_{}(x)=0 $ над множеством
$ mathbb B $ означает найти все корни $ f_{}(x) $, принадлежащие $ mathbb B_{} $.

На основании теоремы из предыдущего пункта имеет место следующая

Т

Теорема [Безу]. Пусть $ mathbb B subset mathbb A_{} $ и $ cin mathbb B_{} $ — корень полинома $ f_{}(x), deg fge 1 $. Тогда полином $ f_{}(x)in mathbb A [x] $ допускает представление в виде произведения:

$$
f(x)equiv (x-c)f_1(x) ,
$$
где полином $ f_{1}(x)in mathbb A [x], deg f_1 = deg f — 1 $ определяется единственным образом.

Итак, теорема Безу утверждает, что в случае существования корня полинома,
возможно разложение этого полинома в произведение двух полиномов — одного
первой степени и одного полинома степени, на единицу меньшей исходного.
Тем самым, задача о нахождении корней полинома $ f_{}(x) $ сведется к аналогичной
задаче для полинома $ f_{1}(x) $; вторая задача может оказаться более простой
за счет понижения степени.

Фактическое нахождение полинома $ f_{1}(x) $ возможно произвести с помощью схемы Хорнера.

П

Пример. Решить уравнение

$$ x^{3}+3 mathbf i, x^2-3(1+2 mathbf i)x+10-5 mathbf i =0 $$
над множеством $ mathbb C_{} $, если известно, что число $ (-1-2 mathbf i)_{} $ — одно из его решений.

Решение. Строим схему Хорнера:
$$
begin{array}{c|cccc}
& 1& 3mathbf i & -3(1+2 mathbf i) & 10-5 mathbf i \
hline
-1-2 mathbf i & 1& -1+ mathbf i & -5 mathbf i & 0
end{array}
$$
Видим, что число $ (-1-2 mathbf i)_{} $ действительно является корнем полинома, и, следовательно, последний раскладывается в произведение двух полиномов: линейного и квадратичного. Коэффициенты квадратичного полинома выбираются из той же схемы:
$$ (x+1+2 mathbf i )(x^2 + (-1+ mathbf i )x- 5 mathbf i) . $$
Квадратное уравнение над $ mathbb C_{} $ можно решить (см.



ЗДЕСЬ ), его корни:
$ (-1-2 mathbf i)_{} $ и $ 2+mathbf i_{} $.

Ответ. $ (-1-2 mathbf i), 2+ mathbf i_{} $.

Если полином $ f_{}(x) $ раскладывается в произведение $ f_{}(x)equiv (x-c)f_1(x) $, то полином $ (x-c) $ называется линейным множителем для $ f_{}(x) $ над множеством $ mathbb B_{} $.

=>

Для того, чтобы $ (x-c)_{} $ был линейным множителем для $ f_{}(x) $ необходимо и достаточно чтобы число $ c_{} $ было корнем $ f_{}(x) $.

Начиная с этого места, корни полинома будем обозначать греческими буквами: $ lambda, mu_{} $ и т.д.

Примеры показывают, что не для всякого полинома и множества $ mathbb B_{} $
корни существуют. Очевидно не имеет корней полином нулевой степени
(константа, отличная от нуля); любой полином первой степени над $ mathbb A_{} $
имеет единственный корень, принадлежащий $ mathbb A_{} $.
Квадратный полином $ x^{2}+1 $ не имеет вещественных корней,
но имеет мнимые.

Основная теорема высшей алгебры

Т

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

Эта теорема гарантирует существование корня $ lambda_{1}in mathbb C $.
На основании теоремы Безу, можно утверждать, что $ f_{}(x) $ допускает представление
$$ f(x)equiv (x-lambda_1)f_1(x) quad npu quad f_1(x)in mathbb C [x], deg f_1(x)=deg f(x) -1 .$$
Если $ deg f_{1}(x) ge 1 $, то, по той же теореме, полином $ f_{1}(x) $
также должен обладать корнем, который мы обозначим5) $ lambda_{2} $; теорема Безу гарантирует тогда представление
$$
f(x)equiv (x-lambda_1)(x-lambda_2)f_2(x) quad npu quad f_2(x)in mathbb C [x], deg f_2(x)=deg f(x) -2
.$$
Продолжая процесс далее, мы за $ n_{} $ шагов придем к представлению
$$
f(x)equiv (x-lambda_1)(x-lambda_2)times dots times (x-lambda_n)f_n(x) quad npu quad f_n(x)in mathbb C[x], deg f_n(x)=0
,$$
т.е. полином $ f_{n}(x)^{} $ представляет собой константу. На основании условия
тождественного равенства полиномов утверждаем, что $ f_{n}(x) equiv a_0 $.
Таким образом приходим к следующей альтернативной версии основной теоремы высшей алгебры.

Т

Теорема. Для произвольного полинома $ f_{}(x) $ степени $ n_{}ge 1 $
существует его представление в виде произведения линейных множителей

$$
f(x)equiv a_0(x-lambda_1)(x-lambda_2)times dots times (x-lambda_n) ;
$$
это представление единственно с точностью до перестановки сомножителей.

Как уже отмечалось в доказательстве теоремы, в этом представлении
могут встречаться одинаковые линейные сомножители. Собрав их вместе, получим
иной вид этого представления
$$
f(x)equiv a_0(x-lambda_1)^{{mathfrak m}_{1}}times
dots times
(x-lambda_{mathfrak r})^{{mathfrak m}_{{mathfrak r}}} , npu
{mathfrak m}_{1}+{mathfrak m}_{2}+dots+{mathfrak m}_{mathfrak r}=n
$$
и все числа $ lambda_{1},dots,lambda_{mathfrak r} $ теперь различны. Эта
формула называется формулой разложения полинома $ f_{}(x) $ на линейные сомножители или линейным представлением полинома $ f_{}(x) $; при этом число
$ {mathfrak m}_{j}^{}in mathbb N $ называется кратностью линейного сомножителя
$ x-lambda_{j} $ или кратностью корня $ lambda_{j} $ в полиноме $ f_{}(x) $.
Корень $ lambda_{j} $ называется простым, если $ {mathfrak m}_{j}=1_{} $ и
кратным кратности $ {mathfrak m}_{j}^{} $ если $ {mathfrak m}_{j}>1_{} $ (двойным или двукратным, если $ {mathfrak m}_{j}=2_{} $, тройным или трехкратным если $ {mathfrak m}_{j}=3_{} $ и т.д.)

Здесь имеет место неоднозначность математической терминологии:
простой корень — не обязательно простое число!

П

Пример. Найти линейное представление полинома

$$ f(x)=x^{6}-2, x^3+1 , .$$

Решение. Линейное представление легко получить если сначала заметить, что $ f(x)equiv (x^3-1)^{2} $, а затем использовать
выражения для корней кубических из единицы:
$$f(x)equiv (x-1)^2 left(x- frac{-1+ mathbf i sqrt{3}}{2} right)^2
left(x- frac{-1 — mathbf i sqrt{3}}{2} right)^2
.
$$
Все корни полинома имеют вторую кратность.


§

Выведение условия наличия кратного корня (в терминах коэффициентов полинома)



ЗДЕСЬ. При известном корне, нахождение его кратности



ЗДЕСЬ.

Т

Теорема. Два полинома, степени которых
не превосходят
$ n_{} $, равны тождественно если они имеют равные значения более
чем при
$ n_{} $ различных значениях переменной.

Доказательство необходимости очевидно. Если полиномы $ f_{}(x) $ и $ g_{}(x) $ удовлетворяют условию теоремы, то полином $ f(x)-g_{}(x) $ должен иметь более,
чем $ n_{} $ корней, что, ввиду основной теоремы высшей алгебры, возможно лишь если он тождественно
нулевой.


Теорема утверждает, что полином $ f_{}(x) $ степени,
$ le n_{} $, однозначно определяется своими значениями при более чем $ n_{} $
различных значениях переменной. Можно ли эти значения задавать произвольно?
Оказывается задание $ (n+1)_{} $-й пары $ (x_{1},y_1),dots,(x_{n+1},y_{n+1}) $
при всех различных $ x_{1},dots,x_{n+1} $ позволяет однозначно определить
полином $ f_{}(x) $ такой, что $ f(x_{1})=y_1,dots,f(x_{n+1})=y_{n+1} $ и
$ deg f_{} le n $. Практические способы решения этой задачи обсуждаются в разделе



Интерполяция

Раздел находится



ЗДЕСЬ.

Корни и коэффициенты полинома

Симметрические функции корней

Разложение полинома $ f_{}(x) $ на линейные множители дает интересные
соотношения между корнями полинома и его коэффициентами. Сначала выведем их
для малых степеней. Для $ n_{}=2 $:
$$a_0x^2+a_1x+a_2equiv a_0(x-lambda_1)(x-lambda_2)equiv
a_0x^2-a_0(lambda_1+lambda_2)x+a_0lambda_1lambda_2
Rightarrow
$$
$$
Rightarrow
left{ begin{array}{ccr}
lambda_1+lambda_2&=&-a_1/a_0, \
lambda_1lambda_2&=&a_2/a_0,
end{array}
right.
$$
т.е. получили формулы известные из школьного курса алгебры. Далее, для $ n_{}=3 $:
$$a_0x^3+a_1x^2+a_2x+a_3equiv a_0(x-lambda_1)(x-lambda_2)(x-lambda_3)equiv $$
$$equiv
a_0x^3-a_0(lambda_1+lambda_2+lambda_3)x^2+a_0(lambda_1lambda_2
+ lambda_1lambda_3+lambda_2lambda_3)x-a_0lambda_1lambda_2lambda_3
Rightarrow
$$
$$
Rightarrow
left{ begin{array}{ccr}
lambda_1+lambda_2+lambda_3&=&-a_1/a_0, \
lambda_1lambda_2+lambda_1lambda_3+lambda_2lambda_3&=&a_2/a_0,\
lambda_1lambda_2lambda_3&=&-a_3/a_0.
end{array}
right.
$$

Т

Теорема. Для корней $ lambda_{1},dots,lambda_n $ полинома

$$ f(x)=a_{0}x^n+a_1x^{n-1}+dots+a_n,, a_0ne 0 $$
справедливы формулы Виета
$$
sum_{1 le jle n} lambda_j = lambda_1+ dots+ lambda_n= -frac{a_1}{a_0},
$$
$$
sum_{1le j_1<j_2le n} lambda_{j_1} lambda_{j_2}= lambda_1 lambda_2 +
lambda_1 lambda_3 +dots + lambda_2 lambda_3
+ dots+ lambda_{n-1}lambda_n= frac{a_2}{a_0},
$$
$$
sum_{1le j_1<j_2<j_3le n} lambda_{j_1} lambda_{j_2} lambda_{j_3}=
lambda_1 lambda_2 lambda_3+ lambda_1 lambda_2 lambda_4 + dots+
lambda_{n-2} lambda_{n-1} lambda_n = -frac{a_3}{a_0},
$$
$$
dots
$$
$$
lambda_{1} lambda_{2}times dots timeslambda_{n-1}
+ lambda_{1} lambda_{2} times dots times lambda_{n-2} lambda_n
+ dots + lambda_{2} lambda_{3}times dots times lambda_n
= (-1)^{n-1} frac{a_{n-1}}{a_0},
$$
$$ lambda_{1} lambda_{2}times dots times lambda_{n}= (-1)^{n} frac{a_{n}}{a_0} .$$
Здесь в левой части $ k_{} $-й формулы стоит сумма всевозможных
произведений из
$ k_{} $ чисел, выбранных из $ lambda_{1},dots,lambda_n $ (корни учитываются в
соответствии с их кратностями); в правой части формулы стоит
$ (-1)^ka_{k}/a_0 $.

Доказательство



ЗДЕСЬ.

И

Биографические заметки о Виете



ЗДЕСЬ

П

Пример. Найти все корни полинома $ 3,x^3-16,x^2+23,x-6 $,
если известно, что произведение двух из них равно $ 1_{} $.

Решение. Имеем:
$$
left{ begin{array}{ccl}
lambda_1+lambda_2+lambda_3&=&16/3, \
lambda_1lambda_2+lambda_1lambda_3+lambda_2lambda_3
&=&23/3,\
lambda_1lambda_2lambda_3&=&6/3=2.
end{array}
right.
$$
Вдобавок к этим уравнениям, мы должны записать дополнительное условие:
$$lambda_1 lambda_2=1 .$$
Из третьего уравнения системы получаем тогда $ lambda_3=2 $. Подставив его
в два оставшихся, придем к двум идентичным:
$$lambda_1 + lambda_2=10/3 .$$
Теперь для нахождения неизвестных $ lambda_{1} $ и $ lambda_{2} $ можем воспользоваться
формулами Виета «в обратном порядке», составив квадратный полином,
имеющий их корнями:
$$t^2-10/3,t+1 .$$

Ответ. $ 2,,3,, 1/3 $.

?

Можно ли использовать формулы Виета для решения уравнения ?

Ответ



ЗДЕСЬ.

Обдумаем еще раз результаты основной теоремы высшей алгебры и формул Виета. С одной
стороны, задав коэффициенты $ a_{0},a_1,dots,a_n $ мы однозначно определяем
набор из $ n_{} $ комплексных чисел $ lambda_{1},dots,lambda_n $ — корней этого
полинома. С другой стороны, задав произвольным образом набор корней
$ lambda_{1},dots,lambda_n $, по формулам Виета однозначно определим
величины $ a_1/a_0,dots,a_n/a_0 $. Для простоты, рассмотрим подмножество
полиномов степени $ n_{} $, имеющих старший коэффициент равным $ 1_{} $. Получаем
тогда взаимно-однозначное соответствие:
$$ (a_1,dots,a_n) leftrightarrow (lambda_1,dots,lambda_n) . $$
Итак, каждый корень $ lambda_{j} $ полинома является какой-то функцией его
коэффициентов $ a_1,dots,a_{n} $, т.е. формально говоря, функцией от многих
переменных. Относительно этой функции мы пока ничего сказать не можем; более того, как мы узнаем НИЖЕ, для степеней полинома бóльших $ 4_{} $ не существует
«хороших» общих формул, выражающих корни полинома через его
коэффициенты. Несмотря на это, формулы Виета подтверждают, что
некоторые комбинации этих неизвестных нам функций оказываются равными
коэффициентам полинома. Какова основная отличительная особенность этих
комбинаций?

Функция $ Phi(x_1,dots,x_n) $ называется симметрической функцией своих переменных, если ее значение не меняется ни при какой перестановке этих переменных:
$$Phi(x_1,dots,x_n) equiv Phi(x_{j_1},dots,x_{j_n}) $$
при всех различных $ j_1,dots, j_n in {1,dots,n} $.

П

Пример. Функции

$$ sqrt{1+x_1x_2x_3} , frac{x_1x_2}{x_3}+frac{x_1x_3}{x_2}+frac{x_2x_3}{x_1} $$
являются симметрическими функциями переменных $ x_1,x_2,x_3 $, а функция
$$ x_1^2x_2x_3+x_1x_2^2x_3 $$
симметрической функцией не является, поскольку ее значения меняются при перестанове $ (x_1,x_2,x_3) leftrightarrow (x_3,x_2,x_1) $.

В левых частях формул Виета как раз и стоят симметрические полиномы
относительно $ lambda_{1},dots,lambda_n $. Оказывается результат теоремы
допускает следующее обобщение.

Т

Теорема [Гаусс]. Значение любого симметрического полинома
$ Phi(x_1,dots,x_n) $ на корнях $ lambda_1,dots,lambda_n $ полинома
$ x^n+a_1x^{n-1}+ dots+a_n $ является полиномиальной функцией от $ a_{1},dots,a_n $:
$$
Phi(lambda_1,dots,lambda_n) equiv {mathfrak F}(a_1,dots,a_n) .
$$

П

Пример. Пусть $ lambda_{1} $ и $ lambda_{2} $
означают корни полинома $ x^2+a_1x+a_2 $.
Выразить

$$lambda_1^2+lambda_2^2-3,lambda_1^2lambda_2-3,lambda_1lambda_2^2$$
через коэффициенты полинома.

Решение. Поскольку выражения для корней квадратного уравнения нам известны:
$$
lambda_1= frac{-a_1+sqrt{a_1^2-4,a_2}}{2} quad u quad
lambda_2= frac{-a_1-sqrt{a_1^2-4,a_2}}{2} ,
$$
то непосредственной подстановкой их в заданный полином, получаем
$$ a_1^2-2,a_2+3,a_1a_2 . $$



П

Пример. Пусть $ lambda_1,, lambda_2,, lambda_3 $
означают корни полинома $ x^3+a_1x^2+a_2x+a_3 $.
Выразить

$$lambda_1^2lambda_2+lambda_1^2lambda_3+lambda_1lambda_2^2+
lambda_1lambda_3^2+lambda_2^2lambda_3+lambda_2lambda_3^2
-lambda_1^2-lambda_2^2-lambda_3^2
$$
через коэффициенты полинома.

Решение. Выделим в требуемом выражении комбинации
корней, стоящие в левых частях формул Виета.
Первые $ 6_{} $ слагаемых можно представить в виде
$$(lambda_1lambda_2+lambda_1lambda_3+lambda_2lambda_3)
(lambda_1+lambda_2+lambda_3)-3lambda_1lambda_2lambda_3 , $$
а
$$lambda_1^2+lambda_2^2+lambda_3^2=
left(lambda_1+lambda_2+lambda_3 right)^2-2, (lambda_1lambda_2+
lambda_1lambda_3+lambda_2lambda_3) .$$
Далее применяем формулы Виета.

Ответ. $ 3,a_3-a_1a_2-a_1^2+2, a_2 $.

Существуют общие алгоритмы нахождения полинома $ {mathfrak F} $ по заданному полиному $ Phi $: см.
[3], [4]. Однако в своей практике я встречал необходимость в подобном представлении лишь для некоторых классов полиномов $ Phi_{} $; сейчас их и рассмотрим.

Суммы Ньютона

Для полинома $ f(x)=a_{0}x^n+a_1x^{n-1}+dots+a_n, (a_0ne 0) $ его $ k_{} $-й суммой Ньютона называется сумма $ k_{} $-х степеней его корней:
$$
s_k=lambda_1^k + dots + lambda_n^k .
$$
При этом обычно считают $ k_{} in {mathbb N} $ (хотя формально можно определить суммы Ньютона и для отрицательных индексов $ k_{} $ при условии $ a_{n} ne 0 $). Для однообразия полагают также $ s_{0}=n $.

T

Теорема. Суммы Ньютона выражаются рационально через коэффициенты полинома $ f_{}(x) $ посредством следующих рекуррентных формул Ньютона:

$$s_0=n, s_1=-a_1/a_0, $$
$$
s_k=left{begin{array}{lr}
-(a_1s_{k-1}+a_2s_{k-2}+dots+a_{k-1}s_1+a_kk)/a_0,
&npu kle n ;\
-(a_1s_{k-1}+a_2s_{k-2}+dots+a_ns_{k-n})/a_0
& npu k > n.
end{array}
right.
$$

П

Пример.

$$
s_2=(a_1^2-2, a_0a_2) big/ a_0^2 ,
$$
$$
s_3=-(a_1s_2+a_2s_1+3,a_3)big/ a_0=
$$
$$
=-left(a_1 (a_1^2-2, a_0a_2) big/ a_0^2 +a_2 (-a_1 big/ a_0)+3,a_3 right)
big/ a_0=
$$
$$
=left(-a_1^3+3,a_0a_1a_2-3,a_0^2a_3 right) big/ a_0^3 .
$$



§

Подробнее о суммах Ньютона



ЗДЕСЬ.

Результант и дискриминант

Пусть $ g(x)=b_0x^m+dots + b_{m} $ — произвольный полином из $ mathbb A_{} [x] $. Тогда выражение
$$ g(lambda_1) times dots times g(lambda_n) $$
является симметрическим полиномом от корней $ lambda_{1},dots,lambda_n $ полинома $ f_{}(x) $.
По теореме Гаусса, оно должно рационально выражаться через коэффициенты $ a_{0},dots,a_n $. С другой стороны, очевидно, это выражение обращается в нуль тогда и только тогда, когда хотя бы один сомножитель обратится в нуль, т.е. будет существовать общий корень полиномов $ f_{}(x) $ и $ g_{}(x) $. Выражение
$$ a_0^m prod_{j=1}^n g(lambda_j) $$
называется результантом полиномов $ f_{}(x) $ и $ g_{}(x) $.

§

Способы вычисления результанта, его свойства и применения



ЗДЕСЬ.

В частном случае, когда $ g_{}(x) $ совпадает с производной полинома $ f_{}(x) $ результант переходит в дискриминант — выражение отличающееся от
$$ a_0^{n-1} prod_{j=1}^n f^{prime}(lambda_j) $$
только сомножителем $ (-1)^{n(n-1)/2}/a_0 $ и
обращающееся в нуль тогда и только тогда, когда $ f^{prime}(x) $ имеет общий корень с $ f_{}(x) $.
Как мы увидим НИЖЕ, последнее условие оказывается необходимым и достаточным наличия у полинома $ f_{}(x) $ кратного корня.

П

Пример. Для $ f(x)=a_{0}x^2+a_1x+a_2 $ указанное произведение оказывается равным

$$ (2a_0lambda_1 +a_1)(2a_0lambda_2 +a_1)=(4a_0^2lambda_1 lambda_2+2a_0a_1(lambda_1 +lambda_2)+a_1^2)=
$$
$$
=left(4a_0^2 frac{a_2}{a_0}-2a_0a_1frac{a_1}{a_0}+a_1^2right)=4a_0a_2-a_1^2,
$$
т.е. привычному «школьному» понятию.

§

Способы вычисления дискриминанта, его свойства и применения



ЗДЕСЬ.

Преобразования корней

Если $ lambda_{1},dots,lambda_n $ — корни полинома $ f(x)=a_0x^n+a_1x^{n-1}+dots+a_{n} $, то


1.

корнями полинома
$$ f(-x)=(-1)^nleft(a_0x^n-a_1x^{n-1}+dots+(-1)^na_nright) = $$
$$ =(-1)^n sum_{j=0}^n (-1)^ja_jx^{n-j} $$
являются $ -lambda_1, dots, -lambda_n $;


2.

корнями полинома
$$f(x- {color{Red} alpha })=a_0(x-{color{Red} alpha } )^n+a_1(x-{color{Red} alpha })^{n-1}+dots+a_n=
$$
$$
= sum_{j=0}^n a_j(x-{color{Red} alpha })^{n-j}
$$
являются $ {color{Red} alpha }+lambda_1, dots, {color{Red} alpha }+lambda_n $;


3.

при дополнительном условии, что $ a_{n} ne 0 $, корнями полинома
$$f^{ast}(x)= x^nfleft(1/x right) equiv a_0+a_1x+dots+a_nx^n =
$$
$$
=sum_{j=0}^n a_jx^{j}
$$
являются $ 1/{lambda_1}, dots, 1/{lambda_n} $.

Преобразования

1-3

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

Поясним идею этих применений. Корни исходного и корни преобразованного полинома остаются неизвестными. Допустим, мы получили какой-то результат, касающийся оценки положительных корней полинома $ f_{}(x) in mathbb R[x] $, и хотим распространить эту оценку и на отрицательные корни (см., к примеру,



НИЖЕ ). Производится замена переменной $ x rightarrow — x $, которая меняет знаки всех корней: отрицательные становятся положительными, и к новому полиному применяется полученный результат. В приложениях возникают и более сложные преобразования корней: когда, к примеру, все их надо «загнать» в ограниченную область комплексной плоскости — скажем, в круг $ |x|le 1 $ (см.



НИЖЕ ).

П

Пример. Построить полином $ F_{}(x) $, корни которого равны квадратам корней полинома $ f_{}(x) $.

Решение. Составим выражение
$$
f(sqrt{x})f(-sqrt{x}) .
$$
С одной стороны, используя линейное представление полинома $ f_{}(x) $ получим
$$
f(sqrt{x})f(-sqrt{x})=(-1)^n a_0^2(x-lambda_1^2)times dots times (x-lambda_n^2) ,
$$
т.е. полином с требуемыми корнями. С другой стороны, мы можем найти выражения для коэффициентов этого полинома:
$$
begin{matrix}
f(sqrt{x})&equiv & a_n+a_{n-1} sqrt{x} +a_{n-2} x + a_{n-3} x sqrt{x}+dots equiv \
& equiv & (a_n+a_{n-2} x +a_{n-4} x^2 +dots ) + sqrt{x} (a_{n-1}+ a_{n-3} x + a_{n-5} x^2+ dots ) ;\
f(-sqrt{x})&equiv & (a_n+a_{n-2} x +a_{n-4} x^2 +dots ) — sqrt{x} (a_{n-1}+ a_{n-3} x + a_{n-5} x^2+ dots ) .
end{matrix}
$$
В результате, искомый полином представляется в виде
$$
F(x)=(a_n+a_{n-2} x +a_{n-4} x^2 +dots )^2-x(a_{n-1}+ a_{n-3} x + a_{n-5} x^2+ dots )^2 .
$$
Это преобразование иногда называется квадрированием корней полинома $ f_{}(x) $; оно применяется в методе Греффе-Лобачевского вычисления корней полинома.


Общий метод построения полинома $ F_{}(x) $ , корни которого связаны с корнями $ f_{}(x) $ соотношением вида $ Lambda_j = g(lambda_j) $ при $ g_{}(x) $ — произвольном полиноме



ЗДЕСЬ.

Непрерывность корней

Т

Теорема [5]. Корни полинома

$$ f(x)=x^n+a_1x^{n-1}+dots+a_n in mathbb C[x],quad nge 1 $$
являются непрерывными функциями его коэффициентов. Строго говоря,
если
$ lambda_1,dots,lambda_{n} $ — корни этого полинома,
а
$ {tilde lambda_1},dots,{tilde lambda_n} $ — корни полинома
$${tilde f}(x)=x^n+{tilde a}_1x^{n-1}+dots+{tilde a}_n in mathbb C[x]
,
$$
то эти корни можно перенумеровать таким образом, чтобы
$$ |lambda_j-{tilde lambda}_j| < 2n varepsilon quad npu quad jin{1,dots,n} . $$
Здесь
$$varepsilon= sqrt[n]{sum_{k=1}^n|a_k-{tilde a}_k| gamma^{n-k} } quad
npu quad gamma = max_{jin {1,dots,n}}
left( sqrt[j]{|a_j|} ,
sqrt[j]{|{tilde a}_j|} right) . $$

П

Пример. Для полинома

$$ f(x)=192,x^5+[(259-173{mathbf i}){color{Red} alpha }+211-413{mathbf i}]x^4 +
$$
$$
+[(80-320{mathbf i}){color{Red} alpha }-304-704{mathbf i}]x^3
+384{mathbf i},x^2-192-192,{mathbf i}
$$
исследовать динамику корней при изменении значений параметра $ {color{Red} alpha }_{} $ от $ -2_{} $ до $ 3_{} $.

Решение. На рисунке

показаны следы, «заметаемые» корнями на комплексной плоскости. Направления движений указаны стрелками.
Сначала посмотрим на начало процесса. При $ {color{Red} alpha }=-2 $ полином имеет следующие
корни:
$$ lambda_1approx-1.0726-0.5122 {mathbf i}, lambda_{2}approx -0.7337+0.1972{mathbf i},
lambda_{3}approx 0.3557+0.9054 {mathbf i},
$$
$$
lambda_4 approx 0.5028-0.3812 {mathbf i}, lambda_5 approx 2.5467+0.1398 {mathbf i} .
$$
Эти стартовые точки отмечены отрезками

|
|
|
|
|

. При увеличении значений $ {color{Red} alpha }_{} $ от $ -2 $ до $ -1_{} $ происходит «дрейф» корней — плавный, но разный по скорости. К примеру, синий и фиолетовый корни меняются очень медленно, а вот зеленый и малиновый быстро сближаются пока не столкнутся при значении $ {color{Red} alpha }=-1 $:
$$ lambda_1approx -1.5096-0.4133 {mathbf i}, lambda_2 approx -0.6768+0.1479 {mathbf i},
lambda_3 approx 0.4364-0.4845 {mathbf i}, lambda_4 = 1+ {mathbf i},
$$
$$
lambda_5 =1+ {mathbf i} .
$$
Что происходит при дальнейшем увеличении $ {color{Red} alpha }_{} $? Число корней должно остаться инвариантным — по основной теореме высшей алгебры оно продолжает совпадать со степенью полинома, т.е. корни не
аннигилируют. Поэтому столкнувшиеся корни порождают два новых — голубой и коричневый — которые начинают расходиться. При $ {color{Red} alpha }=1 $ ситуация следующая:
$$
lambda_1 approx -2.3350+0.4836 {mathbf i}, lambda_2 approx -0.5794+0.1185{mathbf i}, lambda_3 approx 0.2721-0.4926 {mathbf i},
$$
$$
lambda_4 approx -0.3888+2.5945 {mathbf i},
lambda_5 approx 0.5832+0.3480 {mathbf i} .
$$
Имея перед глазами полную картину истории, понимаем, что корни, обозначенные $ lambda_{1} $ (красный) и $ lambda_{4} $ (голубой), стремятся к столкновению — и оно действительно происходит при $ {color{Red} alpha }=2 $:
$$ lambda_1 = -2+2{mathbf i}, lambda_2 approx -0.5458+0.1142 {mathbf i}, lambda_3 approx 0.2296-0.4712 {mathbf i}, lambda_4 = -2+2{mathbf i},
$$
$$
lambda_5 approx 0.5193+0.3101 {mathbf i} .
$$
Дальнейшую динамику можем предсказать «по прецеденту» — столкнувшиеся корни должны разойтись. При $ {color{Red} alpha }=3_{} $:
$$
lambda_1 approx -4.0682+3.6140 {mathbf i}, lambda_2 approx -0.5184+0.1116 {mathbf i},
lambda_3 approx 0.2007-0.4506{mathbf i},
$$
$$
lambda_4 approx -1.2359+1.2927{mathbf i},
lambda_5 approx 0.4759+0.2864{mathbf i} .
$$



?

К какому числу стремится желтый корень при $ {color{Red} alpha } to +infty $ ?

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

Т

Теорема. Корни полинома

$$ f(x)=x^n+a_1x^{n-1}+dots+a_n in mathbb C[x] $$
являются непрерывно дифференцируемыми функциями коэффициентов за исключением тех наборов значений коэффициентов, которые определяют кратные корни.

Доказательство



ЗДЕСЬ.

§

Условие наличия кратного корня у полинома $ f_{}(x) $ может быть получено в виде явного условия на его коэффициенты. См.



ДИСКРИМИНАНТ.

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



ЧУВСТВИТЕЛЬНОСТЬ КОРНЕЙ.

Поиск корней алгебраических уравнений: решение в радикалах

Можно ли выразить корни полинома $ f(x)in mathbb C[x] $ в виде «хороших» функций от его коэффициентов? Вспомним, что для квадратного уравнения
существует общая формула вычисления корней:
$$x^2+ax+b=0 Rightarrow lambda_{1,2}=frac{-apm sqrt{a^2-4b}}{2}
.
$$
Эта формула включает в себя элементарные алгебраические операции
$ +,- ,times, div $ и операцию извлечения квадратного корня. По аналогии
можно сформулировать и общую задачу.

Задача. Найти выражения корней полинома степени $ n_{}>2 $ в виде функций его коэффициентов; при этом функции должны представлять конечную комбинацию элементарных алгебраических
операций и операций извлечения корней произвольных (целых) степеней.

Поставленная задача называется задачей о разрешимости уравнения в радикалах6).

Оказывается, что любое уравнение третьей или четвертой степени разрешимо в радикалах. Перед тем, как изложить способы их решения, сделаем два упрощения. Первое из них заключается в том, что уравнение $ f_{}(x)=0 $ делится на старший коэффициент полинома $ f_{}(x) $.

Полином называется нормализованным7), если его старший коэффициент равен $ 1_{} $. Операция деления полинома на его старший коэффициент называется нормализацией полинома.

Очевидно, что нормализованный полином имеет те же корни, и в тех же кратностях, что и
исходный. Для простоты обозначений, будем считать, что полином уже
нормализован:
$$ f(x)=x^n+a_1x^{n-1}+dots+a_n .$$

Второе упрощение заключается в замене переменной (подстановке): $ x=y+{color{Red} alpha } $.
Ее результатом будет новый полином той же степени, что и исходный, относительно
переменной $ y_{} $:
$$ F(y)equiv f(y+{color{Red} alpha }) , . $$
Корни нового полинома связаны (cм. преобразование

2




ЗДЕСЬ ) с корнями старого
по формуле $ lambda_j = Lambda_j+{color{Red} alpha } $; так что, найдя корни одного полинома,
легко установим и корни другого. Подберем теперь параметр $ {color{Red} alpha } $ так,
чтобы обратить в нуль коэффициент при $ y^{n-1} $ в полиноме $ F_{}(y) $.
Используя формулу бинома Ньютона, получаем
$$
begin{matrix}
f(x)&=&x^n+a_1x^{n-1}+a_2x^{n-2}+dots+a_n= \
&=&(y+{color{Red} alpha })^n +a_1(y+{color{Red} alpha })^{n-1}+a_2(y+{color{Red} alpha })^{n-2}+dots+a_n = \
&=&y^n + C_n^1 {color{Red} alpha } y^{n-1} +C_n^2 {color{Red} alpha }^2 y^{n-2}+dots+
{color{Red} alpha }^n + \
& & qquad + a_1y^{n-1}+a_1 C_{n-1}^1 {color{Red} alpha } y^{n-2}+dots
+a_1{color{Red} alpha }^{n-1} + \
& & quad qquad qquad +a_2y^{n-2} + dots + a_n.
end{matrix}
$$
Понятно, что если положить $ {color{Red} alpha }= — a_1/n $, то коэффициент при $ y^{n-1} $
исчезнет. Для простоты обозначений, будем считать, что полином уже
предварительно подвергнут такому преобразованию:
$$ f(x)=x^n qquad +a_2x^{n-2}+dots+a_n .$$

Уравнение третьей степени

Рассмотрим уравнение третьей степени:
$$
x^3+p,x+q=0
$$
Сделаем в этом уравнении замену переменной: $ x=u+v $, введя две неизвестные
$ u_{} $ и $ v_{} $; получим:
$$
u^3+v^3+3,uv(u+v)+p(u+v)+q=0 .
$$
Сгруппируем:
$$
u^3+v^3+(3,uv+p)(u+v)+q=0 .
$$
Подчиним теперь неизвестные $ u_{} $ и $ v_{} $ условию
$$
3,uv+p=0 iff uv=-frac{p}{3} .
$$
Тогда предыдущее уравнение приведется к виду
$$u^3+v^3=-q . $$
Итак, для определения неизвестных величин $ u_{} $ и $ v_{} $ мы получили систему
уравнений
$$
u^3+v^3=-q,
uv=-frac{p}{3} .
$$
Возведя последнее уравнение в куб, получим
$$
u^3v^3=-frac{p^3}{27} .
$$
Два полученных равенства, связывающие $ u^3 $ и $ v^3 $,
позволяет утверждать, что эти величины являются решениями квадратного
уравнения:
$$t^2+q,t- frac{p^3}{27}=0 .$$

Выражение
$$
Delta = frac{q^2}{4}+frac{p^3}{27}
$$
называется дискриминантом кубического уравнения.

Решив квадратное уравнение, получим:
$$
u^3=-frac{q}{2}+ sqrt{Delta}, v^3=-frac{q}{2}- sqrt{Delta} .
$$
В итоге имеем формулу для решений уравнения:
$$
x=u+v=sqrt[3]{-frac{q}{2}+sqrt{frac{q^2}{4}+frac{p^3}{27}}}+
sqrt[3]{-frac{q}{2}-sqrt{frac{q^2}{4}+frac{p^3}{27}}} ;
$$
она называется формулой Кардано.

Формула Кардано не очень удобна для практических вычислений.
Вспомним, что корень кубический из комплексного числа может принимать три различных значения.
Решение же, представленное формулой Кардано, имеет в правой части
комбинацию из двух кубических корней. Таким образом, получаем
9 всевозможных комбинаций из значений корней кубических. С другой стороны, основная теорема высшей алгебры утверждает, что кубическое уравнение должно иметь только
три решения. Для того, чтобы установить соответствие между значениями $ u_{} $
и $ v_{} $, обратимся к условию $ uv=-p/3 $ . Согласно этому условию, задание
значений для $ u_{} $ позволит однозначно восстановить $ v_{} $. Пусть
$$
u_1=sqrt[3]{-frac{q}{2}+sqrt{frac{q^2}{4}+frac{p^3}{27}}}
$$
какое-то одно из трех возможных значений корня кубического. Два оставшихся значения корня кубического получаются домножением $ u_1 $ на корни кубические из единицы:
$$u_2=u_1varepsilon_1, u_3=u_1varepsilon_2 $$
при
$$varepsilon_1=cos frac{2pi}{3} + {mathbf i} sin frac{2pi}{3}=
frac{-1}{2}+
{mathbf i} frac{sqrt{3}}{2} u
varepsilon_2=cos frac{4pi}{3} + {mathbf i} sin frac{4pi}{3}=
frac{-1}{2}-
{mathbf i} frac{ sqrt{3}}{ 2}
.
$$
Если теперь взять
$$
v_1=-frac{p}{3u_1} ,
$$
то решения кубического уравнения можно выразить в виде комбинаций
$ u_1 $ и $ v_1 $:
$$
begin{array}{ccl}
lambda_1&=&u_1+v_1, \
lambda_2&=&u_2+v_2=u_2-frac{displaystyle p}{displaystyle 3u_2}=u_1varepsilon_1-frac{displaystyle p}{displaystyle 3u_1varepsilon_1}
=u_1varepsilon_1-frac{displaystyle pvarepsilon_2}{displaystyle 3u_1}=u_1varepsilon_1+v_1varepsilon_2,\
lambda_3&=&u_3+v_3=u_1varepsilon_2+v_1varepsilon_1 .
end{array}
$$
Окончательно получаем формулы для вычисления корней:
$$
left{
begin{array}{lcl}
lambda_1&=&u_1+v_1, \
lambda_2&=&-frac{scriptstyle 1}{scriptstyle 2}(u_1+v_1)
+{mathbf i} frac{scriptstyle sqrt{3}}{scriptstyle 2} (u_1-v_1),\
lambda_3&=&-frac{scriptstyle 1}{scriptstyle 2}(u_1+v_1)
-{mathbf i} frac{scriptstyle sqrt{3}}{scriptstyle 2} (u_1-v_1),
end{array} right.
$$
где $ u_1 $ — одно из значений корня кубического, а $ v_1 $ связано с ним
соотношением $ v_1=-p/(3u_1) $.

П

Пример [2]. Решить уравнение $ x^3-6{mathbf i},x^2-10,x+8 {mathbf i}=0 $.

Решение. Подстановка $ x=y+2 {mathbf i} $ приводит уравнение к виду
$$y^3+2,y+4{mathbf i} =0 , $$
т.е. $ p=2,,q=4 {mathbf i} $. Далее
$$Delta=-frac{100}{27} Rightarrow sqrt{Delta} = pm frac{10 {mathbf i}}{3sqrt{3}}
Rightarrow u_1=sqrt[3]{left(-2 + frac{10}{3sqrt{3}} right){mathbf i}}
.
$$
Одно из значений последнего корня:
$$u_1=-{mathbf i}, sqrt[3]{-2 + frac{10}{3sqrt{3}}} , $$
это выражение можно упростить, если повезет заметить, что подкоренное выражение
равно $ left(-1+1/{sqrt{3}}right)^3 $:
$$u_1={mathbf i}left(1-frac{1}{sqrt{3}}right) Rightarrow
v_1=-frac{p}{3u_1}= {mathbf i} left(1+frac{1}{sqrt{3}}right) .
$$
Получаем:
$$mu_1=2, {mathbf i} , mu_2=1- {mathbf i}, mu_3=-1- {mathbf i} .$$
Значения корней исходного уравнения получатся «сдвигом» на
$ 2 {mathbf i} $.

Ответ. $ 4{mathbf i},, 1 + {mathbf i},, -1+ {mathbf i} $.

§

Дальнейший анализ формулы Кардано



ЗДЕСЬ

Уравнение четвертой степени

$$ x^4+a_1x^3+a_2x^2+a_3x+a_4 = 0 $$
также может быть решено в радикалах. Идея решения заключается в сведении задачи к решению некоторого кубического уравнения. Ее реализация



ЗДЕСЬ.

Уравнения высших степеней

Успех в решении уравнений третьей и четвертой степени побудил
исследователей искать подобные формулы для уравнений высших степеней.
Методология подхода была очевидна: свести решение уравнения $ n $-й
степени к решению уравнения $ (n-1) $-й степени. Однако, несмотря на почти трехвековые усилия лучших математиков, решить уравнение пятой степени не удавалось. Наконец, в начале
XIX века был получен отрицательный результат.

Т

Теорема [Руффини, Абель]. Уравнение степени выше четвертой в общем
случае неразрешимо в радикалах.

П

Пример. Уравнение $ x^5-4, x -2=0 $ не разрешимо в радикалах.

Установить разрешимо или нет данное конкретное уравнение в радикалах возможно с помощью теории, развитой французским математиком Галуа.

П

Пример. Уравнение $ x^5+x+1=0 $ разрешимо в радикалах, поскольку

$$ x ^5+x+1equiv (x^2+x+1)(x^3-x^2+1) , .$$

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



ЗДЕСЬ ). Наконец, для практических задач часто более важна не столько «красивая»
аналитическая формула для корня, сколько приближенное его значение с требуемой точностью.

Поиск корней алгебраических уравнений: возможность упрощений

Для некоторых классов уравнений удается упростить задачу: свести решение исходного уравнения к решению уравнения меньшей степени 8) .

Возвратное уравнение

Так называется уравнение вида
$ a_0z^n+a_1z^{n-1}+dots+a_{n-1}z+a_n=0, a_0ne 0 $, у которого набор коэффициентов
$ (a_0,a_1,dots, a_{n-1},a_n) $ симметричен относительно
середины:
$$ a_0=a_{n},a_1=a_{n-1},dots, a_{j}=a_{n-j} dots $$

П

Пример. Уравнения

$$ z^2-3,z+1=0,quad -sqrt{2}z^5+2,z^4+mathbf i z^3+2,z-sqrt{2},quad z^n+1=0 , $$ $$ z^n+z^{n-1}+z^{n-2}+dots + z^2 +z+1=0 $$
являются возвратными.

§

Методы упрощения подобных уравнений



ЗДЕСЬ.

Делимость полиномов

Здесь $ mathbb A_{} $ означает какое-то из множеств $ mathbb Q, mathbb R $ или $ mathbb C_{} $.

Т

Теорема. Для полиномов $ f_{}(x) $ и $ g(x)not equiv 0 $ из $ mathbb A[x] $
существует единственная пара полиномов $ q_{}(x) $ и $ r_{}(x) $ из
$ mathbb A[x] $ таких, что

$$
f(x) equiv g(x) q(x) + r(x) quad mbox{ и } quad
deg r < deg g .
$$

Доказательство



ЗДЕСЬ.

В этом представлении полином $ f_{}(x) $ называется делимым, $ g_{}(x) $ — делителем,
$ r_{}(x) $ — остатком от деления $ f_{}(x) $ на $ g_{}(x) $, а $ q_{}(x) $ —
частным9).
При $ r(x) equiv 0 $, говорят, что полином $ f_{}(x) $ делится (нацело)
на $ g_{}(x) $, а полином $ g_{}(x) $ называется делителем $ f_{}(x) $. Тривиальными делителями полинома $ f_{}(x) $ называют сам полином $ f_{}(x) $ и полином тождественно равный $ 1_{} $ (оба — с точностью до домножения на ненулевую константу). Любой другой делитель полинома (если существует) называется нетривиальным.

П

Пример [1]. Найти частное и остаток от деления

$$f(x)=2, x^5 +x^4 -x^2 +2, x +1 quad mbox{ на } quad
g(x)=x^3+2, x^2 — x -1 .$$

Решение.
$$
begin{array}{rrrrrrr|l}
2,x^5&+ x^4 &+0x^3 &-x^2 &+2x &+1 && x^3+2,x^2-x-1\
2,x^{5}&+4 x^4&-2,x^3&-2x^2&& && overline{ 2,x^2 -3, x +8 quad } \
hline
&-3,x^4&+2,x^3&+x^2&+2,x& \
&-3,x^{4}&-6,x^3&+3,x^2&+3,x& \
hline
&&8,x^{3}&-2,x^2&-x&+1 \
&&8,x^{3}&+16,x^2&-8,x&-8 \
hline
&&& -18x^{2}&+7,x&+9
end{array}
$$

Ответ. $ q(x)=2, x^2 -3, x + 8, r(x)=-18, x^2 + 7, x +9 $.

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

П

Пример. Найти частное и остаток от деления

$$f(x)=x^8+x^7+3,x^4-1 quad mbox{ на } quad g(x)=x^4-3, x^3 +4, x +1 .$$

Решение.
$$
begin{array}{rrrrrrrrrr|l}
1& 1 &0&0&3&0 &0 & 0&-1 &&1 -3 0 4 1\
1&-3 &0&4&1& & & & && overline{ 1 4 12 32 82} \
hline
&4 & 0 &-4 & 2 & 0 & {} \
&4 &-12& 0 & 16 & 4& {} \
hline
&& 12& -4 &-14 & -4 & 0 & {} \
&& 12& -36 & 0 & 48 & 12 & {} \
hline
&&& 32 & -14& -52&-12 & 0 & {} \
&&& 32 & -96& 0 & 128& 32 & {} \
hline
&&&&82&-52&-140&-32&-1 \
&&&&82&-246&0&328&82 \
hline
&&&&&194&-140&-360&-83
end{array}
$$

Ответ. $ q(x)=x^4+4,x^3+12,x^2+32, x+82,, r(x)=194, x^3-140, x^2-360, x -83 $.

Свойства.


1.

Если $ m le n $ при $ a_0ne 0, b_0 ne 0 $, то $ deg q(x) =n-m $ и ведущий член $ q_{}(x) $ равен $ {a_0}/{b_0}, x^{n-m} $.


2.

Если $ g(x)equiv x-c $, то коэффициенты частного $ q_{}(x) $ найдутся из схемы Хорнера.

Наибольший общий делитель

Рассмотрим множество всех общих делителей полиномов $ f_{}(x) $ и $ g_{}(x) $:
$$
mathbb D={d_1(x) in mathbb A[x] , | f(x) mbox{ делится на } d_1(x), g(x) mbox{ делится на } d_1(x) } .
$$
Наибольшим общим делителем полиномов $ f_{}(x) $ и $ g_{}(x) $ называется полином $ d_{}(x) $, который является делителем как $ f_{}(x) $, так и $ g_{}(x) $ и, вместе с тем, сам делится на любой другой общий делитель этих полиномов:
$$ operatorname{HOD} (f(x),g(x)) = d(x) iff d(x) in mathbb D
, d(x) mbox{ делится на } forall d_1(x) in mathbb D
.
$$
Рассмотрим множество всех полиномов, которые делятся и на $ f_{}(x) $ и на $ g_{}(x) $:
$$
mathbb K={k_1(x) in mathbb A[x] , | k_1(x) mbox{ делится на } f(x), k_1(x) mbox{ делится на } g(x) } .
$$
Наименьшим общим кратным полиномов $ f_{}(x) $ и $ g_{}(x) $ называется полином $ k_{}(x) $, который делится как на $ f_{}(x) $, так и на $ g_{}(x) $ и, вместе с тем, сам является делителем любого другого полинома, который делится на $ f_{}(x) $ и $ g_{}(x) $:
$$ operatorname{HOK} (f(x),g(x)) = k(x) iff k(x) in mathbb K
, forall k_1(x) in mathbb K
mbox{ делится на } k(x) .
$$
Пока открытым является вопрос существования $ operatorname{HOD} (f,g)_{} $ и $ operatorname{HOK} (f,g)_{} $. Для первого случая этот вопрос решается
конструктивно — построением $ operatorname{HOD} (f,g)_{} $ с помощью алгоритма, позаимствованного из



ТЕОРИИ ЧИСЕЛ.



Алгоритм Евклида.

Пусть $ f(x) not equiv 0 $ и $ g(x) not equiv 0 $ — полиномы из $ mathbb A_{}[x] $ . Поделим $ f_{}(x) $ на $ g_{}(x) $:
$ f(x)=g(x)q_{1}(x)+r_1(x) $, пусть остаток $ r_{1}(x) not equiv 0 $, тогда
$ 0 le deg r_{1}(x)< deg g(x) $. Поделим делитель на
этот остаток: $ g(x)=r_{1}(x)q_2(x)+r_2(x) $, предположим, что остаток
$ r_{2}(x) not equiv 0 $, тогда $ 0 le deg r_{2}(x)< deg r_1(x) $.
Снова разделим делитель на остаток и продолжим процесс далее
до тех пор, пока на каком-то шаге не произойдет деление нацело, т.е.
остаток будет тождественно равен нулю (это обязательно случится за конечное число
шагов, т.к. степени полиномов $ r_{j}(x) $ уменьшаются). Запишем процедуру в виде схемы:
$$
begin{array}{lcl}
f(x)&=&g(x)q_1(x)+r_1(x) , quad 0 le deg r_1(x)< deg g(x) , \
g(x)&=&r_1(x)q_2(x)+r_2(x) , quad 0 le deg r_2(x)< deg r_1(x), \
r_1(x)&=&r_2(x)q_3(x)+r_3(x) , quad 0 le deg r_3(x)< deg r_2(x), \
dots && dots \
r_{j-2}(x)&=&r_{j-1}(x)q_{j}(x)+r_{j}(x) , quad
0 le deg r_j(x)< deg r_{j-1}(x) , \
dots && dots \
r_{k-2}(x)&=&r_{k-1}(x)q_{k}(x)+r_{k}(x) , quad 0 le deg r_k(x)< deg r_{k-1}(x) , \
r_{k-1}(x)&=&r_{k}(x)q_{k+1}(x) .
end{array}
$$


Т

Теорема. Последний не равный нулю остаток в алгоритме Евклида совпадает с $ operatorname{HOD}(f(x),g_{}(x)) $.

Доказательство полностью аналогично доказательству соответствующего результата из теории целых чисел.


П

Пример. Вычислить

$$ operatorname{HOD} left( x^4+3, x^3 -x^2 -4, x -3, ,
3, x^3 +10, x^2 +2, x -3 right) , . $$

Решение.
$$
begin{array}{rrrrrr|l}
x^4 &+3,x^3 &-x^2 &-4,x &-3 && 3,x^3+10,x^2+2,x-3\
x^4&+10/3, x^3&+2/3, x^2&-, x &
&& overline{ 1/3 x -1/9 quad } \
hline
&-1/3,x^3&-
5/3,x^2&-3,x&-3 \
&-1/3,x^3&-10/9,x^2&
-2/9,x&{}
+1/3 \
hline
&&-5/9,,x^2&
-25/9,x&-10/3
end{array}
$$
В обозначениях алгоритма Евклида, имеем:
$$ q_{1}(x)=1/3, x -1/9, r_{1}(x)=-5/9, x^2 -25/9, x-10/3 . $$
Поскольку $ r_{1}(x) notequiv 0 $, делим $ g_{}(x) $ на этот остаток:
$$
begin{array}{rrrrr|l}
3,x^3 &+10,x^2 &+2,x &-3 && -5/9,,x^2
-25/9,x-10/3 \
3, x^3&+15, x^2&+18, x & &&,
overline{-27/5, x +9 quad } \
hline
&-5,x^2&-16,x&-3 \
&-5,x^2&-25,x&-30 \
hline
&&9,x&+27
end{array}
$$
Здесь $ q_{2}(x)=-27/5, x +9, r_2(x)=9x+27 notequiv 0 $ и алгоритм деления продолжается:
$$
begin{array}{rrrr|l}
-5/9,,x^2&
-25/9,x&
-10/3 && 9,x+27 \
-5/9,,x^2&
-5/3,x& && ,
overline{ -5/81, x
— 10/81 quad } \
hline
&-10/9,x&
-10/3 \
&-10/9,x&-10/3 \
hline
& & 0
end{array}
$$
Здесь остаток получился равным нулю, следовательно $ r_{2}(x)=operatorname{HOD}(f(x),g(x)) $.

Ответ. $ 9(x+3)_{} $.

Легко видеть, что если $ d_{}(x) = operatorname{HOD} (f(x),g(x)) $, то и $ Ccdot d(x)_{} $
также будет $ operatorname{HOD} (f(x),g(x)) $ при любой константе $ C ne 0 $. Так, в только
что решенном примере мы имели право записать ответ в виде $ operatorname{HOD}(f,g)=x+3 $
или $ operatorname{HOD} (f,g)=mathbf{i} x+3, mathbf{i} $ и т.д.
Обычно, получив какое-то представление $ d_{}(x) $ для $ operatorname{HOD} (f(x),g(x)) $,
подбирают константу $ C_{} $ так, что либо — в случае $ d(x)in mathbb{Q}[x] $ —
полином $ C_{}d(x) $ имел коэффициенты целыми:
$$ Cd(x) in mathbb{Z}[x] $$
(например, положив $ C_{} $ равным наименьшему общему кратному знаменателей коэффициентов $ d_{}(x) $ ;
либо же так, чтобы $ C_{}d(x) $ был нормализован (имел старший коэффициент равным $ 1_{} $):
$$C=1/(mbox{старший коэффициент } d(x)) .$$

Еще один способ нахождения $ operatorname{HOD} $ для полиномов из $ mathbb{C}[x] $ вытекает из основной теоремы высшей алгебры.

Т

Теорема. Пусть множество $ { (x-lambda_1),dots,(x-lambda_{mathfrak r}) } $ представляет собой объединение множеств линейных сомножителей полиномов $ f_1(x),dots,f_k(x) $. Выпишем «универсальное» разложение каждого $ f_j $ на линейные сомножители:

$$ f_j(x)equiv a_{0j} (x-lambda_1)^{{mathfrak m}_{1j}}(x-lambda_2)^{{mathfrak m}_{2j}}times
dots times
(x-lambda_{mathfrak r})^{{mathfrak m}_{{mathfrak r}j}}
$$
(здесь возможно, что некоторые из кратностей $ {mathfrak m}_{ij} $ равны 0). Тогда
$$ operatorname{HOD} left(f_1(x),dots,f_k(x) right)=
(x-lambda_1)^{{mathfrak m}_1}(x-lambda_2)^{{mathfrak m}_2}times cdots times (x-lambda_{mathfrak r})^{{mathfrak m}_{mathfrak r}} ,
$$
$$
operatorname{HOK} left(f_1(x),dots,f_k(x) right)=
(x-lambda_1)^{{mathfrak M}_1}(x-lambda_2)^{{mathfrak M}_2}times cdots times (x-lambda_{mathfrak r})^{{mathfrak M}_{mathfrak r}}
$$
где $ displaystyle {mathfrak m}_{ell} = min_{jin{1,dots, k}} {mathfrak m}_{ell j}, displaystyle {mathfrak M}_{ell} = max_{jin{1,dots, k}} {mathfrak m}_{ell j} $.

П

Пример. Вычислить $ operatorname{HOD} left(x^2-1,, x^3+1 right) $ .

Решение. Выписываем разложения полиномов на линейные сомножители:
$$x^2-1equiv (x-1)(x+1), quad x^3+1 equiv(x+1)
left(x-left( 1/2 — sqrt{3}/2 mathbf{i} right) right)
left(x- left( 1/2 + sqrt{3}/2 mathbf{i} right) right) .$$

Ответ. $ x+1 $.

Разумеется, этот способ нахождения $ operatorname{HOD} $ имеет
лишь теоретическое значение, поскольку, как было указано



ЗДЕСЬ, получить выражение корней полинома в радикалах, как правило, не удается.

Т

Теорема. Существуют полиномы $ u(x)_{} $ и $ v(x)_{} $ из
$ mathbb A[x] $, удовлетворяющие уравнению линейного представления $ operatorname{HOD} $:

$$
v(x)f(x)+u(x)g(x)equiv operatorname{HOD}(f,g) .
$$

Доказательство этого результата и практический способ построения полиномов $ u(x)_{} $ и $ v(x)_{} $ можно скопировать из соответствующего раздела теории чисел.

§

Явное представление $ operatorname{HOD} (f(x),g(x)) $ через коэффициенты полиномов с помощью аппарата определителей приведено



ЗДЕСЬ.

Алгоритм Евклида имеет приложение и к задаче локализации корней полинома $ f(x) $ с вещественными коэффициентами, т.е. к нахождению числа всех вещественных корней и точного количества их на произвольном интервале вещественной оси. Подробне




ЗДЕСЬ.

Взаимно простые полиномы

— это полиномы, у которых
нормализованный $ operatorname{HOD} $ равен $ 1_{} $ (тождественно). Подробное рассмотрение этого случая



ЗДЕСЬ.

Производные от полинома

Для случая произвольной функции
$ F(x): mathbb R mapsto mathbb R $ это определение строится на предельном переходе:
$$ frac{d, F}{d, x} bigg|_{_{x=c}}
= F^{prime}(c) = lim_{hto 0} frac{F(c+h)-F(c)}{h} .$$
Пусть $ F(x)equiv x^k $ при $ kin mathbb N_{} $. Тогда, с помощью формулы бинома Ньютона
получаем:
$$(c+h)^k-c^k=kc^{k-1}h+C_k^2c^{k-2}h^2+dots+h^k $$
и
$$frac{F(c+h)-F(c)}{h} to kc^{k-1} quad npu hto 0 . $$
Отсюда следует, что функция $ x^{k} $ дифференцируема в любой точке $ xinmathbb R_{} $
и ее производная равна $ kx^{k-1} $. Обобщим это определение и на комплексную
плоскость $ mathbb C^{} $ . Всюду в предыдущих рассуждениях допустим, что и точка
$ c_{} $ и приращение $ h_{} $ могут быть комплексными. Окончательный вывод не изменится:
формула
$$(x^k)^{prime}= kx^{k-1} $$
остается справедливой и для $ xin mathbb C_{} $. С помощью этой формулы, а также с
помощью основных правил дифференцирования функций:
$$
left(F_1pm F_2 right)^{prime}=F_1^{prime}pm F_2^{prime},
left(cFright)^{prime}=cF^{prime},
left(F_1F_2 right)^{prime}=F_1^{prime}F_2+F_1F_2^{prime}
$$
получаем
$$ f^{prime}(x)=(a_0x^n+a_1x^{n-1}+dots+a_{n-1}x+a_n)^{prime}
= na_0x^{n-1}+(n-1)a_1x^{n-2}+dots +a_{n-1} . $$
Таким образом, $ f^{prime}(x) $ также будет полиномом над $ mathbb A_{} $ и
$ deg f^{prime} = deg f — 1 $. Кроме того, обобщая по индукции
формулу дифференцирования произведения, выводим:
$$
left(f_1f_2times dots times f_k right)^{prime}=
f_1^{prime}f_2times dots times f_k+f_1f_2^{prime}times dots times f_k+
dots+ f_1f_2times dots times f_k^{prime} .
$$
Если применить ее к формуле разложения полинома на линейные
множители, то получим формулу
$$
begin{matrix}
f^{prime}(x)&=&a_0(x-lambda_2)(x-lambda_3)times dots times (x-lambda_n)+
\
&+&a_0(x-lambda_1)(x-lambda_3)times dots times (x-lambda_n)+ \
&+ & dots + \
&+& a_0(x-lambda_1)(x-lambda_2)times dots times (x-lambda_{n-1}).
end{matrix}
$$
Из нее, в частности, следует, что
$$
f^{prime}(lambda_j)=a_0(lambda_j-lambda_1)times dots times
(lambda_j-lambda_{j-1})(lambda_j-lambda_{j+1})
times dots times (lambda_j-lambda_{n})=
$$
$$
=a_0
prod_{1le k le n atop
scriptstyle kne j} (lambda_j — lambda_k) .
$$
Последняя формула, впрочем, может быть получена и напрямую из определения производной:
$$
f^{prime}(lambda_j)=lim_{xto lambda_j} frac{f(x)-f(lambda_j)}{x-lambda_j}
=lim_{xto lambda_j} frac{a_0(x-lambda_1)timesdotstimes (x-lambda_n)}{x-lambda_j} .
$$
Производные высших порядков вводятся определением
$$F^{(k)}(x)= left(F^{(k-1)}(x) right)^{prime} npu k>1 ; $$
для однотипности обозначений считают также нулевой производной сам полином:
$$F^{(0)}(x)= F(x) .$$
В дальнейшем нам пригодится следующая формула Лейбница:
$$left(F_1 F_2 right)^{(k)}=sum_{j=0}^k C_k^j F_1^{(k-j)}F_2^{(j)}=$$
$$
=F_1^{(k)}F_2+ C_k^1F_1^{(k-1)}F_2^{prime}
+ C_k^2F_1^{(k-2)}F_2^{prime prime }+ dots +F_1F_2^{(k)} ,
$$
где $ C_k^{j} $ означает биномиальный коэффициент.

Для полинома $ f(x)_{} $ степени $ n_{} $ имеем:
$$f^{(k)}(x)=n(n-1)times dots times (n-k+1)a_0x^{n-k}+dots+k!a_{n-k}
npu kle n $$
и $ deg f^{(k)} = deg f — k $. Очевидно $ f^{(k)}(x)equiv 0 $ при $ k> n_{} $.

Т

Теорема. Простой корень полинома не является корнем его производной. Кратный корень полинома кратности $ mathfrak m $ является корнем его производной кратности $ ({mathfrak m}-1) $.

Доказательство. Если $ x=lambda_{} in mathbb C $ — простой корень для $ f_{}(x) $, то
$ f(x)equiv (x-lambda)tilde{f}(x) $ при $ tilde{f}(lambda) ne 0 $.
Дифференцируя и подставляя $ x=lambda $, получаем
$$
f^{prime}(x)equiv tilde{f}(x) +(x-lambda)tilde{f}^{prime}(x)
Rightarrow f^{prime}(lambda)=tilde{f}(lambda)ne 0
$$
по предположению.

Если $ x=lambda_{} $ — кратный корень кратности $ mathfrak m $ для $ f_{}(x) $, то
$ f(x)equiv (x-lambda)^{mathfrak m}widehat{f}(x) $ при $ widehat{f}(lambda) ne 0 $. Снова дифференцируем:
$$
f^{prime}(x)={mathfrak m}(x-lambda)^{{mathfrak m}-1} widehat{f}(x)+
(x-lambda)^{{mathfrak m}}widehat{f}^{prime}(x)=
$$
$$
=(x-lambda)^{{mathfrak m}-1}
underbrace{left({mathfrak m}widehat{f}(x)
+(x-lambda)widehat{f}^{prime}(x)
right)}_{= H(x)} .
$$
Из этого представления следует, что $ x=lambda_{} $ является корнем $ f^{prime}(x) $
кратности, не меньшей $ ({mathfrak m}-1) $. Если бы кратность была
больше этого значения, то необходимо $ H(lambda)=0 $. Однако, этого не
может быть, т.к. $ widehat{f}(lambda) ne 0 $.


=>

Полином $ f(x)_{} $ имеет кратный корень тогда и только
тогда, когда он имеет нетривиальный наибольший общий делитель со своей производной
$$ operatorname{HOD} (f(x),f^{prime}(x)) notequiv const . $$

П

Пример. При каком условии на коэффициенты $ p_{} $ и $ q_{} $ полином

$$ x^3+p,x+q $$
имеет кратный корень?

Решение. На основании теоремы на этом корне $ x=lambda_{} $
должно быть выполнено
$$lambda^3+p,lambda+q=0 , quad 3, lambda^2 + p=0 .$$
Из второго равенства выражаем $ lambda^2 $ и подставляем в первое:
$$lambda^2=-frac{p}{3} Rightarrow lambda left(-frac{p}{3} right)
+p,lambda+q=0 Rightarrow lambda=-frac{3,q}{2,p} $$
при $ pne 0 $.
Подставляя это значение в любое из исходных равенств, получаем:
$$
frac{27,q^2+4,p^3}{4, p^2} =0 Rightarrow
left(frac{q}{2} right)^2 + left(frac{p}{3} right)^3 =0 .
$$
Это условие уже встречалось нам ВЫШЕ при анализе формулы решения уравнения третьей степени.
При $ p=0 $ кратный корень может встретиться лишь при $ q=0 $, т.е. опять же
при обращении в нуль дискриминанта кубического уравнения.

Ответ. $ left( p/3 right)^3 + left( q/2 right)^2=0 $.

Предыдущий пример позволяет выявить общую закономерность:
наличие у полинома $ f_{}(x) $ кратного корня является ситуацией исключительной,
наблюдаемой только тогда, когда коэффициенты полинома связаны некоторым
условием типа равенства. Общий способ получения этого условия



ЗДЕСЬ

?

При каком условии на коэффициенты $ p_{} $ и $ q_{} $ полином

а) $ x^4+p,x+q $ ; б) $ x^5+p,x+q $

имеет кратный корень?

П

Пример. Найти все значения параметра $ {color{Red} alpha } $, при которых полином

$$ x^4-5,x^2+{color{Red} alpha },x+28 $$
имеет кратный корень.

Решение. На основании следствия к теореме для выполнения
условия необходимо и достаточно, чтобы был нетривиален
$ operatorname{HOD} (f(x),f^{prime}(x)) $. Ищем его по алгоритму Евклида, делим $ f(x) $ на $ f^{prime}(x) $:
$$
f(x)equiv frac{1}{4} , x, f^{prime}(x) +
overbrace{left(-frac{5}{2}, x^2
+frac{3}{4}, {color{Red} alpha }, x +28 right)}^{r_1(x)}
,
$$
затем $ f^{prime}(x) $ на полученный остаток $ r_{1}(x) $:
$$
f^{prime}(x) equiv left(-frac{8}{5},x-
frac{12}{25}, {color{Red} alpha } right) r_1(x) +
overbrace{left(frac{3}{25},(3, {color{Red} alpha }^2 + 290),x+
frac{361}{25}, {color{Red} alpha } right)}^{r_2(x)}
,
$$
и, при дополнительном предположении $ 3, {color{Red} alpha }^2 + 290ne 0 $, делим $ r_{1}(x) $ на $ r_{2}(x) $:
$$
r_1(x) equiv frac{25}{36left(3, {color{Red} alpha }^2 +290 right)^2}
left[-30,left(3, {color{Red} alpha }^2 +290 right) x +
alpha, (27, {color{Red} alpha }^2 + 6220) right] r_2(x) +
$$
$$
+ frac{25, left(-27, {color{Red} alpha }^4 -19660, {color{Red} alpha }^2 + 3390912right)
}{36, left(3, {color{Red} alpha }^2 +290 right)^2} .
$$
$ operatorname{HOD} (f(x),f^{prime}(x)) $ может быть нетривиальным (равным $ r_{2}(x) $)
только при условии
$$-27, {color{Red} alpha }^4 -19660, {color{Red} alpha }^2 + 3390912=0 . $$
Решить последнее уравнение легко если заменить
переменную $ A = {color{Red} alpha }^2 $:
$$( A-144)(27, A +23548)=0 .$$

При $ 3, {color{Red} alpha }^2 + 290= 0 $ будет
$ operatorname{HOD} (f(x),f^{prime}(x))= r_2(x)not equiv 0 $, так что
при этих значениях параметра кратных корней у $ f(x)_{} $ быть не может.

Ответ. $ {color{Red} alpha } in { pm 12, pm {scriptstyle 58}/{scriptstyle 3} sqrt{{scriptstyle 7}/{scriptstyle 3}}, mathbf i } $.

=>

Число $ lambda_{} $ является корнем кратности $ mathfrak m_{} $ для $ f(x)_{} $ тогда и
только тогда, когда выполнены условия:

$$
underbrace{f^{(0)}(lambda)=0,dots, f^{({mathfrak m}-1)}(lambda)=0}_{mathfrak m},,
f^{({mathfrak m})}(lambda)ne 0 .
$$

Доказательство необходимости следует из теоремы. Достаточность вытекает из результатов следующего пункта (формализация способа проверки приводится



ЗДЕСЬ).

Формула Тейлора

Представление полинома $ f(x)_{}in mathbb A[x] $ в канонической форме $ a_{0}x^n+a_1x^{n-1}+dots + a_n $ не является единственно возможным способом задания полинома. В конце концов,
полином можно представить и с помощью разложения на линейные сомножители — разумеется, если известен набор его корней. Саму
эту каноническую форму можно описать как разложение полинома по
степеням переменной $ x_{} $. Пусть теперь $ cin mathbb A_{} $ — произвольная константа.
Любую степень $ x^{k} $ можно «переразложить» по степеням линейного полинома
$ x-c_{} $ с помощью формулы бинома Ньютона:
$$ x^kequiv left[c+(x-c) right]^kequiv c^k +kc^{k-1}(x-c)+
frac{k(k-1)}{2}c^{k-2}(x-c)^2+dots+ (x-c)^k .$$
Если это сделать для каждого монома полинома $ f(x)_{} $, то
получим разложение $ f(x)_{} $ по степеням $ x-c_{} $ в виде
$$
f(x)equiv A_0+A_1(x-c)+A_2(x-c)^2+dots+A_n(x-c)^n .
$$

Задача. Найти коэффициенты $ A_{0},dots,A_n $ в этом разложении.

Для решения этой задачи продифференцируем несколько раз последнее тождество:
$$
begin{matrix}
f^{prime}(x)&=&A_1+2,A_2(x-c)+3,A_3(x-c)^2+dots+nA_n(x-c)^{n-1} , ,\
f^{prime prime}(x)&=&2,A_2+3cdot 2,A_3(x-c)+dots +n(n-1)A_n(x-c)^{n-2}, ,\
f^{prime prime prime}(x)&=&3cdot 2,A_3+dots +n(n-1)(n-2)A_n(x-c)^{n-3}, ,\
dots & & dots
end{matrix}
$$
Подстановка в эти формулы $ x=c_{} $ дает:
$$f^{prime}(c)=A_1, f^{prime prime}(c)=2,A_2, f^{prime prime prime}(c)=
3cdot 2,A_3,dots $$

Т

Теорема. Разложение полинома $ f_{}(x) $ по степеням $ x-c_{} $ имеет вид

$$
f(x) equiv f(c)+
frac{f^{prime}(c)}{1!} (x-c) + frac{f^{prime prime }(c)}{2!} (x-c)^2+
dots + frac{f^{(n)}(c)}{n!} (x-c)^{n} =
$$
$$
=sum_{j=0}^n frac{f^{(j)}(c)}{j!} (x-c)^{j} ;
$$
это тождество называется формулой Тейлора для полинома $ f_{}(x) $ в точке $ x=c $.

Доказательство и алгоритм эффективного вычисления коэффициентов формулы Тейлора (схема Хорнера)



ЗДЕСЬ.

Формула Тейлора имеет гораздо большее значение,
чем просто переразложение полинома $ f_{}(x) $ по степеням заданного линейного полинома.

Она связана с задачей о приближении, аппроксимации функций.
Пусть функция $ F_{}(x) $ неизвестной заранее структуры описывает поведение
какого-то природного процесса. Мы имеем возможность провести серию (конечное
число) экспериментов (наблюдений), чтобы на их основе найти приближенное значение функции в произвольной точке $ x_{} $. Экспериментальные серии могут различаться по своему типу. Это могут быть серии экспериментов

  • однотипных, когда, например, удается узнать (засечь) положение спутника в разные моменты времени $ x_1,x_{2},dots $ на неизвестной орбите;

  • разнотипных, когда для того же спутника мы имеем возможность измерения большого количества различных параметров движения (положения, скорости, ускорения, ускорения ускорения, и пр.), но только в один фиксированный момент времени $ x=c_{} $.

На основании этих серий мы должны предсказать величину $ F(x)_{} $.
Самой простой функцией, решающей задачи в таких постановках, является
полином. Если этот полином $ f(x)_{} $ удается построить, то именно его
мы и будем считать приближением неизвестной нам функции $ F(x)_{} $.
Задача построения такого полинома для серии экспериментов первого типа обсуждается



ЗДЕСЬ. А формула Тейлора позволяет найти полином $ f(x)_{} $ для серии
экспериментов второго типа. Геометрически: неизвестный нам заранее график функции $ y=F(x)_{} $ (красный) приближается (аппроксимируется) либо прямой (зеленый), либо параболой (серый), либо кубикой (фиолетовый) — и все кривые приближения строятся только на основании информации о функции $ F(x)_{} $ в одной-единственной точке $ c_{} $.

П

Пример. Найти приближенное значение $ F(1)_{} $, если известно, что

$$F(-1)=F^{prime}(-1)=F^{prime prime}(-1)=F^{prime prime prime}(-1)=0.367
.$$

Решение. По формуле Тейлора получаем полином
$$f(x)=0.367+0.367(x+1) + frac{0.367}{2} (x+1)^2+frac{0.367}{6} (x+1)^3 $$
и $ f(1)=2.324(3) $.

Ответ. $ F(1)approx 2.324 $.

Полиномы с вещественными коэффициентами

Рассмотрим теперь случай полинома с вещественными коэффициентами
$ f(x)=a_0x^n+a_1x^{n-1}+ dots + a_n in mathbb R [x] $.

Т

Теорема. Значения полинома $ f(x) in mathbb R [x] $ от комплексно-сопряженных значений переменной будут также комплексно-сопряженными:

$$ mbox{если} f(c)=A+mathbf i B mbox{при} {A,B} subset mathbb R, mbox{то} f(overline{c})=A-mathbf i B , . $$

Доказательство. Действительно, поскольку $ a_jin mathbb R $,
то $ overline{a_j}=a_j $ для $ forall jin {0,1,dots,n} $, и тогда
$$
begin{matrix}
fleft(overline{c} right)&=&a_0 overline{c}^n + a_1 overline{c}^{n-1} +
dots + a_n = overline{a_0} overline{c^n} +
overline{a_1} overline{c^{n-1}}+ dots +
overline{a_n}= \
&=&overline{a_0c^n+a_1c^{n-1}+ dots + a_n}=A-mathbf i B .
end{matrix}
$$

=>

Если мнимое число
$ c=alpha + mathbf i beta , beta ne 0 $ является корнем $ f_{}(x) $, то и
ему комплексно-сопряженное $ overline c = alpha — mathbf i beta $ также
является корнем $ f_{}(x) $.

Иными словами, мнимые корни полинома $ f_{}(x) $ с вещественными коэффициентами «ходят пáрами»:
$ alpha pm mathbf i beta $. Геометрический смысл: на комплексной плоскости точки,
изображающие корни $ f_{}(x) $, расположены симметрично относительно вещественной
оси.

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

Т

Теорема. Любой полином $ f_{}(x)in mathbb R [x] $ может быть представлен в виде произведения вещественных полиномов степеней не выше второй:

$$
begin{array}{rl}
f(x) & equiv a_0 (x- lambda_1)^{{mathfrak m}_1} times dots times
(x- lambda_r)^{{mathfrak m}_r} times \
& times (x^2 +p_1x+ q_1)^{{mathfrak M}_1} times dots times
(x^2 +p_{ell}x+ q_{ell})^{{mathfrak M}_{ell}} .
end{array}
$$
Здесь $ lambda_1 , dots , lambda_r $ — различные вещественные числа,
а квадратные трехчлены

$$ {x^2 +p_1x+ q_1, dots , x^2 +p_{ell}x+ q_{ell}} subset mathbb R [x] $$
различные с отрицательными дискриминантами
$ mathcal D_j=p_j^2-4q_j<0 $. Это представление единственно с точностью до перестановки множителей.

П

Пример. Разложить полином

$$
x^7-sqrt{3}x^6+(-3+2sqrt{3})x^5+(2+sqrt{3})x^4+(3-6sqrt{3})x^3+(-12+11sqrt{3})x^2+
$$
$$
+(10-8sqrt{3})x+4sqrt{3}-6
$$
на вещественные множители.

Ответ. $ (x+sqrt{3})(x+(1-sqrt{3}))^2(x^2-x+1)^2 $.

=>

Полином $ f_{}(x) $ с вещественными коэффициентами нечетной степени имеет хотя бы один вещественный корень, а, в общем случае, нечетное число вещественных корней (с учетом их кратностей ).

Геометрия

Полиномы с вещественными коэффициентами удобны тем, что теоретические результаты, полученные в предыдущих пунктах, получают геометрическую интерпретацию. Прежде всего, следует отметить, что полином является частным случаем непрерывной функции и на него распространяются все результаты математического анализа, разработанные для подобных функций. Итак, полином $ f_{}(x) $ — непрерывная функция при любых $ x in mathbb R $. Более того, поскольку производные полинома снова оказываются полиномами, то свойство непрерывности наследуется при дифференцировании: полином является непрерывно-дифференцируемой функцией. Из этого следует, что на плоскости $ (x_{},y) $ график полинома $ y=f_{}(x) $ представляет из себя непрерывную и гладкую кривую (ни разрывов, ни углов!) — касательная к графику существует в любой его точке.

Далее, вещественному корню $ x=lambda_{} $ полинома $ f_{}(x) $ на плоскости
$ (x_{},y) $ соответствует точка пересечения графика $ y=f_{}(x) $ с осью абсцисс.

По основной теореме высшей алгебры, таких точек может быть только конечное число: их — не более степени полинома $ deg f (x) $. Далее, между каждой парой $ lambda_j, lambda_k $ вещественных корней полинома $ f_{}(x) $, его график обязан иметь «впадину» или «горб». Обращаясь к языку математического анализа, можно сказать (и доказать), что между двумя вещественными корнями полинома находится точка его локального минимума или локального максимума. В этой точке касательная к графику функции параллельна оси абсцисс и, следовательно, тангенс угла наклона касательной должен быть равен нулю. Иными словами, точки $ mu_1,mu_2,dots $, в которых полином имеет локальный минимум или максимум, должны быть корнями его производной. См. следующий ПУНКТ.

К сожалению, не имеется наглядной интерпретации мнимых корней полинома :-/.

§

Дальнейшие геометрические свойства полинома с вещественными коэффициентами см.



ЗДЕСЬ.

Экстремумы

Говорят, что полином $ f(x)in mathbb R[x] $ имеет в точке
$ c_{} $ (локальный) минимум если существует некоторое $ delta>0 $, что при всех значениях аргументов из $ delta_{} $-окрестности точки $ c_{} $, т.е. при всех $ x_{} $, удовлетворяющих неравенству $ |x-c|<delta $
будет выполнено $ f(x)> f(c) $.
Если последнее неравенство изменить на противоположное, то получим
определение (локального) максимума. Говорят, что полином
имеет в точке $ c_{} $ (локальный) экстремум10) если он имеет в этой точке либо максимум либо минимум.

Т

Теорема [Ферма для полиномов]. Если полином $ f_{}(x) $ имеет в точке
$ c_{} $ экстремум, то в этой точке его производная обращается в нуль:
$$
f'(c)=0 .
$$

Геометрический смысл этого результата пояснен в предыдущем пункте. Обращение производной полинома в нуль в точке $ c_{} $ является условием необходимым для существования в ней экстремума. Для выяснения будет ли в этой точке минимум, максимум или же экстремум отсутствует, следует обратиться к формуле Тейлора. Рассмотрим эту формулу в точке $ c_{} $ «подозрительной на экстремум», т.е. в такой, где $ f'(c)=0 $:
$$
f(x)-f(c)=frac{1}{2}f»(c)(x-c)^2+frac{1}{6}f»'(c)(x-c)^3+dots+frac{1}{n!}f^{(n)}(c)(x-c)^n
.
$$
Если $ f»(c)ne 0 $, то можем переписать эту разность в виде
$$
f(x)-f(c)=(x-c)^2underbrace{left[frac{1}{2}f»(c)+frac{1}{6}f»'(c)(x-c)+dots+frac{1}{n!}f^{(n)}(c)(x-c)^{n-2}right]}_{P(x)} .
$$
Полином $ P(x) $ в точке $ c_{} $ имеет значение $ frac{1}{2}f»(c) $, и его знак в некоторой окрестности точки $ c_{} $ полностью определяется знаком этого числа. Таким образом, в той же окрестности имеем:
$$ operatorname{sign} (f(x)-f(c)) = operatorname{sign} (f»(c)) . $$

=>

Если в точке $ c_{} $ выполнены условия $ f'(c)=0, f»(c)> 0 $ то в этой точке полином имеет локальный минимум; если же в ней выполнены условия $ f'(c)=0, f»(c)< 0 $, то в этой точке полином имеет локальный максимум.

Остался нерассмотренным случай $ f'(c)=0, f»(c)= 0 $ — крайне исключительный. Эта исключительность будет понятной если обратиться к результатам пункта о производных полинома: вероятность того, чтобы случайным образом выбранный полином $ f_{}(x) $ обладал такой точкой $ c_{} $ — нулевая. Тем не менее, надо довести исследование до конца и в этом случае. Если $ f»'(c) ne 0 $, то из той же формулы Тейлора имеем формулу:
$$
f(x)-f(c)=(x-c)^3underbrace{left[frac{1}{6}f»'(c)+dots+frac{1}{n!}f^{(n)}(c)(x-c)^{n-3}right]}_{Q(x)} .
$$
Вне зависимости от знака $ f»'(c) $ эта разность принимает значения разных знаков в произвольной окрестности точки $ c_{} $:
$$ operatorname{sign} (f(x)-f(c)) = left{ begin{array}{r}
operatorname{sign} f»'(c) quad npu x > c \
— operatorname{sign} f»'(c) quad npu x < c
end{array}
right.
$$
В точке $ c_{} $ полином не имеет ни минимума, ни максимума. По аналогии рассматривается и общий случай.

Т

Теорема. Для того, чтобы в точке $ c_{} $ полином $ f_{}(x) $ имел экстремум необходимо и достаточно, чтобы в этой точке были выполнены условия

$$ f'(c)=0,f»(c)=0,dots, f^{(k)}(c)=0,f^{(k+1)}(c)ne 0 $$
при произвольном нечетном $ k_{} $. При этом в точке $ c_{} $ полином будет иметь локальный минимум при $ f^{(k+1)}(c)>0 $ и локальный максимум при $ f^{(k+1)}(c)<0 $.

При известной точке $ c_{} $ условия теоремы удобно проверять с помощью схемы Хорнера.

Еще одним аспектом проблемы является вычисление собственно экстремальных значений полинома, т.е. величин $ f(c) $. В самом деле, поставим, например, задачу нахождения абсолютного (глобального) максимума полинома на всем множестве вещественных чисел. Такая постановка задачи имеет смысл при дополнительном условии, что полином $ f_{}(x) $ имеет четную степень и отрицательный старший коэффициент (только при этом условии при $ x to + infty $ и при $ x to -infty $ значения полинома не будут неограниченно возрастать). В соответствии с теоремой Ферма, нам нужно найти все вещественные корни производной полинома, т.е. решить уравнение $ f'(x)=0 $, подставить найденные величины в сам полином и ранжировать полученные значения по возрастанию. Вспомним, однако, что для корней полинома, как правило, не получить точных формул (см.



ЗДЕСЬ ), поэтому оценить корни полинома $ f'(x) $ мы можем, разве что, приближенно. После их нахождения, приближенные значения подставляются в полином $ f_{}(x) $ и ошибка вычислений накапливается… Можно ли избежать этого накопления? — Частично, да. Для полинома $ f_{}(x) $ (четной) степени $ n_{} $ можно построить новый полином степени $ n-1 $ по новой переменной $ z_{} $:
$$ mathcal F(z) = (z-f(mu_1))times dots times(z-f(mu_{n-1})) , $$
где $ mu_1,dots,mu_{n-1} $ — корни $ f'(x) $. При этом коэффициенты нового полинома $ mathcal F(z) $ будут рационально выражаться через коэффициенты полинома $ f'(x) $ на основании теоремы Гаусса о симметрических полиномах. Подробности конструктивного построения см.



ЗДЕСЬ. Как правило, максимальный вещественный корень полинома $ mathcal F(z) $ и будет давать значение $ max f(x) $.

П

Пример. Найти

$$ max_{xin mathbb R} (-x^6+12,x^2+12,x+2) , . $$

Решение. Если идти по традиционной схеме математического анализа, то мы должны сначала найти корни производной полинома $ f(x)=-x^6+12,x^2+12,x+2 $, т.е. решить уравнение
$ x^5-4,x-2=0 $. В радикалах это уравнение не решается, так что приходится применять приближенные методы поиска вещественных корней: $ mu_1approx -1.24359, mu_2 approx — 0.50849, mu_3 approx 1.51851 $. Наконец, требуется сравнить по величине $ f(mu_1), f(mu_2), f(mu_3) $.

В альтернативу этому подходу, можно избежать нахождения корней производной и построить (хоть и кропотливо, но зато безошибочно) полином
$$ mathcal F(z)= -z^5+10,z^4+472,z^3+16208,z^2-16272,z-32800 , $$
найти один его (максимальный вещественный) корень $ approx 35.6321 $ — он и будет искомым максимумом.

Проверка: $ max f = f(mu_3) approx 35.6321 $.

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

Приводимость

Полином $ Phi(x) in mathbb A[x] $, отличный от константы, называется неприводимым в (или неприводимым над) $ mathbb A_{} $ если у $ Phi(x) $ нет нетривиального делителя в $ mathbb A[x] $. В противном случае $ Phi(x) $ называется приводимым в (или приводимым над) $ mathbb A_{} $. Полином $ Phi(x) in mathbb A[x] $ неприводим над $ mathbb A_{} $ тогда и только тогда, когда $ operatorname{HOD} (Phi(x),g(x)) equiv const in mathbb A_{} $ для любого полинома $ g(x)in mathbb A_{}[x], deg g(x) < deg Phi (x) $.

Понятие неприводимости полинома является аналогом понятия простоты числа в теории (целых) чисел.

Т

Теорема. Любой полином $ f(x) in mathbb A [x] $ можно представить в виде

$$
begin{array}{rl}
f(x) & equiv a_0 (x- lambda_1)^{{mathfrak m}_1} times dots times
(x- lambda_r)^{{mathfrak m}_r} times \
& times (x^2 +p_1x+ q_1)^{{mathfrak M}_1} times dots times
(x^2 +p_{ell}x+ q_{ell})^{{mathfrak M}_{ell}} .
end{array}
$$
где $ Phi_1(x),dots , Phi_K(x) $ — различные нормализованные и неприводимые в $ mathbb A_{} $ полиномы, а $ { {mathfrak m}_1,dots,{mathfrak m}_K } subset mathbb N $.

Последнее тождество называется каноническим разложением $ f(x)_{} $ над $ mathbb A_{} $.

П

Пример. Полином $ x^{2}-2 $ неприводим в $ mathbb Q_{} $, но приводим в $ mathbb R_{} $:

$$ x^2-2 equiv left(x-sqrt{2} right) left(x + sqrt{2} right) , .$$
Полином $ x^{2}+2 $ неприводим в $ mathbb Q_{} $, но приводим в $ mathbb C_{} $:
$$ x^2+2 equiv left(x+mathbf i sqrt{2} right) left(x — mathbf i sqrt{2} right) , .$$
Полином $ x^{4}+4 $ не имеет вещественных корней, но, тем не менее, приводим в $ mathbb Q_{} $, т.к.
$$ x^4+4equiv (x^2+2, x +2)(x^2-2, x +2) , . $$

Т

Теорема. Любой полином $ f(x)in mathbb C [x] $ степени большей $ 1_{} $ приводим в $ mathbb C_{} $.

Доказательство следует из основной теоремы высшей алгебры.


Т

Теорема. Любой полином $ f(x)in mathbb R [x] $ степени большей $ 2_{} $ приводим в $ mathbb R_{} $. Неприводимыми в $ mathbb R_{} $ являются полиномы вида

$$ x+a quad mbox{и} quad x^2+p, x +q_{} quad mbox{при} quad {a,p,q } subset mathbb R, p^2 — 4q <0 , .$$
Каноническое разложение в $ mathbb R_{} $ произвольного полинома $ f(x)in mathbb R [x] $
имеет вид
$$
f(x)equiv a_0 (x- lambda_1)^{{mathfrak m}_1} times dots times
(x- lambda_r)^{{mathfrak m}_r} times
$$
$$
times (x^2 +p_1x+ q_1)^{{mathfrak M}_1} times dots times
(x^2 +p_{ell}x+ q_{ell})^{{mathfrak M}_{ell}} ,
$$
где $ lambda_{1} , dots , lambda_r $ — различные вещественные числа, а квадратные трехчлены $ {x^2 +p_1x+ q_1, dots , x^2 +p_{ell}x+ q_{ell}} subset mathbb R [x] $ — различные с отрицательными дискриминантами $ mathcal D_j=p_j^2-4q_j<0 $.

Фактически, эта теорема является переформулировкой результата, приведенного



ЗДЕСЬ.

Рассмотрим теперь полином с рациональными коэффициентами:
$$f(x)=a_0x^n+a_1x^{n-1}+dots+a_n in mathbb Q [x] , a_0 ne 0 . $$
Если полином $ f_{}(x) $ приводим в $ mathbb Q_{} $, то будет приводимым и
полином $ Ccdot f_{}(x) $ при $ forall C in mathbb Q, C ne 0 $; верно и обратное.
Представив коэффициенты $ a_{0},dots, a_n $ в виде несократимых дробей,
возьмем
$$ C=operatorname{HOK}(mbox{ знаменатель } a_{0},dots, mbox{ знаменатель } a_n ) , $$
тогда приводимость (или неприводимость) полинома $ f_{}(x) $ в $ mathbb Q_{} $
эквивалентна приводимости (соответственно, неприводимости)
в $ mathbb Q_{} $ полинома $ Ccdot f(x) $ с целыми коэффициентами. Поэтому в дальнейшем
будем сразу предполагать
$ f(x)in mathbb Z[x] $. Можно ли пойти дальше и утверждать, что приводимость
такого полинома в $ mathbb Q_{} $ эквивалентна приводимости его в $ mathbb Z_{} $, т.е.
полином раскладывается на произведение полиномов меньших степеней с рациональными коэффициентами тогда и
только тогда, когда он раскладывается на произведение полиномов меньших степеней с целыми коэффициентами?

Т

Теорема. Полином $ f(x)in mathbb Z[x] $ неприводимый в $ mathbb Z_{} $ будет неприводимым и в $ mathbb Q_{} $.

Приводимость полинома с целыми коэффициентами $ f(x)in mathbb Z[x] $ в $ mathbb Z_{} $ означает, что он раскладывается на два множителя с целыми коэффициентами:
$$
a_0x^n+a_1x^{n-1}+ dots + a_n equiv (b_0x^k+b_1x^{k-1} + dots + b_k)
(c_0x^{ell}+c_1x^{ell-1} + dots + c_{ell})
$$
при $ k<n, ell < n, k+ell = n $. Для практического решения вопроса о существовании такого разложения, сначала установим условия его существования для случая, когда один из
сомножителей — линейный полином.

Т

Теорема. Если полином

$$f(x)=a_0x^n+a_1x^{n-1} + dots + a_n in mathbb Z[x] , a_0 ne 0,a_n ne 0 $$
имеет рациональный корень, представленный в виде несократимой дроби $ lambda=mathfrak p/mathfrak q,, {{mathfrak p}, {mathfrak q}}subset mathbb Z $, то ее числитель $ {mathfrak p} $ является делителем свободного члена $ a_{n} $, а знаменатель $ {mathfrak q}_{} $ — делителем старшего коэффициента $ a_{0} $.

Доказательство



ЗДЕСЬ
.


Итак, для поиска рациональных корней полинома $ f_{}(x) $ надо выписать множество всех натуральных делителей $ {{mathfrak p}_1=1,dots,{mathfrak p}_{s}} $ числа $ |a_n| $, и множество всех натуральных делителей $ {{mathfrak q}_1=1,dots,{mathfrak q}_{t}} $ числа $ |a_0| $, и после этого организовать вычисление $ fleft(pm {mathfrak p}_j/{mathfrak q}_i right) $
при всех возможных значениях индексов $ jin {1,dots,s }, i in {1,dots, t } $. Если ни одно из полученных чисел не равно нулю, то рациональных корней полином не имеет.

=>

Если нормализованный полином $ f(x) in mathbb Z[x] $ имеет рациональные корни, то они — только целые и находятся среди делителей свободного члена.

П

Пример. Найти рациональные корни полинома

$$f(x)=6,x^6-55, x^5+331, x^3-86,x^4+289,x^2-25,x+350 . $$

Решение. Выписываем множества делителей

для $ 350 : quad {1,, 2 ,, 5 ,, 7,, 10,, 14,, 25
,, 35,, 50,, 70,, 175 } $ и для $ 6 : {1,, 2,, 3,, 6 } $.

Составляем всевозможные несократимые дроби:
$$ left{
begin{array}{ccccccccccc}
1,& 2 ,& 5 ,& 7,& 10,& 14,& 25 ,& 35,& 50,& 70,& 175, \
{scriptstyle 1}/{scriptstyle 2},& &
{scriptstyle 5}/{scriptstyle 2} ,& {scriptstyle 7}/{scriptstyle 2}, &
& & {scriptstyle 25}/{scriptstyle 2}
& {scriptstyle 35}/{scriptstyle 2}, & & &
{scriptstyle 175}/{scriptstyle 2}, \
{scriptstyle 1}/{scriptstyle 3},& {scriptstyle 2}/{scriptstyle 3},&
{scriptstyle 5}/{scriptstyle 3},& {scriptstyle 7}/{scriptstyle 3},&
{scriptstyle 10}/{scriptstyle 3},&
{scriptstyle 14}/{scriptstyle 3},& {scriptstyle 25}/{scriptstyle 3},&
{scriptstyle 35}/{scriptstyle 3},& {scriptstyle 50}/{scriptstyle 3},&
{scriptstyle 70}/{scriptstyle 3},& {scriptstyle 175}/{scriptstyle 3}, \
{scriptstyle 1}/{scriptstyle 6},& &
{scriptstyle 5}/{scriptstyle 6}, & {scriptstyle 7}/{scriptstyle 6}, &
& &
{scriptstyle 25}/{scriptstyle 6},& {scriptstyle 35}/{scriptstyle 6},& &
& {scriptstyle 175}/{scriptstyle 6}
end{array}
right}
$$
Подставляем все эти значения со знаками $ +_{} $ и $ — $ в $ f(x)_{} $ и проверяем (например, с использованием схемы Хорнера ) на равенство нулю.

Ответ. $ 10,, {scriptstyle 5}/{scriptstyle 2},, -{scriptstyle 7}/{scriptstyle 3} $.

Из того факта, что полином $ f(x) in mathbb Z[x] $ не имеет рациональных корней не
следует, что он неприводим в $ mathbb Z_{} $: в разложении $ f(x)equiv f_{1}(x)f_2(x) $ сомножители
могут оказаться и нелинейными — например, как указанный выше полином $ x^{2}+4 $. Как найти эти сомножители?

§

Подробнее о приводимости и неприводимости полиномов в $ mathbb Z_{} $



ЗДЕСЬ.

Локализация корней

Границы расположения корней

Т

Теорема [Маклорен].11) Все корни полинома

$$f(x)=a_0x^n+a_1x^{n-1}+dots+a_n in mathbb C [x], a_0 ne 0$$
удовлетворяют неравенству
$$
|lambda_j|<1+ A,quad npu quad A=
max_{kin{1,dots,n}} left| frac{a_k}{a_0} right| .
$$

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

Т

Теорема [Лагранж]. Все вещественные корни полинома

$$f(x)=a_0x^n+a_1x^{n-1}+dots+a_n in mathbb R [x], a_0>0$$
удовлетворяют неравенству
$$
lambda_j<1+ sqrt[r]{A},quad npu quad
A=max_{kin {1,dots,n}} left| frac{a_k}{a_0} right| ,
$$
где $ r $ — номер первого отрицательного коэффициента.

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

?

А как получить нижнюю оценку возможных отрицательных корней?

Это можно сделать с помощью преобразования

1

полинома, рассмотренного



ЗДЕСЬ.
В самом деле, отрицательные корни полинома $ f(x) $ являются положительными
корнями полинома $ f(-x) $. Найдя верхнюю границу последних с помощью любого
из приведенных выше критериев, мы меняем у нее знак и в результате получаем
нижнюю оценку отрицательных корней $ f(x) $.
Преобразование

3

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

П

Пример. Найти оценки положительных и отрицательных корней полинома

$$
f(x)=x^8+2, x^7-2, x^6 +6, x^5 -80, x^4 + 100, x^3 -400, x^2 + 15, x +30
.
$$

Решение. Сначала ограничим положительные корни сверху. В теореме
Лагранжа имеем $ r=2,, A=400 $, следовательно $ lambda_j<21 $.
Теперь ограничим отрицательные корни снизу.
$$
f(-x)=x^8-2, x^7-2, x^6 -6, x^5 -80, x^4 — 100, x^3 -400, x^2 — 15, x +30
,
$$
и теперь $ r=1,, A=400 $, следовательно $ -lambda_j<401 Rightarrow
lambda_j > -401 $. Формируем полином
$$
f^{ast}(x) = x^8f(1/x)=
1+2, x-2, x^2 +6, x^3 -80, x^4 + 100, x^5 -400, x^6 + 15, x^7 +30,x^8
$$
для оценки нижней границы положительных корней:
$$1/lambda_j < 1 + sqrt{400/30}
Rightarrow lambda_j > frac{1}{1 +sqrt{40/3}}
.
$$
Наконец, оценка Лагранжа для полинома $ f^{ast}(-x) $:
$$-1/lambda_j < 1+ 40/3
Rightarrow lambda_j < — frac{1}{1 +40/3}
$$
позволяет ограничить сверху отрицательные корни полинома $ f(x) $.

Ответ. Положительные корни находятся в интервале $ ]0.214, ,21[ $,
а отрицательные — в интервале $ ]-401,-0.06[ $.

Проверка. Вещественные корни полинома:
$$-4.324358112, -0.2473416673, 0.3027275675, 2.716544138 .$$

Правило знаков Декарта

Для полиномов с вещественными коэффициентами следующий полезный результат очень прост в проверке.
Будем использовать сокращение $ operatorname{nrr} $ для числа вещественных корней12).

Т

Теорема [Декарт]. Число положительных корней полинома

$$f(x)=a_0x^n+a_1x^{n-1}+dots+a_{n-1}x+a_n in mathbb R[x], quad (a_0> 0,a_n ne 0)$$
с учетом их кратностей равно или меньше на четное число числа знакоперемен в ряду его коэффициентов:
$$
operatorname{nrr} { f(x)=0 mid x>0 } = {mathcal V}(a_0,a_1,dots,a_n)-2 k , quad
kin {0,1,2, dots } .
$$

Доказательство




ЗДЕСЬ.

С помощью преобразования корней полинома (см. пункт

1




ЗДЕСЬ ) можно доказать следствие:

=>

Число отрицательных корней полинома

$$f(x)=a_0x^n+a_1x^{n-1}+dots+a_{n-1}x+a_n, quad (a_0> 0,a_n ne 0)$$
с учетом их кратностей можно оценить по формуле
$$
operatorname{nrr} { f(x)=0 mid x<0 } = {mathcal V}(a_0,-a_1,a_2,dots,(-1)^na_n)-2 k’
,
$$
а если среди коэффициентов $ a_{j} $ нет нулевых, то — по формуле
$$
operatorname{nrr} { f(x)=0 mid x<0 } = {mathcal P}(a_0,a_1,a_2,dots,a_n)-2 k’ ,
$$
где $ k’in {0,1,2, dots } $ и $ {mathcal P} $ обозначает число знакопостоянств.

П

Пример. Оценить число положительных и число отрицательных корней
полинома

$$ f(x)=x^5-2, x^4-8,x^3-x^2-9, x+1 , .$$

Решение. $ {mathcal V}(1,-2,-8,-1,-9,1)=2 $.
$$ operatorname{nrr} { f(x)=0 mid x>0 } =2-2k ge 0
,$$
следовательно $ f_{}(x) $ имеет либо два, либо ни одного положительного
корня. Далее, по следствию:
$$
operatorname{nrr} { f(x)=0 mid x<0 } = {mathcal P}(1,-2,-8,-1,-9,1)=3-2k’ge 0
,
$$
следовательно $ f_{}(x) $ имеет либо три, либо один отрицательный корень.

Проверка. Вещественные корни полинома: $ -2.23233, 0.10863, 4.12369 $.

=>

Если каким-то образом заранее известно, что все корни полинома вещественны, то число положительных из них определяется по правилу знаков Декарта однозначно:

$$ operatorname{nrr} { f(x)=0 mid x>0 } = {mathcal V}(a_0,a_1,dots,a_n) . $$

П

Пример. Характеристический полином вещественной симметричной матрицы удовлетворяет условию следствия. См.



ЗДЕСЬ.

Не смотря на кажущуюся грубость (приблизительность) оценки, правило знаков Декарта позволяет иногда делать достаточно глубокие выводы относительно корней полинома. В частности, из него следует, что чем больше коэффициентов полинома $ f_{}(x) $ обращается в нуль13), тем меньше у него потенциальных возможностей иметь вещественные корни!

Корни полинома в областях комплексной плоскости

Задача. Для полинома14) $ f(z) $ получить точную информацию о числе его корней в заданной области $ mathbb S $ комплексной плоскости $ mathbb C $.

Оказывается, для достаточно широкого класса областей $ mathbb S $ эту информацию можно получить без
применения численных, т.е. приближенных методов. Существуют алгоритмы,
позволяющие за конечное число элементарных алгебраических операций
($ +,-,times, div $) над коэффициентами $ f(z) $ установить количество корней
этого полинома в таких областях, как, к примеру,
$$
begin{array}{ccl}
mathbb S&=&{ zin mathbb R big| a<z<b } npu {a,b} subset mathbb R , \
&& \
mathbb S&=&{ zin mathbb C big| Re e (z) <0 } , \
&& \
mathbb S&=&{ zin mathbb C big| |z| <1 } .
end{array}
$$

Интервал вещественной оси

Задача. Для полинома $ f(x)_{}in mathbb R[x] $ установить точное число его
корней на заданном интервале $ ]a,b[ $:
$$ operatorname{nrr} {f(x)=0 | a<x<b } .$$

Система полиномов Штурма

Для полинома $ f_{}(x) $ система полиномов
$$
f_0(x)equiv f(x), f_1(x),dots, f_K(x)
$$
называется системой полиномов Штурма15) на заданном интервале $ ]a,b[ $ если на этом
интервале


1.

cоседние полиномы $ f_j(x) $ и $ f_{j+1}(x) $ не имеют общих корней;


2.

$ f_K(x)ne 0 $;


3.

если $ f_j(x_0)=0 $ при $ x_0 in ]a,b[ $ и $ jin {1,dots,k-1} $, то
числа $ f_{j-1}(x_0) $ и $ f_{j+1}(x_0) $ имеют разные знаки:
$ f_{j-1}(x_0)f_{j+1}(x_0)<0 $;


4.

произведение $ f_{0}(x)f_{1}(x) $ меняет знак с отрицательного на положительный когда $ x_{} $, возрастая, проходит корень $ lambdain ]a,b[ $ полинома $ f_0(x)equiv f(x) $.

Число знакоперемен
$$
{mathcal V}_x= {mathcal V}(f_0(x), f_1(x),dots, f_K(x))
$$
при $ x_{} $ возрастающем от $ a_{} $ к $ b_{} $, будет меняться когда $ x_{} $ проходит через
корень какого-либо полинома системы. Доказывается, что это число может
разве лишь уменьшаться, и уменьшается на единицу тогда и только тогда,
когда $ x_{} $ проходит через корень начального полинома системы, т.е. через корень $ f(x)_{} $.

Т

Теорема [Штурм]. Если $ f(a)ne 0, f(b)ne 0 $, и система $ f_0(x), f_1(x),dots, f_K(x) $
является системой полиномов Штурма для $ f(x_{}) $, то

$$
operatorname{nrr} {f(x)=0 mid a<x<b }= {mathcal V}_a — {mathcal V}_b=
$$
$$
={mathcal V}(f_0(a), f_1(a),dots, f_K(a))-
{mathcal V}(f_0(b), f_1(b),dots, f_K(b)) .
$$

Самый распространенный способ построение системы полиномов Штурма основан на алгоритме Евклида нахождения наибольшего общего делителя полинома $ f_{}(x) $ и его производной $ f{‘}(x) $.
Предположим, что $ f_{}(x) $ не имеет кратных корней. Это равносильно
тому, что $ operatorname{HOD} (f(x),f'(x))= const ne 0 $ (см.



ЗДЕСЬ ). Установить этот факт можно по алгоритму Евклида нахождения $ operatorname{HOD} $. Оказывается, что в качестве полиномов системы Штурма можно взять последовательность остатков из алгоритма Евклида, если только домножить некоторые из них на $ -1_{} $. Именно, возьмем
$$f_1(x) equiv f'(x) .$$
Поделим $ f_{0}(x) equiv f(x) $ на $ f_{1}(x) $ и обозначим через $ f_{2}(x) $ остаток,
домноженный на $ -1_{} $:
$$f_0(x)equiv q_1(x) f_1(x)-f_2(x), quad deg f_2 < n-1 .$$
Поделим $ f_{1}(x) $ на $ f_{2}(x) $ и обозначим через $ f_{3}(x) $ остаток,
домноженный на $ -1_{} $:
$$f_1(x)equiv q_2(x) f_2(x)-f_3(x), quad deg f_3 < deg f_2 .$$
Продолжаем алгоритм далее, в конце концов дойдем до последнего ненулевого
остатка $ f_{K}(x) $, который совпадает с $ operatorname{HOD} (f(x),f'(x)) $. По предположению, этот последний $ f_{K}(x)equiv const ne 0 $.

§

Если на интервале $ ]a,b[ $ полином $ f_{}(x) $ имеет корень четной кратности, то построение системы полиномов Штурма невозможно.

П

Пример. Отделить корни полинома $ f (x)=x^{4}-x-1 $.

Решение. $ f_1=f'(x)=4, x^{3}-1 $.
$$
begin{array}{rrrrrr|l}
x^4+ &{}0x^3 +&{}0x^2 &-x &-1 &&,4, x^3-1\
x^{4}+& & &
— frac{scriptstyle 1}{scriptstyle 4} x & &&,
overline{quad frac{scriptstyle 1}{scriptstyle 4}, x quad } \
hline
& & &- frac{scriptstyle 3}{scriptstyle 4} , x &-1 \
end{array}
$$
Полагаем $ f_2(x)= frac{scriptstyle 3}{scriptstyle 4} , x+1 $.
$$
begin{array}{rrrrr|l}
4x^3 +&{}0x^2 &+0x &-{}1 &&frac{scriptstyle 3}{scriptstyle 4}, x+1\
4x^3 +&frac{scriptstyle 16}{scriptstyle 3}, x^2 & & &
& overline{ frac{scriptstyle 16}{scriptstyle 3},x^{2}-frac{scriptstyle 64}{scriptstyle 9}, x+
frac{scriptstyle 256}{scriptstyle 27}} \
hline
&-frac{scriptstyle 16}{scriptstyle 3}, x^{2} & &{}-1 \
&-frac{scriptstyle 16}{scriptstyle 3}, x^2 &-frac{scriptstyle 64}{scriptstyle 9}, x & \
hline
& & frac{scriptstyle 64}{scriptstyle 9}, x & -1 \
& & frac{scriptstyle 64}{scriptstyle 9}, x & +frac{scriptstyle 256}{scriptstyle 27} \
hline
& & & — frac{scriptstyle 283}{scriptstyle 27}
end{array}
$$
Полагаем $ f_3(x)=frac{scriptstyle 283}{scriptstyle 27} $.

$ x_{} $ $ f_{}(x) $ $ f_{1}(x) $ $ f_{2}(x) $ $ f_{3}(x) $ $ {mathcal V}_x $ Комментарии
$ -infty $ $ +_{} $ $ +_{} $ $ 2_{} $ сначала устанавливаем
$ +infty $ $ +_{} $ $ +_{} $ $ +_{} $ $ +_{} $ $ 0_{} $ число вещественных корней,
$ 0_{} $ $ +_{} $ $ +_{} $ $ 1_{} $ затем положительных и отрицательных,
$ -1 $ $ +_{} $ $ +_{} $ $ +_{} $ $ 2_{} $ затем просто дробим
$ 1_{} $ $ +_{} $ $ +_{} $ $ +_{} $ $ 1_{} $ промежутки, отыскивая такие,
$ 2_{} $ $ +_{} $ $ +_{} $ $ +_{} $ $ +_{} $ $ 0_{} $ чтобы на каждом $ {mathcal V}_{a}-{mathcal V}_{b}=1 $

Ответ. Полином $ f_{}(x) $ имеет два различных вещественных корня, один на
интервале $ ]-1,0_{}[ $, другой — на $ ]1,2_{}[ $.

§

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



ЗДЕСЬ

Левая полуплоскость: устойчивость

Полином $ f(z) $ с комплексными коэффициентами называется устойчивым, если все его корни удовлетворяют условию $ {mathfrak Re}(z)<0 $.

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

Т

Теорема [Раус, Гурвиц]. Для устойчивости
полинома
$ f(z)=a_0z^n+a_1z^{n-1}+dots+a_n $ с вещественными коэффициентами и $ a_0 > 0 $ необходимо и достаточно, чтобы были выполнены неравенства

$$
a_1>0, left| begin{array}{ll} a_1 & a_3 \
a_0 & a_2
end{array}
right|>0,
left| begin{array}{lll} a_1 & a_3 & a_5\
a_0 & a_2 & a_4 \
0 & a_1 & a_3
end{array}
right|>0,dots,
left| begin{array}{lllcl} a_1 & a_3 & a_5 & dots & 0\
a_0 & a_2 & a_4 & dots & 0 \
0 & a_1 & a_3 & dots & 0 \
0 & a_0 & a_2 & dots & 0 \
dots & & & ddots & dots \
dots & & & dots & a_n
end{array}
right|>0 .
$$

Условия теоремы Рауса-Гурвица являются избыточными: примерно от половины неравенств можно избавиться. См.



Теорема Льенара-Шипара ).

Единичный круг

Единичным кругом на комплексной плоскости назовем круг $ |z|le 1 $.

Задача. Найти необходимые и достаточные условия на коэффициенты
полинома $ f(z)=a_0z^n+dots+ a_n $, при которых все его корни $ lambda_1,dots, lambda_n $
находятся внутри единичного круга, т.е. удовлетворяют условию $ |z|<1 $.

По аналогии с предыдущим случаем, иногда такой полином называют дискретно устойчивым; также употребляется и название устойчивый по Шуру.

Решить эту задачу можно сведением ее к задаче установления критерия
устойчивости некоторого вспомогательного полинома.

Т

Теорема. Замена переменной

$$ z = frac{w+1}{w-1} $$
производит взаимно-однозначное отображение внутренности единичного круга
плоскости
$ z $ в левую полуплоскость плоскости $ w $.

Т

Теорема. Полином $ f(z)=a_0z^n+dots+a_n $ имеет все свои корни
лежащими внутри единичного круга тогда и только тогда, когда полином

$$
F(w) = (w-1)^n fleft( frac{w+1}{w-1} right) =
a_0(w+1)^n+a_1(w+1)^{n-1}(w-1)+dots+a_n(w-1)^n
$$
будет устойчив.

П

Пример. Определить все вещественные значения параметра
$ {color{Red} alpha } $, при которых полином

$$f(z)=3,z^3+{color{Red} alpha } , z^2+z+2 $$
будет иметь все корни лежащими внутри единичного круга.

Решение. Строим полином из теоремы
$$
F(w)=underbrace{(6+{color{Red} alpha })}_{A_0}w^3+underbrace{(2+{color{Red} alpha })}_{A_1}w^2
+underbrace{(14-{color{Red} alpha })}_{A_2}w+underbrace{2-{color{Red} alpha }}_{A_3} .
$$
Теорема Льенара-Шипара дает условия устойчивости $ F(w) $
в виде
$$A_0>0, A_1>0, A_2>0, A_3>0, A_1A_2-A_0A_3>0 ; $$
и
$$A_0<0, A_1<0, A_2<0, A_3<0, A_1A_2-A_0A_3>0 .$$
Подставляя сюда выражения для коэффициентов, получим, что первая система ограничений
имеет решение $ -1< {color{Red} alpha } < 2 $, вторая же — несовместна.

Косвенной проверкой истинности полученного интервала могут служить его границы:
$$
f(z)equiv
left{ begin{array}{rl}
(3z+2)(z^2-z+1)
& npu {color{Red} alpha }=-1 ; \
(z+1)(3,z^2-z+2)
& npu {color{Red} alpha }=2 .
end{array}
right.
$$
В обоих случаях имеются корни, удовлетворяющие условию $ |z|=1 $: в первом
случае это будет комплексно-сопряженная пара
$ 1/2 pm {mathbf i} sqrt{3}/2 $,
во втором — корень $ (-1) $.

Ответ. $ -1< {color{Red} alpha } < 2 $.

Известен еще один результат, позволяющий решить поставленную задачу.

Т

Теорема [Шур, Кон]. Полином $ f(z)=a_0z^n+dots+a_n $ с вещественными коэффициентами имеет все свои корни лежащими внутри единичного круга тогда и только тогда, когда

$$
|mbox{ старший коэффициент } f(z) |>|mbox{ свободный член } f(z)| ,
$$
т.е. $ |a_0| > |a_n| $, и полином
$$
f_1(z) = frac{a_0f(z)-a_nf^{*}(z)}{z} quad npu quad f^{*}(z) = z^nf(1/z) equiv a_0+a_1z+dots+a_nz^n
$$
имеет все свои корни лежащими внутри единичного круга.

На первый взгляд, конструктивность этого результата не очень очевидна:
исходная задача для полинома $ f(z) $ сводится к аналогичной задаче для
полинома $ f_1(z) $. Обратим, однако, внимание на то, что полином
$$
begin{matrix}
f_1(z)&=& left[a_0(a_0z^n+dots+a_n)-a_n (a_0+a_1z+dots+a_nz^n) right] big/ z = \
&=& left[(a_0^2-a_n^2)z^n+(a_0a_1-a_{n-1}a_n)z^{n-1} + dots +
(a_0a_{n-1}-a_{1}a_n)z right] big/ z = \
&=& (a_0^2-a_n^2)z^{n-1}+(a_0a_1-a_{n-1}a_n)z^{n-2} + dots +
(a_0a_{n-1}-a_{1}a_n)
end{matrix}
$$
имеет степень меньшую, чем $ deg f $. Таким образом, алгоритм конструктивен
в том смысле, что он сводит исходную задачу к более простой. Применяя
к полиному $ f_1(z) $ снова критерий Шура-Кона, получим следующее необходимое
условие
$$
|mbox{ старший коэффициент } f_1(z) | > | mbox{ свободный член }
f_1(z)|
iff quad |a_0^2-a_n^2| > |a_0a_{n-1}-a_{1}a_n| ,
$$
при выполнении которого дальнейшему исследованию подлежит полином
$$
f_2(z) = frac{(a_0^2-a_n^2)f_1(z)-(a_0a_{n-1}-a_{1}a_n)f^{*}_1(z)}{z} .
$$
Продолжая процедуру, за конечное число шагов мы дойдем до полинома первой
степени. Окончательно, необходимые и достаточные условия нахождения
всех корней полинома $ f(z) $ степени $ n_{} $ внутри единичного круга получаются
объединением $ n_{} $ условий
$$
|mbox{ старший коэффициент } f(z) |>|mbox{ свободный член } f(z)|
,
$$
$$
|mbox{ старший коэффициент } f_1(z) | > |mbox{ свободный член } f_1(z)|
,
$$
$$
vdots qquad qquad qquad vdots
$$
$$
|mbox{ старший коэффициент } f_{n-1}(z) |>|mbox{ свободный член }
f_{n-1}(z)| .
$$

§

Пример на применение этой теоремы



ЗДЕСЬ.

Численные методы поиска корней полинома

Как упоминалось



ВЫШЕ, корни полинома $ f_{}(z) $, как правило,
не выражаются в радикалах уже при $ deg f=5 $ . Но даже в тех случаях, когда
выражаются, как, например,
$$lambda=frac{sqrt{5}-1 + sqrt{10- sqrt{20}}}{2} quad mbox{ для }
f(x)=x^4+2x^3-6x^2-2x+1 ,
$$
толку от такого представления мало: на каком интервале вещественной оси лежит $ lambda $?
Поэтому наряду с поиском аналитических формул для корней полиномов
практический интерес представляет нахождение их приближенных значений.
Эту задачу будем решать, в основном, для полиномов над $ mathbb R_{} $ (т.е. полиномов с вещественными коэффициентами), с которыми чаще всего и приходится иметь дело на практике.

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



ЗДЕСЬ. Имеются и другие способы поиска мнимых корней, (например, метод Греффе-Лобачевского), но я о них еще нескоро напишу.

Нас, прежде всего, будут интересовать именно вещественные корни полиномов. В дальнейшем переменную этих полиномов будем обозначать через $ x_{} $ и считать ее вещественной. Для поиска вещественных корней полинома, как правило, требуется их предварительно отделить, т.е. найти интервалы
$ ]a,b_{}[ $, каждый из которых содержит только один корень $ f_{}(x) $. Поиск такого интервала
можно производить разными способами, самый общий из которых изложен



ВЫШЕ. Однако, для предварительного понимания изложенных ниже методов, достаточно будет ориентироваться на теорему Больцано: полином имеет корень на $ ]a,b_{}[ $, если на концах интервала он принимает значения разных знаков.
Этот корень будет единственным, если дополнительно предположить, что функция $ f_{}(x) $ монотонна на $ ]a,b_{}[ $.
Последнее условие будет очевидно выполнено, если производная $ f^{prime}(x) $ не меняет знака на $ ]a,b_{}[ $, т.е. полином $ f^{prime}(x) $
не имеет корней на рассматриваемом интервале. Действительно, если
предположить существование двух корней у $ f_{}(x) $ на $ ]a,b_{}[ $, то, по соображениям, упомянутым



ЗДЕСЬ16), должна существовать точка этого интервала, в которой $ f^{prime}(x) $ обращается в нуль. Анализ знака $ f^{prime}(x) $ на $ ]a,b_{}[ $ часто удается произвести элементарными рассуждениями.

Метод Руффини-Хорнера

Метод Лагранжа (непрерывных дробей)

Метод Ньютона

Универсальный метод: подходит не только для полиномов.
Рассматривается



ЗДЕСЬ.

Метод Бернулли и его развитие

Подходит для полиномов в том числе и с комплексными коэффициентами (и мнимые корни тоже ищет). Не предполагает предварительного отделения корней. Рассматривается



ЗДЕСЬ.

Характеристический полином матрицы

рассматривается



ЗДЕСЬ

Полином нескольких переменных

рассматривается



ЗДЕСЬ

Задачи

Источники

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

Время на прочтение
5 мин

Количество просмотров 46K

Вычисление значения многочлена в точке является одной из простейших классических задач программирования.
При проведении различного рода вычислений часто приходится определять значения многочленов при заданных значениях аргументов. Часто приближенное вычисление функций сводится к вычислению аппроксимирующих многочленов.
Рядового читателя Хабрахабр нельзя назвать неискушенным в применении всяческих извращений. Каждый второй скажет, что многочлен надо вычислять по правилу Горнера. Но всегда есть маленькое «но», всегда ли схема Горнера является самой эффективной?

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

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

При вычислении значений многочленов очень широкое применение получило правило Горнера. Метод назван в честь британского математика Уильяма Джорджа Горнера.
В соответствии с этим правилом многочлен n-й степени:

{{P}_{n}}(x)={{a}_{0}}{{x}^{n}}+{{a}_{1}}{{x}^{n-1}}+...+{{a}_{n-1}}x+{{a}_{n}}

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

{{P}_{n}}(x)=(...(({{a}_{0}}x+{{a}_{1}})x+{{a}_{2}})x+...+{{a}_{n-1}})x+{{a}_{n}}.

Вычисление значения многочлена производится в порядке, определяемом скобками. Что имеем? Чтобы вычислить многочлен {{P}_{n}}(x) по схеме Горнера, надо выполнить n умножений и n-k сложений (здесь k – число коэффициентов многочлена, равных 0). Если {{a}_{0}}=1, то умножений будет n-1.
Можно показать, что для вычисления многочленов, общего вида нельзя построить схему более экономичную по числу операций, чем схема Горнера.
Самая большая привлекательность схемы Горнера состоит в простоте алгоритма для вычисления значения многочлена.

Исключения

При вычислении многочленов специального вида может потребоваться меньшее число операций, чем при применении универсальной схемы Горнера. Например, вычисление степени {{x}^{n}} по схеме Горнера означает последовательное перемножение n множителей и требует n-1 умножение. Однако каждый первый читатель скажет, что для вычисления, например, {{x}^{8}} нужно последовательно вычислить {{x}^{2}}=xcdot x, {{x}^{4}}={{x}^{2}}cdot {{x}^{2}}, {{x}^{8}}={{x}^{4}}cdot {{x}^{4}}, т.е. выполнить всего 3 умножения вместо 7.

А есть что-то еще, ведь схема Горнера самая экономичная?

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

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

Снова замечу, что такие методы вычислений целесообразны при вычислении значений многочлена {{P}_{n}}(x) для большого числа значений x. Выигрыш получается, за счет того, что первый этап для многочлена выполняется лишь один раз. Примером может послужить вычисление элементарных функций, где приближающий многочлен готовиться заранее.

В дальнейших рассуждениях, говоря о количестве операций для вычисления {{P}_{n}}(x), я буду иметь в виду сложность второго этапа вычислений.

Схема Дж.Тодта для многочленов 6 степени

Имеем следующий многочлен:

{{P}_{6}}(x)={{x}^{6}}+A{{x}^{5}}+B{{x}^{4}}+C{{x}^{3}}+D{{x}^{2}}+Ex+F.

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

{{p}_{1}}(x)=x(x+{{b}_{1}}),

{{p}_{2}}(x)=({{p}_{1}}+x+{{b}_{2}})({{p}_{1}}+{{b}_{3}}),

{{p}_{3}}(x)=({{p}_{2}}+{{b}_{4}})({{p}_{1}}+{{b}_{5}})+{{b}_{6}}.

Коэффициенты {{b}_{j}} определяются методом неопределенных коэффициентов исходя из условия {{p}_{3}}(x)equiv {{P}_{6}}(x). Из последнего условия составляем систему уравнений, приравнивая коэффициенты при равных степенях многочленов.

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

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

Схема Ю.Л. Кеткова

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

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

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

{{N}_{2}}(x)=x({{b}_{0}}+x),

{{N}_{4}}(x)=({{N}_{2}}+{{b}_{1}}+x)({{N}_{2}}+{{b}_{2}})+{{b}_{3}},

{{N}_{6}}(x)={{N}_{2}}{{N}_{4}}+{{b}_{4}}x+{{b}_{5}},

cdotscdotscdots

{{N}_{2k}}(x)=({{N}_{2}}+{{s}_{k}}{{b}_{2k-2}}){{N}_{2k-2}}+{{r}_{k}}{{b}_{2k-2}}x+{{b}_{2k-1}},

где {{r}_{k}}=0, {{s}_{k}}=1 при k –четном, и {{r}_{k}}=1, {{s}_{k}}=0, если k нечетное (k>2).

Все неизвестные коэффициенты находятся из равенства {{P}_{n}}(x)={{N}_{2k}}. В работах Кеткова для решения получающихся систем дается метод, дающий всегда действительные коэффициенты {{b}_{j}}.

Схемы В.Я. Пана

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

В.Я. Пан занимался вопросами оптимального вычисления многочленов. В частности, им предложено несколько схем для вычисления действительных многочленов, которые весьма близко подобрались к оценкам Э. Белаги. Приведу некоторые схемы Пана для действительных многочленов.
1. Схема для вычисления многочленов четвертой степени.
Рассматривается многочлен {{P}_{4}}(x)={{a}_{0}}{{x}^{4}}+{{a}_{1}}{{x}^{3}}+{{a}_{2}}{{x}^{2}}+{{a}_{3}}x+{{a}_{4}}.

Представим {{P}_{4}}(x) в виде:

g(x)=x(x+{{lambda }_{1}}),

{{P}_{4}}(x)equiv {{a}_{0}}left( left( g(x)+{{lambda }_{2}} right)left( g(x)+x+{{lambda }_{3}} right)+{{lambda }_{4}} right),

где

{{lambda }_{1}}=frac{{{a}_{1}}-{{a}_{0}}}{2{{a}_{0}}},{{lambda }_{2}}=frac{{{a}_{3}}}{{{a}_{0}}}-{{lambda }_{1}}frac{{{a}_{2}}}{{{a}_{0}}}+({{lambda }_{1}}+1)lambda _{1}^{2},

{{lambda }_{3}}=frac{{{a}_{2}}}{{{a}_{0}}}-{{lambda }_{1}}({{lambda }_{1}}+1)-{{lambda }_{2}},{{lambda }_{4}}=frac{{{a}_{4}}}{{{a}_{0}}}-{{lambda }_{2}}{{lambda }_{3}}.

2. Схема для вычисления {{P}_{n}}(x), nge 5.
Строим вспомогательные многочлены g(x), h(x), {{p}_{s}}(x):

g(x)=x(x+{{lambda }_{1}}),h(x)=g(x)+x,{{p}_{0}}(x)=x,

{{p}_{s}}(x)={{p}_{s-1}}(x)left( (g(x)+{{lambda }_{4s-2}})(h(x)+{{lambda }_{4s-1}})+{{lambda }_{4s}} right)+{{lambda }_{4s+1}}, s=1,2,…,k.

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

{{P}_{n}}(x)equiv {{a}_{0}}{{p}_{k}}(x), при n=4k+1,

{{P}_{n}}(x)equiv {{a}_{0}}x{{p}_{k}}(x)+{{lambda }_{n}}, при n=4k+2,

{{P}_{n}}(x)equiv {{a}_{0}}left( {{p}_{k}}(x)(g(x)+{{lambda }_{n-1}})+{{lambda }_{n}} right), при n=4k+3,

{{P}_{n}}(x)equiv {{a}_{0}}xleft( {{p}_{k}}(x)(g(x)+{{lambda }_{n-2}})+{{lambda }_{n-1}} right)+{{lambda }_{n}}, при n=4k+4,

Эта схема на втором этапе требует [n/2]+2 умножения и n+1 сложения.

Особенностью данной схемы является то, что коэффициенты {{lambda }_{j}} всегда существуют при nge 5 и действительных коэффициентах исходного многочлена.

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

Заключение

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

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

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

Литература

  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.

Содержание

  1. Полином Жегалкина. Методы построения.
  2. Метод неопределенных коэффициентов
  3. Метод треугольника Паскаля
  4. Преобразование ДНФ
  5. Преобразование СДНФ
  6. ДНФ, КНФ, СДНФ, СКНФ, полином Жегалкина
  7. Задачи и решения о представлении булевых функций
  8. Нормальные формы (КНФ, СКНФ, ДНФ и СДНФ): примеры решений
  9. Многочлен Жегалкина: примеры решений
  10. Решение задач на заказ
  11. Найти двумя способами полином функции заданной векторно

Полином Жегалкина. Методы построения.

Полином (многочлен) Жегалкина представляет собой полином, коэффициентами которого являются числа $0$ или $1$, причем в качестве операций умножения и сложения выступают соответственно конъюнкция и сумма по модулю $2$. Например, для булевой функции $fleft(x_1, x_2, x_3right)$ от трех переменных $x_1, x_2, x_3$ полином Жегалкина будет иметь следующий вид:

$$fleft(x_1, x_2, x_3right)=a_0bigoplus a_1x_1bigoplus a_2x_2bigoplus a_3x_3bigoplus a_<12>x_1x_2bigoplus a_<13>x_1x_3bigoplus a_<23>x_2x_3bigoplus a_<123>x_1x_2x_3.$$

Коэффициенты $a_0, a_1, dots , a_<123>in left<0, 1right>$, то есть могут принимать значения либо $0$, либо $1$ в зависимости от того, какое значение принимает булева функция $fleft(x_1, x_2, x_3right)$ на том или ином наборе значений переменных.

С помощью полинома Жегалкина можно представить любую булеву функцию, причем единственных образом. Поэтому можно сказать, что полином Жегалкина является еще одним способом представления булевых функций в алгебре операций $bigoplus $ — суммы по модулю $2$, $cdot $ — конъюнкции и константы $1$.

Операция $bigoplus $ имеет и другие названия: сумма Жегалкина, неравнозначность, исключающее ИЛИ-НЕ. Иногда, для удобства ее обозначения используют привычную запись сложения $+$, но не стоит путать с дизъюнкцией и, тем более, с обычной арифметической операцией сложения. Таблица истинности данной операции имеет вид:

$$begin<|c|c|>
hline
x & y & xbigoplus y \
hline
0 & 0 & 0 \
hline
0 & 1 & 1 \
hline
1 & 0 & 1 \
hline
1 & 1 & 0 \
hline
end$$

Сумма $xbigoplus y$ принимает истинное значение тогда и только тогда, когда истинно одно и только одно составляющее высказывание. Если сравнить таблицы истинности основных логических операций, то можно заметить, что $xbigoplus y=overline$. То есть операция сумма Жегалкина $bigoplus $ есть отрицание эквиваленции.

Для двух введенных операций $bigoplus , cdot $ (суммы по модулю 2 и конъюнкции) выполняются все логические законы:

  1. Коммутативность: $xbigoplus y=ybigoplus x$;
  2. Ассоциативность: $left(xbigoplus yright)bigoplus z=xbigoplus left(ybigoplus zright)$, то есть результат $xbigoplus ybigoplus z$ не зависит от расстановки скобок;
  3. Дистрибутивность: $xleft(ybigoplus zright)=xybigoplus xz$;
  4. $xbigoplus x=0$;
  5. $0bigoplus x=x$;
  6. $overline=xbigoplus 1$.

Для построения полинома Жегалкина можно использовать различные методы:

  • Метод неопределенных коэффициентов;
  • Метод треугольника Паскаля;
  • Преобразование ДНФ;
  • Преобразование СДНФ.

Метод неопределенных коэффициентов

Найдем полином Жегалкина для функции $fleft(x_1, x_2, x_3right)=left(x_1x_2vee x_3right)to <overline>_2$, используя метод неопределенных коэффициентов. Для этого сначала необходимо построить таблицу истинности данной булевой функции $fleft(x_1, x_2, x_3right)$.

$begin<|c|c|>
hline
x_1 & x_2 & x_3 & x_1x_2 & x_1x_2vee x_3 & fleft(x_1, x_2, x_3right)=left(x_1x_2vee x_3right)to <overline>_2 \
0 & 0 & 0 & 0 & 0 & 1 \
hline
0 & 0 & 1 & 0 & 1 & 1 \
hline
0 & 1 & 0 & 0 & 0 & 1 \
hline
0 & 1 & 1 & 0 & 1 & 0 \
hline
1 & 0 & 0 & 0 & 0 & 1 \
hline
1 & 0 & 1 & 0 & 1 & 1 \
hline
1 & 1 & 0 & 1 & 1 & 0 \
hline
1 & 1 & 1 & 1 & 1 & 0 \
hline
end$

Общий вид полинома Жегалкина для функции $fleft(x_1, x_2, x_3right)$ трех переменных $x_1, x_2, x_3$:

$$fleft(x_1, x_2, x_3right)=a_0bigoplus a_1x_1bigoplus a_2x_2bigoplus a_3x_3bigoplus a_<12>x_1x_2bigoplus a_<13>x_1x_3bigoplus a_<23>x_2x_3bigoplus a_<123>x_1x_2x_3.$$

Последовательно подставляем наборы значений переменных и находим коэффициенты $a_0, a_1, dots , a_<123>$.

$fleft(0, 0, 0right)=a_0=1;$

$fleft(0, 0, 1right)=a_0bigoplus a_3=1Rightarrow 1bigoplus a_3=1Rightarrow a_3=0;$

$fleft(0, 1, 0right)=a_0bigoplus a_2=1Rightarrow 1bigoplus a_2=1Rightarrow a_2=0;$

$fleft(0, 1, 1right)=a_0bigoplus a_2bigoplus a_3bigoplus a_<23>=0Rightarrow 1bigoplus 0bigoplus 0bigoplus a_<23>=0Rightarrow 1bigoplus a_<23>=0Rightarrow a_<23>=1;$

$fleft(1, 0, 0right)=a_0bigoplus a_1=1Rightarrow 1bigoplus a_1=1Rightarrow a_1=0.$

$fleft(1, 0, 1right)=a_0bigoplus a_1bigoplus a_3bigoplus a_<13>=1Rightarrow 1bigoplus 0bigoplus 0bigoplus a_<13>=1Rightarrow 1bigoplus a_<13>=1Rightarrow a_<13>=0;$

$fleft(1, 1, 0right)=a_0bigoplus a_1bigoplus a_2bigoplus a_<12>=0Rightarrow 1bigoplus 0bigoplus 0bigoplus a_<12>=0Rightarrow 1bigoplus a_<12>=0Rightarrow a_<12>=1;$

$fleft(1, 1, 1right)=a_0bigoplus a_1bigoplus a_2bigoplus a_3bigoplus a_<12>bigoplus a_<13>bigoplus a_<23>bigoplus a_<123>=0Rightarrow 1bigoplus 0bigoplus 0bigoplus 0bigoplus 1bigoplus 0bigoplus 1bigoplus a_<123>=0Rightarrow 1bigoplus a_<123>=0Rightarrow a_<123>=1;$

Подставляя найденные коэффициенты, получаем полином Жегалкина:

$$fleft(x_1, x_2, x_3right)=1bigoplus x_1x_2bigoplus x_2x_3bigoplus x_1x_2x_3.$$

Метод треугольника Паскаля

Построим полином Жегалкина для функции из предыдущего метода, используя треугольник Паскаля.

Поясним, как заполняется треугольник Паскаля. Верхняя строка треугольника задает вектор значений булевой функции $f=left(11101100right)$. В каждой строке, начиная со второй, любой элемент такого треугольника вычисляется как сумма по модулю $2$ двух соседних элементов предыдущей строки. Так, элементы второй строки: $1bigoplus 1=0, 1bigoplus 1=0, 1bigoplus 0=1, 0bigoplus 1=1, 1bigoplus 1=0, 1bigoplus 0=1, 0bigoplus 0=0$. Аналогично вычисляются элементы других строк.

Левой стороне треугольника Паскаля соответствуют наборы значений переменных исходной функции $fleft(x_1, x_2, x_3right)$. Соединяя знаком конъюнкции переменные, значения которых в наборе равны $1$, мы получим слагаемое в полиноме Жегалкина. Набору $left(000right)$ соответствует $1$, набору $left(001right)$ соответствует $x_3$, и т.д.

Поскольку единицам левой стороны треугольника соответствуют слагаемые $1, x_2x_3, x_1x_2, x_1x_2x_3$, то полином Жегалкина:

$$fleft(x_1, x_2, x_3right)=1bigoplus x_2x_3bigoplus x_1x_2bigoplus x_1x_2x_3.$$

Преобразование ДНФ

Используя основные законы алгебры логики, приведем сначала данную функцию к ДНФ.

Далее в полученной ДНФ необходимо «избавиться» от дизъюнкции, используя законы де Моргана:

Заменяем каждое отрицание $overline=1bigoplus x$ и применяем написанные выше логические законы, получаем:

$overline<<overline<<overline>_1<overline>_3>x>_2>=1bigoplus <overline<<overline>_1<overline>_3>x>_2=1bigoplus left(1bigoplus left(1bigoplus x_1right)left(1bigoplus x_3right)right)x_2=1bigoplus left(1bigoplus 1bigoplus x_3bigoplus x_1bigoplus x_1x_3right)x_2=1bigoplus left(x_3bigoplus x_1bigoplus x_1x_3right)x_2=1bigoplus x_2x_3bigoplus x_1x_2bigoplus x_1x_2x_3$ — полином Жегалкина.

Преобразование СДНФ

$begin<|c|c|>
hline
x_1 & x_2 & x_3 & fleft(x_1, x_2, x_3right) \
hline
0 & 0 & 0 & 1 \
hline
0 & 0 & 1 & 1 \
hline
0 & 1 & 0 & 1 \
hline
0 & 1 & 1 & 0 \
hline
1 & 0 & 0 & 1 \
hline
1 & 0 & 1 & 1 \
hline
1 & 1 & 0 & 0 \
hline
1 & 1 & 1 & 0 \
hline
end$

Для построения СДНФ по таблице истинности выбираем наборы, на которых функция $f$ принимает значение, равное 1. Если значение переменной в этом наборе равно 0, то она берется с отрицанием, если значение переменной равно 1, то переменная берется без отрицание. Соединив знаком конъюнкции переменные соответствующего набора, получим элементарную конъюнкцию. Тогда дизъюнкция всех таких элементарных конъюнкций есть СДНФ.

Чтобы построить полином Жегалкина через СДНФ, необходимо исключить операции дизъюнкции и отрицания, затем раскрыть скобки.

$fleft(x_1, x_2, x_3right)=<overline>_1<overline>_2<overline>_3bigoplus <overline>_1<overline>_2x_3bigoplus <overline>_1x_2<overline>_3bigoplus x_1<overline>_2<overline>_3bigoplus x_1<overline>_2x_3=left(1bigoplus x_1right)left(1bigoplus x_2right)left(1bigoplus x_3right)bigoplus left(1bigoplus x_1right)left(1bigoplus x_2right)x_3bigoplus left(1bigoplus x_1right)x_2left(1bigoplus x_3right)bigoplus x_1left(1bigoplus x_2right)left(1bigoplus x_3right)bigoplus x_1left(1bigoplus x_2right)x_3=1bigoplus x_3bigoplus x_2bigoplus x_2x_3bigoplus x_1bigoplus x_1x_3bigoplus x_1x_2bigoplus x_1x_2x_3bigoplus x_3bigoplus x_2x_3bigoplus x_1x_3bigoplus x_1x_2x_3bigoplus x_2bigoplus x_2x_3bigoplus x_1x_2bigoplus x_1x_2x_3bigoplus x_1bigoplus x_1x_3bigoplus x_1x_2bigoplus x_1x_2x_3bigoplus x_1x_3bigoplus x_1x_2x_3=1bigoplus x_2x_3bigoplus x_1x_2bigoplus x_1x_2x_3$ — полином Жегалкина.

Источник

ДНФ, КНФ, СДНФ, СКНФ, полином Жегалкина

На этой странице вы найдете готовые примеры задач, связанных с упрощением и преобразованием булевых функций к нормальным формам (ДНФ, КНФ), совершенным нормальным формам (СДНФ, СКНФ) и к каноническому многочлену Жегалкина.

Самый простой метод построения совершенной дизъюнктивной и конъюнктивной нормальных форм — с помощью таблиц истинности. Для перехода к ДНФ и КНФ используют методы эквивалентных преобразований, правила де Моргана, свойства поглощения, правило Блейка и т.п.

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

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

Другие примеры решений о булевых функциях:

Задачи и решения о представлении булевых функций

Нормальные формы (КНФ, СКНФ, ДНФ и СДНФ): примеры решений

Задача 1. Привести к КНФ и СКНФ.

$$((((Ato B)to bar A) to bar B) to bar C).$$

Задача 2. С помощью эквивалентных преобразований построить д.н.ф. функции:

$$f(x)=(overlinex_2 oplus x_3) cdot (x_1 x_3 to x_2) $$

Задача 3. Используя СКНФ, найдите наиболее простую формулу алгебры высказываний от четырех переменных, принимающую значение 0 на следующих наборах значений переменных, и только на них:

Задача 4. Привести данные выражения к ДНФ, пользуясь правилами де Моргана. Если возможно, сократить ДНФ, используя свойство поглощения и правило Блейка.

Многочлен Жегалкина: примеры решений

Задача 5. Представив функцию формулой над множеством связок $<&, ->$, преобразовать затем полученную формулу в полином Жегалкина функции $f(x)$ (используя эквивалентности):

$$f(x) = (x_1 vee x_2) cdot (x_2 | x_3)$$

Задача 6. Задана булева функция: $$ f(x_1, x_2, x_3) = overline vee ((x_1 wedge overline ) | overline<(x_2 | overline )>$$ А) Построить таблицу истинности, найти двоичную форму булевой функции и привести ее к СДНФ и СКНФ.
Б) Найти многочлен Жегалкина.

Задача 7. Для заданной логической функции перейти к полиному Жегалкина.

Решение задач на заказ

Выполняем для студентов очников и заочников решение заданий, контрольных и практических работ по любым разделам булевой алгебры, в том числе задачи по построению СДНФ, СКНФ, полинома Жегалкина на заказ. Также оказываем помощь в сдаче тестов. Подробное оформление, таблицы, графики, пояснение, использование специальных программ при необходимости. Стоимость примера от 100 рублей , оформление производится в Word, срок от 2 дней.

Источник

Найти двумя способами полином функции заданной векторно

Рассмотрим алгоритмы построения полинома Жегалкина булевой функции, заданной различными способами, а именно: совершенной ДНФ, произвольной ДНФ, формулой и таблицей истинности.

Алгоритм построения полинома Жегалкина по СовДНФ (основан на доказательстве теоремы о существовании полинома Жегалкина).

Начало. Задана совершенная ДНФ функции f(x1, …, xn).

Шаг 1. Заменяем каждый символ дизъюнкции на символ дизюнкции с исключением.

Шаг 2. Заменяем каждую переменную с инверсией x равносильной формулой x 1.

Шаг 3. Раскрываем скобки.

Шаг 4. Вычеркиваем из формулы пары одинаковых слагаемых.

Конец. Получен полином Жегалкина функции f(x1, …, xn).

Пример. Найдем полином Жегалкина мажоритарной булевой функции по ее совершенной ДНФ.

Алгоритм построения полинома Жегалкина по ДНФ (основан на равносильности K1 K2= K1 K2 K1K2).

Начало. Задана произвольная ДНФ функции f(x1, …, xn).

Шаг 1. Разбиваем ДНФ на пары конъюнкций, предпочтительно ортогональных (если число конъюнкций нечетно, одна из них остается без пары).

Шаг 2. Заменяем дизъюнкцию каждой пары конъюнкций K1 K2 формулой K1 K2 K1K2 или формулой K1 K2, если K1 и K2 ортогональны.

Шаг 3. В полученной формуле находим очередную дизъюнкцию A1 A2и заменяем ее формулой A1 A2 A1A2. Повторяем шаг 3 до тех пор, пока это возможно.

Шаг 4. Заменяем каждую переменную с инверсией x равносильной формулой x 1.

Шаг 5. Раскрываем скобки.

Шаг 6. Вычеркиваем из формулы пары одинаковых слагаемых.

Конец. Получен полином Жегалкина функции f(x1, …, xn).

Пример. Найдем полином Жегалкина мажоритарной функции по ДНФ.

Отметим, что полиномы мажоритарной функции, полученные в двух последних примерах, совпадают с точностью до порядка конъюнкций, и это естественно (по теореме о единственности полинома Жегалкина).

Способ 1 основан на предварительном преобразовании формулы в ДНФ (любым известным нам способом). Затем ДНФ преобразуется в полином Жегалкина по только что изученному алгоритму.

Примеры. Получим полиномы Жегалкина двух элементарных булевых функций: импликации и эквивалентности, представив их предварительно кратчайшими ДНФ.

Аналогично можно получить полиномы Жегалкина всех элементарных булевых функций (оставим читателю их вывод).

Константы 0 и 1, тождественная функция, а также конъюнкция ab и дизъюнкция с исключением ab уже являются полиномами Жегалкина. Полином Жегалкина инверсии a =1a.

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

Способ 2. Если булева функций задана произвольной формулой, то ее полином Жегалкина можно получить подстановкой в формулу вместо элементарных булевых функций их полиномов.

Пример. Найдем полином Жегалкина мажоритарной функции, заданной формулой:

[ подставим в формулу полином Жегалкина штриха Шеффера 1 ab при a=(xy) z, b=x y ]

[ подставим полиномы Жегалкина обратной импликации 1 b ab при a=xy, b=z и импликации 1 a ab при a=x, b= y ]

[ подставим полином Жегалкина эквивалентности 1 x y, раскроем скобки, и вычеркнем появившиеся при этом пары одинаковых слагаемых ]

[заменим инверсию ее полиномом Жегалкина, раскроем скобки и вычеркнем пары одинаковых слагаемых ]

Полином, естественно, совпадает с полученными ранее по совершенной и произвольной ДНФ.

Способ 3. Если булева функций задана произвольной формулой, то ее полином Жегалкина можно получить, используя специальное разложение функции.

Определение. Разложением Дэвио называется следующее разложение булевой функции f(x1, …, xn по переменной xi:

Разложение Дэвио непосредственно следует из разложения Шеннона, если учесть, что слагаемые в последнем ортогональны, и что x i=xi 1.

Пример. Найдем разложение Дэвио по переменной x мажоритарной булевой функции, заданной формулой.

Для получения полинома Жегалкина необходимо продолжить разложение подформул, не являющихся дизъюнкцией с исключением элементарных конъюнкций, пока не получится формула над <,, – >. Если в такой формуле заменить инверсии x на x 1, раскрыть скобки и вычеркнуть пары одинаковых слагаемых, то получится полином Жегалкина.

Пример. Продолжив предыдущий пример, получим полином Жегалкина мажоритарной функции. Для этого разложим подформулы (y z) / y и y z по переменной y:

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

Алгоритм построения полинома Жегалкина по таблице истинности (основан на методе неопределенных коэффициентов).

Продемонстрируем идею метода на примере произвольной булевой функции двух аргументов f(x,y). Представим ее полиномом Жегалкина в форме с коэффициентами

Подставив в данное равенство наборы значений аргументов, получим систему из четырех линейных уравнений с четырьмя неизвестными коэффициентами: c0, c1 c2, c3.

f(0,0) = c0 c10 c20 c30 0 = c0

f(0,1) = c0 c11 c20 c30 1 = c0 c1

f(1,0) = c0 c10 c21 c31 0 = c0 c2

f(1,1) = c0 c11 c21 c31 1 = c0 c1 c2 c3

Заметим, что наборы подставлены в равенство в естественном порядке, и система имеет треугольный вид: в первом уравнении обратились в ноль все слагаемые, следующие за c0, во втором – следующие за c1 и так далее. Значит, коэффициент c0 можно получить из первого уравнения и подставить его в остальные. Тогда c1 можно получить из второго уравнения, и так далее.

В общем случае для функции n аргументов получается система треугольного вида из 2 n линейных уравнений с 2 n неизвестными – коэффициентами полинома Жегалкина.

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

Из первого уравнения следует, что c0=0. Из второго и третьего уравнений следует, что c1=0 и c2=0, значит, c1z и c2y тождественно равны нулю. Из четвертого уравнения получаем c3=1, значит, надо вычислять значения конъюнкции c3yz в остальных уравнениях. Аналогично получаем c4=0, c5=1, c6=1 и c7=0. Найден вектор коэффициентов полинома Жегалкина мажоритарной функции π=00010110, и сам полином P=yz xz xy, который, естественно, совпадает с полученными ранее. •

Источник

Понравилась статья? Поделить с друзьями:
  • Как найти вызовы скорой помощи
  • Как найти камеры в кабинете
  • Как быстро найти инн организации
  • Как исправить искривление копчика
  • Как найти название ноутбука в системе