Как найти значение полинома в точке

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

Время на прочтение
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.

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

PLANETCALC, Вычисление значения полинома

Вычисление значения полинома

Комплексная точка, в которой требуется найти значение

Значение полинома в точке x

Калькулятор можно использовать для проверки решения уравнений, например этого: Уравнение 4-й степени или этого: Кубическое уравнение.

Содержание

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

§

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



ЗДЕСЬ.

Будем обозначать через $ 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_{}[ $ часто удается произвести элементарными рассуждениями.

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

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

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

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



ЗДЕСЬ.

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

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



ЗДЕСЬ.

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

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



ЗДЕСЬ

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

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



ЗДЕСЬ

Задачи

Источники

Heaven14

0 / 0 / 0

Регистрация: 26.11.2014

Сообщений: 4

1

Вычислить значение полинома в точке с помощью специальной функции и подстановкой. Сравнить результаты

27.11.2014, 16:50. Показов 6819. Ответов 2

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Вычислить значение полинома p(x)=x^3+8x^2+10x+4 в x=1.25 точке с помощью специальной функции и подстановкой. Сравнить результаты.

Matlab M
1
2
3
p=([1 8 10 4])
x=1.25
y=polyval(p,x)

P -вектор коэффициентов.Я же правильно понял?
Подстановка

Matlab M
1
2
3
str1='x^3+8x^2+10x+4'
x=1.25;
result=eval(str1);

Но подстановкой не выходит.Можете навести на верный путь?И дать совет как их сравнить?Или тут все в корне не верно?
Заранее спасибо!



0



illi2

19 / 19 / 9

Регистрация: 26.07.2013

Сообщений: 51

27.11.2014, 17:14

2

Может метод подстановки – это просто присвоить значение переменной x и вычислить значение полинома в этой точке. Что-то вроде этого:

Matlab M
1
2
3
4
5
6
p=([1 8 10 4]);
x=1.25;
y=polyval(p,x)
result = x^3+8*x^2+10*x+4;
% Проверка:
y - result



1



0 / 0 / 0

Регистрация: 26.11.2014

Сообщений: 4

28.11.2014, 09:00

 [ТС]

3

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



0



Материал из MachineLearning.

Перейти к: навигация, поиск

Содержание

  • 1 Полином в каноническом виде
  • 2 Способ вычисления полинома в точке
  • 3 Анализ метода
    • 3.1 Сложность вычислений
    • 3.2 Погрешность интерполяции
    • 3.3 Выбор узлов интерполяции
  • 4 Вычислительный эксперимент
    • 4.1 Пример: Интерполяция синуса
  • 5 Рекомендации программисту
    • 5.1 Предварительные настойки
    • 5.2 Использование программы
  • 6 Вывод
  • 7 Прикреплённые файлы
  • 8 Литература
  • 9 Смотри также
  • 10 Ссылки

Интерполяция — приближение одной функции другой функцией.

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

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

Полином в каноническом виде

Известно, что любая непрерывная на отрезке [a,b] функция f(x) может быть хорошо приближена некоторым полиномом Pn(x).
Справедлива следующая Теорема (Вейерштрасса): Для любого eps>0 существует полином Pn(x) степени n=n(eps), такой, что max_{x in [a,b]}|f(x)-P_n(x)|<eps

В качестве аппроксимирующей функции выберем полином степени n в каноническом виде:

f(x)=P_n(x)=c_0+c_1x+c_2x^2+ ldots + c_nx^n

Коэффициенты полинома c_i определим из условий Лагранжа P_n(x_i)=y_i, i=1, ldots, n, что с учётом предыдущего выражения даёт систему линейных алгебраических уравнений с n+1 неизвестными:


begin{matrix}
c_0 + c_1x_0 + c_2x_0^2 + ldots + c_nx_0^n = y_0 \
c_0 + c_1x_1 + c_2x_1^2 + ldots + c_nx_1^n = y_1 \
ldots ldots ldots ldots ldots \
c_0 + c_1x_n + c_2x_n^2 + ldots + c_nx_n^n = y_n
end{matrix}

Обозначим систему таких уравнений символом (*) и перепишем её следующим образом:

sum_{p=0}^n c_i^p = y_i, quad i=1, ldots, n

или в матричной форме: mathbf{Ac}=mathbf{y}, где mathbf{c} – вектор-столбец, содержащий неизвестные коэффициенты c_i, mathbf{y} – вектор-столбец, составленный из табличных значений функции y_i, а матрица mathbf{A} имеет вид:

 mathbf{A} = 
begin{pmatrix}
1 & x_0 & x_0^2 & ldots & x_0^n \
1 & x_1 & x_1^2 & ldots & x_1^n \
ldots & ldots & ldots & ldots & ldots \
1 & x_n & x_n^2 & ldots & x_n^n \
end{pmatrix}

Система линейных алгебраических уравнений (*) относительно неизвестных c_i иметь единственное решение, если определитель матрицы mathbf{A} отличен от нуля.

Определитель матрицы mathbf{A} называют определителем Вандермонда, его можно вычислить по следующей формуле:

mathbf{detA} = prod_{i,j=0 \ i neq j }^n (x_i - x_j) neq 0

Число узлов интерполяционного полинома должно быть на единицу больше его степени. Это понятно из интуитивных соображений: через 2 точки можно провести единственную прямую, через 3 – единственную параболу и т.д. Но полином может получиться и меньшей степени. Т.е. если 3 точки лежат на одной прямой, то через них пройдёт единственный полином первой степени (но это ничему не противоречит: просто коэффициент при старшей степени равен нулю).

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

Зависимость числа обусловленности матрицы от количества узлов интерполяции

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

Однако при практической реализации мы получим полиномы различной точности аппроксимации из-за погрешности вычислений аппаратуры.

Способ вычисления полинома в точке

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

Первый способ. Можно посчитать значение a1x и сложить с a0. Далее найти a2x2, сложить с полученным результатом, и так далее. Таким образом, на j-ом шаге вычисляется значение ajxj и складывается с уже вычисленной суммой a_0 + a_1x + ldots + a_{j-1}x^{j-1}.

Вычисление значения ajxj требует j операций умножения. Т.е. для подсчёта многочлена в заданной точке требуется (1 + 2 + … + n) = n(n+1)/2 операций умножения и n операций сложения. Всего операций в данном случае: Op1 = n(n+1)/2 + n.

Второй способ. Полином можно также легко вычислить с помощью так называемой схемы Горнера: P_n(x) = (ldots ((a_nx + a_{n-1})x + a_{n-2})x + ldots)x + a_0

Для вычисления значения во внутренних скобках anx + an-1 требуется одна операция умножения и одна операция сложения. Для вычисления значения в следующих скобках (anx + an-1)x + an-2 требуется опять одна операция умножения и одна операция сложения, т.к. anx + an-1 уже вычислено, и т.д.

Тогда в этом способе вычисление Pn(x) потребует n операций умножения и n операций сложения, т.е. сложность вычислений Op2 = n+n = 2n.
Ясно, что Op2 << Op1.

Анализ метода

Сложность вычислений

Оценка сложности интерполирования функции складывается из количества операций для решения системы линейных алгебраических уравнений (СЛАУ) и нахождения значения полинома в точке.

Сложность решения СЛАУ, например, методом Гаусса для матрицы размера nxn: 2n3/3, т.е. O(n3).

Для нахождения полинома в заданной точке требуется n умножений и n сложений. В результате сложность метода: O(n3).

Погрешность интерполяции

Предположим, что на отрезке интерполирования [a,b] функция f(x) n раз непрерывно-дифференцируема. Погрешность интерполяции складывается из погрешности самого метода и ошибок округления.

Ошибка приближения функции f(x) интерполяционным полиномом n-ой степени Pn(x) в точке x определяется разностью: Rn(x) = f(x) – Pn(x).

Погрешность Rn(x) определяется следующим соотношением:

R_n(x) = frac{f^{n+1}(xi)}{(n+1)!}omega_n(x)

Здесь f^{n+1}(xi) – производная (n+1)-го порядка функции f(x) в некоторой точке xi in [a,b], а функция omega_n(x) определяется как

omega_n(x)=(x-x_0)(x-x_1)ldots (x-x_n).

Если максимальное значение производной fn+1(x) равно M_{n+1} = sup_{x in [x_0, x_n]} left| f^{n+1}(x) right| , то для погрешности интерполяции следует оценка: left| R_n(x) right| =  frac{M_{n+1}}{(n+1)!}omega_n(x).

При реализации данного метода на ЭВМ ошибкой интерполяции En(x) будем считать максимальное уклонение полинома от исходной функции на выбранном промежутке: E_n(x) = max_{x in [a, b]} left| f(x) - P_n(x) right| .

Выбор узлов интерполяции

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

Введём следующее определение: полиномом Чебышева называется многочлен вида

Tk(x) = cos(k arccos x), |x|≤1.

Известно (см. ссылки литературы), что если узлы интерполяции x0, x1,…,xn являются корнями полинома Чебышева степени n+1, то величина max_{x in [a,b]} left| omega_{n+1}(x) right| принимает наименьшее возможное значение по сравнению с любым другим выбором набора узлов интерполяции.

Очевидно, что в случае k = 1 функция T1(x), действительно, является полиномом первой степени, поскольку T1(x) = cos(arccos x) = x.

В случае k = 2 T2(x) тоже полином второй степени. Это нетрудно проверить. Воспользуемся известным тригонометрическим тождеством: cos2θ = 2cos²θ – 1, положив θ = arccos x.

Тогда получим следующее соотношение: T2(x) = 2x² – 1.

С помощью тригонометрического тождества cos(k + 1)θ = 2cosθcos – cos(k – 1) легко показать, что для полиномов Чебышева справедливо реккурентное соотношение:

Tk+1(x) = 2xTk(x) – Tk-1(x)

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

Корни полинома Чебышева легко находятя из уравнения: Tk(x) = cos(k arccos x) = 0. Получаем, что уравнение имеет k различных корней, расположенных на отрезке [-1,1]: x_m = cos frac{2m+1}{2k}pi, , m = 0,1, cdots, k-1, которые и следует выбирать в качестве узлов интерполирования.

Нетрудно видеть, что корни на [-1,1] расположены симметрично и неравномерно – чем ближе к краям отрезка, тем корни расположены плотнее. Максимальное значение модуля полинома Чебышева равно 1 и достигается в точках cos frac{m}{k}pi.

Если положить omega_k(x) = frac1{2^{k-1}}T_k(x), то для того, чтобы коэффициент при старшей степени полинома ωk(x) был равен 1, max_{x in [-1,1]}omega_k(x) = frac1{2^{k-1}}.

Известно, что для любого полинома pk(x) степени k с коэффициентом, равным единице при старшей производной верно неравенство max_{x in [-1,1]}p_k(x) geq frac1{2^{k-1}}, т.е. полиномы Чебышева являются полиномами, наименее уклоняющимися от нуля.

Вычислительный эксперимент

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

Далее строится СЛАУ, которая решается методом Гаусса. На выходе получаем коэффициенты для полинома и ошибку аппроксимации.

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

Пример: Интерполяция синуса

Попробуем интерполировать функцию y = sin(x) на отрезке [1, 8.5]. Выберем узлы интерполяции: {1.1, 2, 4.7, 7.5, 8.5}

Полученный в результате интерполяции полином отображён на рисунке (синим цветом показан график y = sin(x), красным – интерполяционного полинома)

Изображение:Report1-fig2.gif

Ошибка интерполяции в этом случае: 0.1534

Давайте посмотрим, что произойдёт, если выбрать равномерно стоящие узлы {2, 3.5 5, 6.5, 8} для той же функции на том же отрезке.

На отрезке [3, 6] приближение, бесспорно, стало лучше. Однако разброс на краях очень большой. Ошибка интерполяции: 2.3466.

Изображение:Report1-fig3.gif

Наконец, выберем узлы интерполяции в соответствии с Чебышевским алгоритмом. Получим их по следующей формуле (просто сделаем замену переменной):
x_m = frac{a+b}{2} + frac{b-a}{2}cos frac{pi(2m-1)}{2n}, , m=1,2, cdots, n.
y_m = y(x_m)

В нашем случае [a,b] – отрезок [1, 8.5], y = cosx, n+1 – количество узлов.

Остаётся открытым вопрос, какое количество узлов выбрать.

  • При значении n меньше 3 ошибка аппроксимации получается более 10.6626.
  • При n = 4: приближение лучше (ошибка равна 1.0111),
  • при n = 5: ошибка аппроксимации 0.2797

График функций при n = 4 выглядит следующим образом:

Изображение:Report1-fig4-4pts.gif

Продолжим исследования.

  • n = 6: ошибка аппроксимации 1.0233.

При n = 7 ошибка аппроксимации принимает наименьшее из полученных ранее значений (для данного промежутка): 0.0181. График синуса (обозначен синим цветом) и аппроксимационного полинома (обозначен красным цветом) представлены на следующем графике:

Изображение:Report1-fig4-7pts.gif

Что интересно, если при этом же количестве узлов выбирать их на отрезке [1, 8], то ошибка аппроксимации становится ещё меньше : 0.0124. График в этом случае выглядит так:

Изображение:Report1-fig4-7-2pts.gif

При выборе большего количества узлов ситуация ухудшается: мы стараемся слишком точно приблизить исходную функцию:

Изображение:Report1-fig4-8pts.gif

Ошибка аппроксимации будет только расти с увеличением числа узлов.

Как видим, наилучшее приближение получается при выборе узлов по методу Чебышева. Однако рекомендаций, какое количество узлов является оптимальным, нет – это определяется только экспериментальным путём.

Рекомендации программисту

Программа написана на языке C++ с использованием библиотеки линейной алгебры UBlas, которая является частью собрания библиотек Boost. Скачать исходный текст программы можно здесь [2.55Кб].

Предварительные настойки

Чтобы воспользоваться программой, необходимо сделать следующее:
1. Определиться с функцией, которую вы собираетесь интерполировать
2. Создать текстовый файл (например, vec.txt), в первой строчке которого через пробел размещены узлы интерполяции, а во второй – значения выбранной функции в этих узлах.

Например, функция y = sin(x):

0.74 2 -3.5
0.6743 0.9093 0.351

3. В .cpp файле программы в функцию double f(double x) вместо строки return прописать возвращаемое исходной функцией значение. Например, для функции y = sin(x):

return sin(x);

4. В функции int main() исходного кода присвоить переменной char* flname путь к входному файлу с данными. В нашем случае char* flname = “vec.txt”;

Использование программы

В программе реализованы следующие основные функции:

  • double f(double x), описание которой было дано выше
  • int load(char *filename, vector<double> &x, vector<double> &y) – загрузка узлов интерполяции в переменную x и значения функции в этих узлах в переменную y текстового файла filename. В случае удачной загрузки данных из файла функция возвращает 0.
  • void matrix2diag(matrix<double> &A, vector<double> &y) – приводит матрицу A к треугольному виду. y – столбец правой части (также изменяется вместе с матрицей A).
  • void SolveSystem(matrix<double> &A, vector<double> &y, vector<double> &coef) – решить СЛАУ (A – треугольная матрица, y – столбец правой части, coef – в этот вектор заносится решение СЛАУ)
  • double errapprox(vector<double> coef, double a, double b, double h) – возвращает ошибку аппроксимации полиномом исходной функции.

На вход функции подаются следующие параметры:

    • vector coef – вектор коэффициентов интерполяционного полинома, который получается в ходе решения СЛАУ
    • double a, double b – границы промежутка интерполяции [a, b]
    • double h – шаг, с которым «пробегаем» промежуток [a, b]
  • int outpolyn(char** filename, vector<double> coef) – сохраняет коэффициенты полинома coef в файл filename. В случае удачного сохранения функция возвращает ‘0’.

После запуска программы на экране появляются коэффициенты интерполяционного полинома и ошибка аппроксимации.

Вывод

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

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

Прикреплённые файлы

Программная реализация на языке С++ (исходный текст) [2.55Кб]

Литература

  • Н.С. Бахвалов, Н.П. Жидков, Г.М. Кобельков. Численные методы. Изд-во “Лаборатория базовых знаний”. Москва. 2003.
  • И.С. Березин, Н.П. Жидков. Методы вычислений. Изд. ФизМатЛит. Москва. 1962.
  • Дж. Форсайт, М.Мальком, К. Моулер. Машинные методы математических вычислений. Изд-во “Мир”. Москва. 1980.

Смотри также

  • Проблема выбора узлов для интерполяции
  • Ошибки вычислений
  • Метод наименьших квадратов
  • Интерполяционный многочлен Лагранжа
  • Практикум ММП ВМК, 4й курс, осень 2008

Ссылки

  • Собрание библиотек Boost

Добавить комментарий