Научная статья на тему 'Вычисление комплексных корней полиномов'

Вычисление комплексных корней полиномов Текст научной статьи по специальности «Математика»

CC BY
668
808
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Вычисление комплексных корней полиномов»

Литература

1. Малашонок Г.11.. Лапаев А.О., Пирютин II.А. Быстрое умножение в кольце целых чисел // Вестник Тамбовского универститета. Серия: Естественные и технические науки. Тамбов, 2007. Т. 12. Вып.1. С. 130.

2. Кнут Д. Искусство программирования, М., СПб.; Киев, 2004. Т. 2.

Поступила в редакцию 15 декабря 2007г.

Вычисление комплексных корней полиномов

© Г.И.Малашонок , © А.А.Бетин

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

Дан полином над полем комплексных чисел степени п

/ (г) = аогп + а\хп 1 + ... + апх + ап+\. (1)

Задача состоит в нахождении всех корней уравнения

/ (г) = 0

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

Вычисление корней полинома проведем в два этапа. Сначала разложим многочлен на множители, не содержащие кратных корней, а затем найдем все корни каждого из сомножителей.

Лемма 1.

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

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

Рассмотрим полином над полем комплексных чисел

/ (х) = адхп + а\хп 1 + ... + апх + ап+1.

Этот полином имеет п комплексных корней, с учетом их кратности, поэтому может быть записан в виде

г г

f(х) = ао П(х - хз Т4 , ^ тз = п

3 = 1 3 = 1

где т3- - кратность корпя х3-.

Введм некоторые обозначения. Пусть I = {1, • • • , £} - множество номеров несовпадающих корней.

Пусть среди чисел т3- (] = 1 • • • t) встречается в различных натуральных чисел п1,п2, • • • ,п3,п1 <

П2 < п3 < ••• < п8. Вьщелим подмножества корней, имеющих одинаковую кратность: Мг С I,

в

N = ^ : х3- - корень кратности пг}. Получим разбиение множества I та подмножества I = У Мг.

1=1

Введем функцию кг, определенную для 1 < г < пя, которая указывает на нанменьшее из чисел п^, которое не меньше чем натуральное г:

к* = шш Н. (*)

пн>г

Пусть /3 — это сомножители /, которые требуется найти и которые не имеют кратных корней. Мы ищем следующее разложение полинома /(г) на сомножители:

/(г) = П /П, /3 = П (г - г3)-

3=1 jeN^

Рассмотрим алгоритм вычисления /3.

/

/' = /1 /Г /з"3 • • • /" + /П"1 /П"2 — 1 /П • • • /" + • • • + /Щ /" • • • /" —1 /п>- 1

/

Ф1 = СОО(/; /') = /Г1—1/Г2—1 • • • /Щ—^

Найдем Ф2 = ССД(ф1; ф1) и запишем в виде

ф2 = П /3

/ ■ni — 2

3>^2

где к3 определена в (*). Продолжим вычислепия и для 2 < р < пя получим:

фр = ССДф,—1; ФР—1) = П /

■П^—Р

Легко видеть, ЧТО Фп3 —1 = /в; причем показатель стеиеии у /3, с которым он входит в исходный полином /(г), равен п3 - числу производных.

Обозначим дПз = /3. Для вычисления остальных сомножителей /1 ••• /3—1 предварительно вычислим все сомножители:

фп3 — 2 фп3 —3

gns — 1 2 , gns—2 з 2 , ...,

дп3 дп3 дпв — 1

= фщ —к —1 = ф0

дп3 — к = 2 3 к+1 , ...’ до = д2д3 дП .

дпа —к + 1дпа —к+2 ••• дп> д1д3 д"

В последовательности д = {до, д1, • • • , дп } могут быть не только полиномы, но и константы. Если из нее вычеркнуть все константы, то получим последовательность полиномов {/1, /2, • • • , /я} и при этом / равно произведению / = /П1 /Щ2 • • • /Щ и каждая фупкция / = др входит в произведение в степени р. Таким образом, получено разложение полинома па сомножители, несодержащие кратных корней. Лемма доказана.

Главный результат настоящей работы содержится в следующем утверждении.

Лемма 2.

Пусть полином /(г) = ао^п + а1^п—1 + ... + апг + ап+1 те имеет кратных корней в С, тогда все

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

действительных корней полиномов от одной переменной.

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

Рассмотрим полином над полем комплексных чисел, который не имеет кратных корней.

/ (г) = ао^п + Я1^п 1 + ... + + Ящ+1. (2)

Требуется найти все корни уравнения

/ (*)=0. (3)

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

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

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

Обозначим

Тогда система будет иметь вид:

Де(/(г)) : /ш(/(г))

фо(х,У)

ф1(х,У)

фо(х,у),

: ф1 (х,У).

0,

0.

(4)

Система (4) - это система состоящая из 2-х алгебраических уравнений с 2-мя неизвестными.

