Границы корней многочленов
ВВЕДЕНИЕ
1. МЕТОДЫ НАХОЖДЕНИЯ ГРАНИЦ МНОГОЧЛЕНА
1.1. Метод хорд и касательных (комбинированный)
1.2. Метод итераций
1.3. Метод половинного деления (метод бисекции)
1.4. Метод разложения на множители
2. СХЕМА ГОРНЕРА
3.УНИВЕРСАЛЬНЫЙ МЕТОД НАХОЖДЕНИЯ ГРАНИЦ МНОГОЧЛЕНА. МЕТОД НЬЮТОНА
4. ТЕОРЕМА ШТУРМА
5. РЕШЕНИЕ ЗАДАЧ НА ВЫЧИСЛЕНИЕ ГРАНИЦ МНОГОЧЛЕНА
ЗАКЛЮЧЕНИЕ
СПИСОК ЛИТЕРАТУРЫ
ВВЕДЕНИЕ
Способ нахождения корней линейных и квадратичных многочленов, то есть способ решения линейных и квадратных уравнений, был известен ещё в древнем мире. Поиски формулы для точного решения общего уравнения третьей степени продолжались долгое время (следует упомянуть метод, предложенный Омаром Хайямом), пока не увенчались успехом в первой половине XVI века в трудах Сципиона дель Ферро, Никколо Тарталья и Джероламо Кардано. Формулы для корней квадратных и кубических уравнений позволили сравнительно легко получить формулы для корней уравнения четвертой степени.[3,c.67]
То, что корни общего уравнения пятой степени и выше не выражаются при помощи рациональных функций и радикалов от коэффициентов было доказано норвежским математиком Нильсом Абелем в 1826 г. Это совсем не означает, что корни такого уравнения не могут быть найдены. Во-первых, в частных случаях, при некоторых комбинациях коэффициентов корни уравнения при некоторой изобретательности могут быть определены. Во-вторых, существуют формулы для корней уравнений 5-й степени и выше, использующие, однако, специальные функции — эллиптические или гипергеометрические (см., к примеру, корень Бринга).
В случае, если все коэффициенты многочлена рациональны, то нахождение его корней приводится к нахождению корней многочлена с целыми коэффициентами. Для рациональных корней таких многочленов существуют алгоритмы нахождения перебором кандидатов с использованием схемы Горнера, причем при нахождении целых корней перебор может быть существенно уменьшен приемом чистки корней. Также в этом случае можно использовать полиномиальный LLL-алгоритм. Для приблизительного нахождения (с любой требуемой точностью) вещественных корней многочлена с вещественными коэффициентами используются итерационные методы, например, метод секущих, метод бисекции, метод Ньютона. Количество вещественных корней многочлена на интервале может быть оценено при помощи теоремы Штурма.[8,c.56]
1. МЕТОДЫ НАХОЖДЕНИЯ ГРАНИЦ МНОГОЧЛЕНА
Численные методы позволяют найти решения определенных задач, заранее зная, что полученные результаты будут вычислены с определенной погрешностью, поэтому для многих численных методов необходимо заранее знать «уровень точности», которому будет соответствовать полученное решение.
В этой связи задача нахождения корней многочлена вида (1)
F(x)=a0+a1x+a2x2+…+anxn (1)
представляет особый интерес,
т.к. формулы нахождения корней даже
кубического уравнения
Для нахождения корней многочлена существует несколько численных методов, но мы остановимся на тех из них: методе итераций, методе хорд и касательных и методе половинного деления.
1.1. Метод хорд и касательных (комбинированный)
Данный метод основан на построении схематического графика функции, определении интервалов его пересечения с осью абсцисс и последующим «сжатием» этого интервала при помощи строимых хорд и касательных к графику этой функции.
Надо отметить, что существуют также отдельно метод хорд (дает значение корня с недостатком) и метод касательных (с избытком). Однако преимущество комбинированного метода заключается в «двустороннем сжатии» рассматриваемого отрезка.[2,c.54]
Рассмотрим следующий случай:
дана функция F(x) и построен ее график;
определена допустимая погрешность Q
|
Рис.1
на основании графика определен отрезок [a,b], на котром график функции пересекает ось абсцисс, следовательно, на этом отрезке (рис.1)
существует корень рассматриваемого многочлена. (обозначим его через A)
Дальнейший алгоритм сводится к следующим действиям:
строим касательную к графику функции в точке F(b)
вычисляем координату х пересечения касательной с осью абсцисс по формуле (3) и обозначаем ее через b’
строим к графику функции хорду, проходящую через точки F(a) и F(b).
Вычисляем точку пересечения хорды с осью абсцисс по формуле (2) и обозначаем ее через a'.
a’=a- Da , где (2)
b’=b- Db , где (3)
Таким образом мы получаем новый отрезок [a’ , b’], котроый (по определениям хорды и касательной) по-прежнему содержи решение уравнения A.
Теперь принимаем отрезок [a’,b’] за новый отрезок [a,b] и повторяем шаги 1-4 до тех пор, пока разность F(b)-F(a) не станет меньше первоначально заложенной погрешности Q. Отметим также, что после этого рекомендуется в качестве искомого решения взять среднее арифметическое F(a) и F(b).
Замечание к методу хорд и касательных. В рассмотренном случае производная F’(x)>0, т.е. график «выпуклый» и b>a. При работе с каждым отдельным случаем необходимо находить производные функции первого и второго порядков и, сообразуясь с ее знаком, определять a и b.
Способ хорд |
Способ касательных | |
F’(x)F’’(x) > 0 |
С недостатком |
С избытком |
F’(x)F’’(x) < 0 |
С ибытком |
С недостатком |
Таким образом, если хорда (касательная) дает значение корня с избытком, то этот корень берется с качестве новой правой границы, а если с недостатком – то левой. В обоих случаях точный корень лежит между точками пересечения хорды и касательной с осью абсцисс.[5,c.90]
Замечание 2 к методу хорд и касательных. Так как для решения поставленной задачи требуется отыскание производной функции F(x), метод хорд и касательных достаточно трудно реализуем на программном уровне, т.к. правила вычисления производных в общем виде довольно громоздки для «понимания» ЭВМ; при непосредственном указании производной для каждой степени многочлена память компьютера серьезно загружается, что очень замедляет работу, а задание функции и, соответственно, ее производной непосредственно в программном коде – недопустимо. Однако, используя данный метод, сходимость интервала к корню происходит наиболее быстро, особенно если совместить метод хорд и касательных с методом бисекции, т.к. середина нового отрезка зачастую дает вполне удовлетворительное решение.[9,c.12]
1.2. Метод итераций
Пятый шаг алгоритма хорд и касательных определял возврат к первому шагу и последующую цикличность хода, т.е. метод хорд и касательных являлся итерационным. Другой метод, также основанный на повторах так и был назван – «метод итераций».[2,c.7] Суть его заключается в следующем:
дана функция F(x);
определена допустимая погрешность Q;
определен некоторый интервал [ a , b ], точно содержащий решение уравнения.
Определено некоторое число z, принадлежащее [ a , b ] (назовем z «нулевым приближением»)
Для получения следующего
приближения подставим в
x1=F(z) (4)
и, продолжая аналогично,
x2=F(x1)
x3=F(x2) (5)
…
xn=F(xn-1)
Таким образом, получаем некоторую последовательность, и, если ее предел limxn=A, n®v (6)
то А является искомым корнем.
Данный метод является исключительно аналитическим, что упрощает его машинную реализацию, однако содержит следующие недостатки:
необходимость выбора нулевого приближения (ведь то, что интуитивно для человека, для ЭВМ может стать довольно сложной задачей)
наконец, полученная последовательность просто может не сходиться, и тогда решение найдено не будет.
Эти контраргументы стали основанием для отклонения метода итераций при выборе алгоритмизируемого метода.[4,c.71]
1.3. Метод половинного деления (метод бисекции)
рис.2
Метод половинного деления (известный еще и как «метод деления отрезка пополам») также является рекурсивным, т.е. предусматривает повторение с учетом полученных результатов .[3,c.43]
Суть метода половинного
деления заключается в
дана функция F(x);
определена допустимая погрешность Q;
определен некоторый интервал [ a , b ], точно содержащий решение уравнения.
Вычисляем значение координаты
Е, беря середину отрезка [a , b], т.е. Е= (a
+ b ) / 2
Вычисляем значения F(a), F(b), F(E), и осуществляем следующую проверку: Если F(E)>Q, то корень с указанной точностью найден. Если F(E)<Q, т.е. необходимая точность еще не достигнута, то формируем два интервала: [a , E] и [E , b] проверяем знаки F(a), F(b), F(E). На концах одного из этих интервалов знаки функции будут одинаковы, а на друго различны (иначе Е - искомый корень). И именно то интервал, на концах которого знаки различны, мы берем за основу при следующей итерации, т.е. приравниваем к Е либо a, либо b.
Переходим к пункту 1.
Таким образом, мы получаем метод, хотя и достаточно медленный (впрочем, при неудачном выборе нулевого приближения в методе итераций поиск решения может затянуться на еще более долгое время, да и к тому же неизвестно, приведет ли весь ход вычислений к ответу), но зато вполне надежный и простой метод, не требующий решения дополнительных задач, вроде вычисления производной, а рекурсивность самого алгоритма позволяет получить очень компактный и легко читаемый код. Именно поэтому метод половинного деления и был выбран для реализации на программном уровне.
1.4. Метод разложения на множители
Данный метод является полностью аналитическим, однако полностью зависим от других. Главным его преимуществом является то, что в данном методе не происходит потери кратных корней. Поясним на примере:
Пусть дан многочлен F(x) =
2x3-11x2+20x-12
Его можно записать в виде:
F(x) = (x+2)2(2x-3)
У многочлена n-степени, как известно, n корней, а из (12) следует, что корнями F(x) являются –2 и 1,5, причем корень –2 является кратным, т.е. фактически это два одинаковых корня. При отыскании же корней любым из вышеописанных методов «второй» корень –2 будет потерян, т.к. график функции будет иметь лишь две точки пересечения с осью абсцисс. [5, c.41]
Чтобы избежать этого применяется метод разложения на множители. Суть его заключается в следующем: каждый многочлен вида (1) можно представить в виде (x+h1)(x+h2)…(x+hn)*H = 0 (13) ,
или F(x) = (x+h)(bn-1xn-1+…b1)+b0
где h1…hn – корни уравнения, а Н – произведение множителей х, вынесенных за скобки ( Н никак не влияет на уравнение, т.к. от него избавляются, деля на Н обе части (13). При этом не исключено, что некоторые h могут быть взаимно равны, что и свидетельствует о наличии кратного корня.
Для вычисления значений новых коэффициентов в (14) используются формулы:
bn=an
bn-1=bnh+an-1
bn-2=bn-1h+an-2
…
Таким образом, алгоритм этого метода выглядит следующим образом:
Определить границы корней уравнения;
При помощи любого из вышеописанных методов найти один корень уравнения;
Применяя формулы (14) и (15) сформировать новый многочлен степени, на 1 меньшей предыдущего.
Вернуться к пункту 2.
Повторять до тех пор, пока степень многочлена не обнулится.[3,c.11]
2.СХЕМА ГОРНЕРА
Разделить с остатком многочлен f (x) на ненулевой многочлен g (x) - это значит представить f (x) в виде f (x) =g (x) s (x) +r (x), где s (x) и r (x) -многочлены и либо r (x) =0, либо ст. r (x) < ст. g (x). S (x) назовем неполным частным, а r (x) - остатком при делении f (x) на g (x).
Неполное частное при делении можно найти с помощью простого правила, называемого схемой Горнера, которое, кстати, позволяет найти и остаток.[4,c.29]
Пусть f (x) =anxn+an-1xn-1+ … +a1x+a0, an?0 - многочлен n-й степени. При делении его на x - c мы получим неполное частное s (x) и остаток r, т.е. f (x) = (x - c) s (x) + r. Так как ст. f (x) = n, а ст. (x - c) = 1, то
ст. s (x) = n - 1, т.е. s (x) = bn-1xn-1 + bn-2xn-2 + … + b1x+ b0, bn-1 ? 0. Таким образом, имеем равенство:
anxn+an-1xn-1+ … +a1x+a0 = (x - c) (bn-1xn-1+bn-2xn-2+ …+b1x+b0) +r.
Многочлены, стоящие в левой и правой частях этого соотношения, равны, а значит, равны их соответствующие коэффициенты. Приравняем их, раскрыв предварительно скобки и приведя подобные члены в правой части данного равенства. Получим:
a= bn-1,a-1 = bn-2 - cbn-1,a-2 = bn-3 - cbn-2,
a2 = b1 - cb2,a1 = b0 - cb1,a0 = r - cb0.
Напомним, что требуется найти неполное частное, т.е. его коэффициенты, и остаток.
Выразим их из полученных равенств:
bn-1 = an,
b n-2 = cbn-1 + an-1,b n-3 = cbn-2 + a n-2,
b1 = cb2 + a2,b0 = cb1 +a1,r = cb0 + a0.
Мы нашли формулы, по которым можно вычислять коэффициенты неполного частного s (x) и остаток r. При этом вычисления оформляются в виде следующей таблицы; она называется схемой Горнера.
Таблица 1.
Коэффициенты f (x)
an |
an-1 |
an-2 |
… |
a0 | |
|
c |
bn-1 |
bn-2 = cbn-1+ an-1 |
bn-3 = cbn-2+an-2 |
… |
r = cb0 + a0 |
Коэффициенты s (x) остаток
В первую строку этой таблицы записывают подряд все коэффициенты многочлена f (x), оставляя первую клетку свободной. Во второй строке в первой клетке записывают число c.
Остальные клетки этой строки заполняют, вычисляя один за другим коэффициенты неполного частного s (x) и остаток r. Во второй клетке записывают коэффициент bn-1, который, как мы установили, равен an.
Коэффициенты, стоящие в каждой последующей клетке, вычисляются по такому правилу: число c умножается на число, стоящее в предыдущей клетке, и к результату прибавляется число, стоящее над заполняемой клеткой. Чтобы запомнить, скажем, пятую клетку, т.е. найти стоящий в ней коэффициент, нужно c умножить на число, находящееся в четвертой клетке, и к результату прибавить число, стоящее над пятой клеткой.
Разделим, например, многочлен f (x) =3x4-5x2+3x-1 на х-2 с остатком, используя схему Горнера.
При заполнении первой строки этой схемы нельзя забывать о нулевых коэффициентах многочлена.
Так, коэффициенты f (x) - это числа 3, 0, - 5, 3, - 1. И еще следует помнить, что степень не полного частного на единицу меньше степени многочлена f (x).
Итак, выполняем деление по схеме Горнера:
Таблица 2.
3 |
0 |
-5 |
3 |
-1 | |
2 |
3 |
6 |
7 |
17 |
33 |
Получим неполное частное s (x) =3x3+6x2+7x+17 и остаток r=33. заметим, что одновременно мы вычислили значение многочлена f (2) =33.
Разделим теперь тот же многочлен f (x) на х+2 с остатком. В этом случае с=-2. получим:
Таблица 3.
3 |
0 |
-5 |
3 |
-1 | |
-2 |
3 |
-6 |
7 |
-11 |
21 |
В результате имеем f (x) = (x+2) (3x3-6x2+7x-11)
+21.
Ранее мы установили что если с - корень
многочлена f (x) делится на х-с. Сейчас обобщим
это утверждение.
Пусть с1, с2, …, сm - различные корни многочлена f (x). Тогда f (x) делится на х-с1, т.е. f (x) = (x-c1) s1 (x). Положим в этом равенстве х=с2. Получим f (c2) = (c2-c1) s1 (c2) и, так f (c2) =0, то (с2-с1) s1 (c2) =0. Но с2?с1, т.е. с2-с1?0, а значит, s1 (c2) =0. Таким образом, с2 - корень многочлена s1 (x).
Отсюда следует, что s1 (x) делится на х-с2, т.е. s1 (x) = (x-c2) s2 (x). Подставим полученное выражение для s1 (x) в равенство f (x) = (x-c1) s1 (x). Имеем f (x) = (x-c1) (x-c2) s2 (x). Положив в последнем равенстве х=с3 с учетом того, что f (c3) =0, с3?с1, с3?с2, получим, что с3 - корень многочлена s2 (x). Значит, s2 (x) = (x-c3) s3 (x), а тогда f (x) = (x-c1) (x-c2) (x-c3) s3 (x) и т.д. Продолжив эти рассужденья для оставшихся корней с4, с5, …, сm, мы, наконец, получим f (x) = (x-c1) (x-c2) … (х-сm) sm (x), т.е. доказано формулируемое ниже утверждение.
Если с1, с2, …, сm - различные корни многочлена f (x), то f (x) можно представить в виде f (x) = (x-c1) (x-c2)... (x-cm) sm (x).
Отсюда вытекает важное следствие.
Если с1, с2,…, сm - различные корни многочлена f (x), то f (x) делится на многочлен (х-с1) (х-с2) … (х-сm).
Как мы уже отмечали, одной из важных задач в теории многочленов является задача отыскания корней многочлена. В связи с этим существенным представляется вопрос о их числе. В самом деле, если дан какой-то многочлен и уже найдено, скажем, 10 его корней, то нужно знать, следует ли продолжать поиски. А вдруг этот многочлен больше не имеет корней? В таких случаях нам будет полезна приводимая ниже теорема.[8,c.56]
Число различных корней ненулевого многочлена f (x) не больше, чем его степень.
Действительно, если f (x) корней не имеет, то ясно, что теорема верна, ибо ст. f (x) ?0.
Пусть теперь f (x) имеет m корней с1, с2, …, сm, причем все они различны. Тогда, по только что доказанному f (x) делится на (х-с1) (х-с2) … (х-сm). В таком случае ст. f (x) ? ст. ( (х-с1) (х-с2) … (х-сm)) =ст. (х-с1) + ст. (х-с2) +…+ст. (х-сm) =m, т.е. ст. f (x) ?m, а m - это число корней рассматриваемого многочлена.
А вот у нулевого многочлена бесконечно много корней, ведь его значение для любого х равно 0. В частности, по этой причине ему и не предписывают никакой определенной степени.
Из только что доказанной теоремы следует такое утверждение.
Если многочлен f (x) не является многочленом степени, большей, чем n, и имеет более, чем n корней, то f (x) - нулевой многочлен.
В самом деле, из условий этого утверждения следует, что-либо f (x) - нулевой многочлен, либо ст. f (x) ?n. Если предположить, что многочлен f (x) не нулевой, то ст. f (x) ?n, и тогда f (x) имеет не более, чем n корней. Приходим к противоречию. Значит, f (x) - ненулевой многочлен.
Пусть f (x) и g (x) - ненулевые многочлены степени, не большей, чем n. Если эти многочлены принимают одинаковые значения при n+1 значении переменной х, то f (x) =g (x).
Для доказательства рассмотрим многочлен h (x) =f (x) - g (x). Ясно, что - либо h (x) =0, либо ст. h (x) ?n, т.е. h (x) не является многочленом степени, большей, чем n. Пусть теперь число с такое, что f (c) =g (c). Тогда h (c) = f (c) - g (c) =0, т.е. с - корень многочлена h (x). Следовательно, многочлен h (x) имеет n+1 корень, а когда, как только что доказано, h (x) =0, т.е. f (x) =g (x).
Если же f (x) и g (x) принимают одинаковые значения при всех значениях переменной х, то эти многочлены тем более равны.
Эта теорема весьма эффективно используется при доказательстве некоторых числовых тождеств.[8,c.34]
Докажем, например, что для любых попарно различных чисел а, b, с и любого числа х.
( ( (x-b) (x-c)) / ( (a-b) (a-c))) + ( ( (x-a) (x-c)) ( (b-a) (b-c))) + ( ( (x-a) (x-b)) ( (c-a) (c-b))) =1
Конечно, можно преобразовав левую часть указанного равенства, убедиться, что в результате получится 1. Но такой метод доказательства связан с громоздкими преобразованиями. Попытаемся обойтись без них.
Будем рассматривать х как переменную. Тогда, как нетрудно заметить, в левой части тождества находится многочлен, который мы обозначим f (x). Переменная х входит в этот многочлен самое большое в степени 2, т.е. ст. f (x) ?2. в правой части того же тождества - так же многочлен: g (x) =1.
Найдем теперь значение многочленов f (x) и g (x) при х=a, b, c. Ясно, что g (a) =g (b) =g (c) =1. Далее,
f (a) = ( ( (a-b) (a-c)) / ( (a-b) (a-c))) + ( ( (a-a) (a-c)) ( (b-a) (b-c))) + ( ( (a-a) (a-b)) ( (c-a) (c-b))) =1.
Аналогично f (b) =f (c) =1. Следовательно, f (a) =g (a), f (b) =g (b), f (c) =g (c). Видим, что многочлены f (x) и g (x), не являющиеся многочленами степени выше, чем 2, принимают одинаковые значения при трех различных значениях переменной. Значит, f (x) =g (x).
3. УНИВЕРСАЛЬНЫЙ МЕТОД НАХОЖДЕНИЯ ГРАНИЦ МНОГОЧЛЕНА. МЕТОД НЬЮТОНА
Одним из наиболее распространенных методов поиска корней уравнений является метод Ньютона и его модификации. Пусть требуется решить уравнение . Будем считать, что x является решением уравнения. Разложим функцию f(x) в ряд в точке x0 близкой к точке x и ограничимся только первыми двумя членами разложения.
Поскольку x – корень уравнения, то . Следовательно,
Таким образом, если нам известно приближенное
значение корня уравнения, то полученное
уравнение позволяет его
Ограничившись в разложении только первыми двумя членами, мы фактически заменили функцию f(x) на прямую линию, касательную в точке x0, поэтому метод Ньютона еще называют методом касательных. Далеко не всегда бывает удобно находить аналитическое выражение для производной функции. Однако, в этом и нет особой необходимости: поскольку на каждом шаге мы получаем приближенное значение корня, можно для его вычисления использовать приближенное значение производной.[6,c.10]
В качестве малой величины можно взять, например, заданную точность вычислений , тогда расчетная формула примет вид
(1.1)
С другой стороны, для вычисления производной
можно воспользоваться
(1.2)
В таком виде метод называется методом секущих (secant method). При этом, однако, возникает проблема с вычислением первого приближения. Обычно полагают, что , то есть первый шаг вычислений проводится с использованием формулы (1.1), а все последующие – с использованием формулы (1.2). Именно эта вычислительная схема реализована в пакете Mathcad. Используя метод секущих, мы не можем гарантировать, что корень находится между двумя последними приближениями. Можно, однако, для вычисления очередного приближения использовать границы интервала, на котором функция меняет знак. Такой метод называется методом хорд (false position method).
4. ТЕОРЕМА ШТУРМА
Теорема Штурма. Если действительные числа а и Ь, a<ib, не являются корнями многочлена / (х), не имеющего кратных корней, то W(a)=W(b) и разность W(a)—W(b) равна числу действительных корней многочлена f(x), заключенных между а и b.
Количество вещественных корней многочлена на интервале может быть оценено при помощи теоремы Штурма.
Ряд Штурма (система Штурма) для вещественного многочлена — последовательность многочленов, позволяющая эффективно определять количество корней многочлена на промежутке и приближённо вычислять их с помощью теоремы Штурма. Ряд и теорема названы именем французского математика Жака Штурма.[2.c,34]
Рассмотрим многочлен f(x) с вещественными коэффициентами. Конечная упорядоченная последовательность отличных от нуля многочленов с вещественными коэффициентами называется рядом Штурма для многочлена f(x), если выполнены следующие условия: не имеет корней;
если и , то ;
если ,
то произведение меняет знак с минуса на плюс, когда x, возрастая, проходит через точку c, т.е. когда существует такое δ > 0, что

- Границы Я у детей дошкольного и младшего школьного возраста
- Граничный анализ
- Гранулирование в таблеточном производстве
- Гранулированные и брикетированные корма в рационе молочных коров
- Гранулированные и брикетированные корма в рационе молочных коров
- Гранулометрический состав почв
- Гранулометрический состав почв
- Границы вмешательства государства в рыночную экономику
- Границы государственного вмешательства в экономику
- Границы государственного вмешательства в экономику
- Границы государственного сектора экономики, оценка его масштабов и эффективности в субъектах Российской федерации (на примере Свердловск
- Границы действия нормативного правового акта
- Границы земляных работ
- Границы и законы кредита