В математике последовательность Штурма одномерного многочлена p — это последовательность многочленов, связанных с p и его производной с помощью варианта алгоритма Евклида для многочленов . Теорема Штурма выражает число различных действительных корней p , расположенных в интервале, через число изменений знаков значений последовательности Штурма на границах интервала. Примененная к интервалу всех действительных чисел, она дает общее число действительных корней p . [ 1]
В то время как основная теорема алгебры легко дает общее число комплексных корней, подсчитанное с кратностью , она не дает процедуры для их вычисления. Теорема Штурма подсчитывает число различных действительных корней и размещает их в интервалах. Разделив интервалы, содержащие некоторые корни, она может изолировать корни на произвольно малые интервалы, каждый из которых содержит ровно один корень. Это дает старейший алгоритм изоляции действительных корней и алгоритм нахождения корней произвольной точности для одномерных многочленов.
Для вычислений над вещественными числами теорема Штурма менее эффективна, чем другие методы, основанные на правиле знаков Декарта . Однако она работает на каждом вещественном замкнутом поле и, следовательно, остается основополагающей для теоретического изучения вычислительной сложности разрешимости и исключения кванторов в теории вещественных чисел первого порядка .
Последовательность Штурма и теорема Штурма названы в честь Жака Шарля Франсуа Штурма , который открыл эту теорему в 1829 году. [2]
Цепь Штурма или последовательность Штурма одномерного полинома P ( x ) с действительными коэффициентами — это последовательность полиномов, такая что
для i ≥ 1 , где P' — производная P , а — остаток от евклидова деления на Длина последовательности Штурма не превышает степени P.
Число изменений знака в точке ξ последовательности Штурма числа P равно числу изменений знака (без учета нулей) в последовательности действительных чисел.
Это число изменений знака обозначается здесь V ( ξ ) .
Теорема Штурма утверждает, что если P — многочлен, свободный от квадратов , то число различных действительных корней P в полуинтервале ( a , b ] равно V ( a ) − V ( b ) (здесь a и b — действительные числа, такие, что a < b ). [1]
Теорема распространяется на неограниченные интервалы, определяя знак при +∞ полинома как знак его старшего коэффициента (то есть коэффициента члена высшей степени). При –∞ знак полинома является знаком его старшего коэффициента для полинома четной степени и противоположным знаком для полинома нечетной степени.
В случае многочлена, не свободного от квадратов, если ни a , ни b не являются кратными корнями p , то V ( a ) − V ( b ) представляет собой число различных действительных корней P.
Доказательство теоремы следующее: когда значение x увеличивается от a до b , оно может проходить через ноль некоторого числа ( i > 0 ); когда это происходит, число изменений знака не меняется. Когда x проходит через корень числа изменений знака уменьшается от 1 до 0. Это единственные значения x, при которых может меняться некоторый знак.
Предположим, мы хотим найти количество корней в некотором диапазоне для многочлена . Итак
Остаток от евклидова деления p 0 на p 1 — умножение его на −1 , получаем
Далее, разделив p 1 на p 2 и умножив остаток на −1 , получаем
Теперь разделив p 2 на p 3 и умножив остаток на −1 , получаем
Поскольку это константа, на этом вычисление последовательности Штурма завершается.
Чтобы найти число действительных корней , нужно оценить последовательности знаков этих многочленов при −∞ и ∞ , которые соответственно равны (+, −, +, +, −) и (+, +, +, −, −) . Таким образом
где V обозначает количество смен знаков в последовательности, что показывает, что p имеет два действительных корня.
Это можно проверить, заметив, что p ( x ) можно разложить на множители как ( x 2 − 1)( x 2 + x + 1) , где первый множитель имеет корни −1 и 1 , а второй множитель не имеет действительных корней. Это последнее утверждение следует из квадратичной формулы , а также из теоремы Штурма, которая дает последовательности знаков (+, –, –) при −∞ и (+, +, –) при +∞ .
Последовательности Штурма были обобщены в двух направлениях. Для определения каждого многочлена в последовательности Штурм использовал отрицательный остаток от евклидова деления двух предыдущих. Теорема остается верной, если заменить отрицательный остаток на его произведение или частное на положительную константу или квадрат многочлена. Также полезно (см. ниже) рассматривать последовательности, в которых второй многочлен не является производной первого.
Обобщенная последовательность Штурма — это конечная последовательность полиномов с действительными коэффициентами.
такой что
Последнее условие подразумевает, что два последовательных полинома не имеют общего действительного корня. В частности, исходная последовательность Штурма является обобщенной последовательностью Штурма, если (и только если) полином не имеет кратного действительного корня (в противном случае первые два полинома его последовательности Штурма имеют общий корень).
При вычислении исходной последовательности Штурма с помощью евклидова деления может случиться так, что мы столкнемся с многочленом, множитель которого никогда не бывает отрицательным, например, или . В этом случае, если продолжить вычисление, заменив многочлен его частным от неотрицательного множителя, мы получим обобщенную последовательность Штурма, которую также можно использовать для вычисления числа действительных корней, поскольку доказательство теоремы Штурма все еще применимо (из-за третьего условия). Иногда это может упростить вычисление, хотя обычно трудно найти такие неотрицательные множители, за исключением четных степеней x .
В компьютерной алгебре рассматриваемые многочлены имеют целые коэффициенты или могут быть преобразованы так, чтобы иметь целые коэффициенты. Последовательность Штурма многочлена с целыми коэффициентами обычно содержит многочлены, коэффициенты которых не являются целыми числами (см. пример выше).
Чтобы избежать вычислений с рациональными числами , распространенным методом является замена евклидова деления псевдоделением для вычисления наибольших общих делителей многочленов . Это равносильно замене последовательности остатков алгоритма Евклида на последовательность псевдоостатка , причем последовательность псевдоостатка является последовательностью многочленов, такой что существуют константы и такие, что является остатком от евклидова деления на ( Различные виды последовательностей псевдоостатка определяются выбором и обычно выбирается для того, чтобы не вводить знаменатели во время евклидова деления, и является общим делителем коэффициентов полученного остатка; подробности см. в разделе Последовательность псевдоостатка .) Например, последовательность остатков алгоритма Евклида является последовательностью псевдоостатка с для каждого i , а последовательность Штурма многочлена является последовательностью псевдоостатка с и для каждого i .
Различные последовательности псевдоостатков были разработаны для вычисления наибольших общих делителей многочленов с целыми коэффициентами без введения знаменателей (см. Последовательность псевдоостатков ). Все они могут быть сделаны обобщенными последовательностями Штурма, если выбрать знак , противоположный знаку . Это позволяет использовать теорему Штурма с последовательностями псевдоостатков.
Для полинома с действительными коэффициентами изоляция корня заключается в нахождении для каждого действительного корня интервала, содержащего этот корень и не содержащего других корней.
Это полезно для поиска корня , позволяя выбрать корень, который будет найден, и обеспечивая хорошую отправную точку для быстрых численных алгоритмов, таких как метод Ньютона ; это также полезно для подтверждения результата, поскольку если метод Ньютона сходится вне интервала, можно немедленно сделать вывод, что он сходится к неправильному корню.
Изоляция корня также полезна для вычислений с алгебраическими числами . Для вычислений с алгебраическими числами распространенным методом является представление их в виде пары многочлена, корнем которого является алгебраическое число, и интервала изоляции. Например, может быть однозначно представлено как
Теорема Штурма обеспечивает способ выделения действительных корней, который менее эффективен (для многочленов с целыми коэффициентами), чем другие методы, включающие правило знаков Декарта . Однако он остается полезным в некоторых обстоятельствах, в основном для теоретических целей, например, для алгоритмов действительной алгебраической геометрии , которые включают бесконечно малые . [3]
Для выделения действительных корней начинают с интервала, содержащего все действительные корни или представляющие интерес корни (часто, как правило, в физических задачах, интерес представляют только положительные корни), и вычисляют и Для определения этого начального интервала можно использовать границы размера корней (см. Свойства полиномиальных корней § Границы (комплексных) полиномиальных корней ). Затем этот интервал делят на две части, выбирая c в середине Вычисление дает количество действительных корней в и и можно повторить ту же операцию на каждом подынтервале. Когда в ходе этого процесса встречается интервал, не содержащий ни одного корня, его можно исключить из списка интервалов для рассмотрения. Когда встречается интервал, содержащий ровно один корень, можно прекратить его деление, так как это интервал изоляции. Процесс в конечном итоге останавливается, когда остаются только изолирующие интервалы.
Этот процесс изоляции может быть использован с любым методом вычисления числа действительных корней в интервале. Теоретический анализ сложности и практический опыт показывают, что методы, основанные на правиле знаков Декарта, более эффективны. Из этого следует, что в настоящее время последовательности Штурма редко используются для изоляции корней.
Обобщенные последовательности Штурма позволяют подсчитывать корни полинома, где другой полином положительный (или отрицательный), без явного вычисления этих корней. Если известен изолирующий интервал для корня первого полинома, это позволяет также найти знак второго полинома в этом конкретном корне первого полинома, без вычисления лучшего приближения корня.
Пусть P ( x ) и Q ( x ) — два полинома с действительными коэффициентами, такие, что P и Q не имеют общих корней, а P не имеет кратных корней. Другими словами, P и P' Q — взаимно простые полиномы . Это ограничение на самом деле не влияет на общность дальнейшего, поскольку вычисления НОД позволяют свести общий случай к этому случаю, а стоимость вычисления последовательности Штурма такая же, как и у НОД.
Пусть W ( a ) обозначает число вариаций знака в точке a обобщенной последовательности Штурма, начинающейся с P и P' Q . Если a < b — два действительных числа, то W ( a ) – W ( b ) — число корней P в интервале, таком что Q ( a ) > 0 , минус число корней в том же интервале, таком что Q ( a ) < 0 . В сочетании с общим числом корней P в том же интервале, заданным теоремой Штурма, это дает число корней P, таких что Q ( a ) > 0 , и число корней P , таких что Q ( a ) < 0 . [1]