Рассмотрим идеал /й = (ф0,ф1) С Д[ж, у], порожденный ф0 и ф1. Каждое решение системы (4) обращает в ноль любой элемент идеала М.

Построим последовательность полиномиальных остатков по следующей схеме. Будем считать, что у - старшая переменная и будем рассматривать полиномы в кольце Д[ж][у]. Обозначим через йеду фз степень полиома фг по переменной у. Пусть для определенности йеду ф1 не превосходит йеду ф0. Тогда множно построить последовательность полиномиальных остатков по следующей схеме:

а1 ф0 + в1ф1 = ф2, а2 ф1 + в2ф2 = ф3,

ат фт—1 + втф фт+Ъ

где аг € Д[ж], вг € Д [ж, у] выбираются так, чтобы выполнялось условие йеду фг>йеду ф3+1, г =

1, 2, • • • , п. Операция вычисления фг та шаге г называется операция псевдоделения. Нетрудно видеть,

что найденные таким образом фг находятся в идеале /й.

Аналогично можно поступить, считая ж старшей переменной и рассматривая фг € Д[у][ж].

Пусть в результате этих вычислений были получены многочлены/1 (ж, у) и /2(ж, у), как последние

/1 /2

А(ж) и ^(у), которые возникают из-за операций псевдоделения. Поэтому в общем случае полиномы /1 /2

/1(ж,у) = ^у^^ЖуЖ^ (5)

/2(ж, у) = ф(ж уЬ^ЖуМу^ (6)

ф(ж, у) ж у

/1 ( ж, у) у

уж

/1(ж,у) = ^(ж,у)«(ж).

Теперь, считая в ф(ж, у) ж старшей переменной, вынесем общий множитель при ж - полином от у, получим:

Л (ж,у) = ф(ж,у)«(ж)^(у).

/2 ( ж, у) ж

у

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

/2(ж,у) = ф(ж,у)в (у)П(ж).

Вычислим

А(ж) = ( ) ^ а(ж) = А(ж)п(ж),

П(ж)

мЫ = ^ ^ в(у) = м(уЖж).

Таким образом, получаем все сомножители в выражениях (5) и (6). Отметим, что п(ж) и 0(у) не имеют действительных корней, так как иначе система (4) имела бы бесконечно много решений.

Пусть z = х + iy решение (2), тогда ф(х, у)А(х) = 0 и ф(х,у)^(у) = 0. Рассматривая все пары (х, у), найдинные с точностью E, такие, что A(x) = 0 и ^(y) = 0, выбирем из них те, для которых:

| фо(х,У) = 0,

1 ф1(х,У) = 0.

Это будут корни уравнения (2). Если таких корней полученоn штук, то задача решена.

Если таких пар меньше чем n и еще требуется найти недостающий ni корень, то это означает, что ненайденные искомые корни являются корнями уравнения

ф(х,У) = °.

Функция ф(х, у) - непрерывна, бесконечное число раз дифференциируема и имеет конечное число

( x, y)

этой функции. Поэтому они являются решениями системы

( фо(х,У) = 0

1 фх(х,у) = 0

если фх = 0, или системы

| фо(х,У) = 0,

1 фу (х,у) = 0,

если фу = 0. Функции фх и фу частные производиые поиу соответственно, не могут одновременно обращаться в ноль, так как в этом случае функция ф(х, у) = const.

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

n1

процесс дальше.

фх фу

то мы можем найти все ее действительные корни, подставить их в ф, решить уравнение ф = 0

( х, y) ф( х, y) = 0.

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

Эти леммы позволяют сформулировать следующую теорему.

Теорема.

Существует алгоритм вычисления всех комплексных корней полинома (1) с учетом их кратности, который использует только точные символьно-численные операции и операции нахождения действительных корней полиномов от одной переменной.

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

Доказательство содержится в леммах 1 и 2.

В леммах 1 и 2 содержится алгоритм нахождения всех комплексных корней полинома. На основе этого алгоритма была создана Лауа-программа. С этой программой проводились эксперименты. В следующей главе приведены некоторые простые примеры вычисления всех комплексных корней полиномов. Расчеты проводились в среде JDK 1.5.

Литература

1. Малашонок Г. 11.. Бетин А.А. О вычислении комплексных корней полиномов. Вестник ТГУ. Том 12, вып. 1, 2007.

2. Лунц Г.Л Эльсгольц Л.Э. Функции комплексного переменного: Учебник для вузов. 2-е изд. — СПб. 2002.

3. П.П. Привалов. Введение в теорию функций комплексного переменного. М. 1954.

4. Сидоров Ю.В., Федорюк М.В., Шабунин М.И. Лекции по теории функций компекного переменного. 2-е изд., перераб. и доп. - М.: Наука. 1982.

Поступила в редакцию 15 декабря 2007г.

i Надоели баннеры? Вы всегда можете отключить рекламу.