Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Литература / Козин Р.Г. Алгоритмы численных методов линейной алгебры и их программная реализация

.pdf
Скачиваний:
4
Добавлен:
07.09.2025
Размер:
4.33 Mб
Скачать

b0

a0 ;

 

 

b1 a1

b0 p;

 

 

b2

a2

b1 p

b0q;

(4.8)

...;

 

 

 

 

 

 

 

bn 1 an 1 bn 2 p bn 3q; bn an bn 2q

и алгоритм для их последовательного вычисления:

b0 a0

 

b1 a1 b0 p

(4.9)

for i 2, (n 1) {bi ai bi 1 p bi 2q}

 

bn an bn 2q

 

Если bn 1 bn 0 , то полином Pn (x) делится на квадратичный множитель (x2 px q) нацело.

Замечание. При выделении из полинома пары комплексно-сопряженных корней i коэффициенты соответствующего квадратичного множителя равны

p 2 , q ( 2 2 ) .

4.2. Локализация корней полинома

Приведем некоторые сведения, касающиеся корней полинома Pn (x) с действительными коэффициентами:

все комплексные корни полинома – попарно комплексносопряженные;

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

Укажем несколько теорем, позволяющих грубо оценивать местоположение корней на комплексной плоскости:

все корни полинома лежат внутри круга радиусом

R 1

A

, где A max

 

a

 

;

 

 

 

 

a0

i 1,n

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

201

 

все

корни полинома

лежат за пределами круга радиусом

r

 

1

, где B max

 

a

 

 

и a 0 – иначе полином имеет нуле-

 

 

 

 

 

 

1 B

i 0,n 1

 

i

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

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

плексной плоскости (в частном случае круга), по которой пробегает против часовой стрелки аргумент x, равно количеству полных оборотов вокруг начала координат соответствующей замкнутой

кривой Pn (x) , являющейся отображением этой фигуры.

Рис. 4.1. Главная экранная форма программы, предназначенная для выполнения различных операций сзаданным полиномом P3 (x) с целью локализации

его корней

202

Рис. 4.2. Экранная форма с отображение окружности, построенным согласно заданномуполиному P3 (x) . Три полных оборота вокруг начала

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

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

203

Рис. 4.3. График изменения P3(x) для заданного интервала. Здесь же приведено значение действительного корня, уточненное методом дихотомии

1. Находим радиусы r, R окружностей, между которыми на

комплексной плоскости расположены все корни заданного полинома (управляющая кнопка «локализация корней» на рис. 4.1).

2. Нажатием кнопки «построить отображение окружности» строим отображение полиномом P3 (x) окружности (радиус – 9,

расположение центра окружности – 0, 0). Отображение показано на рис. 4.2. Видно, что кривая три раза оборачивается вокруг центра координат. Это подтверждает правильность грубой оценки (см.

рис. 4.1).

204

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

вней корней полинома.

3.Локализуем положение действительного корня полинома, по-

строив кривую P3 (x) для аргумента, изменяющегося в интервале9 x 9 (кнопка «построить график Pn (x) ). Построенная кривая

приведена на рис. 4.3. Здесь же приведено значение действительного корня, уточненное методом дихотомии, алгоритм которого записывается следующим образом (где xb, xe – левая и правая границы

интервала, содержащего один корень; eps – точность; root – найденное значение корня):

pb P(xb), pe P(xe), pm 1000 do while pm eps

xm xb xe , pm P(xm) 2

if sign( pb) sign( pm) then pb pm, xb xm

else

pe pm, xe xm end if

loop root xm

Вданном алгоритме отрезок последовательно делится пополам

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

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

4. После нахождения уточненного значения корня выделяем его из текущего полинома, и тем самым понижаем его порядок. Коэффициенты нового полинома, полученного после выделения действительного корня из предыдущего полинома, приведены в нижней таблице рис. 4.4. Используя кнопку «обновить исходный полином», коэффициенты нового полинома ставим в верхнюю таблицу на место их предыдущих значений (см. рис. 4.5).

205

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

5.Новый полином имеет второй порядок, поэтому его корни определяются по известным формулам – кнопка «найти корни квадратичного полинома». Экранная форма со значениями этих корней приведена на рис. 4.6.

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

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

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

P(x iy)

 

 

 

P1 iP2

 

 

(P1* P1 P2 * P2) eps .

 

 

 

206

Рис. 4.5. Произведен перенос коэффициентов нового полинома на место исходного. Порядок анализируемого полинома понижен на единицу.

Получена оценка местоположения его корней

Рис. 4.6. Экранная форма с комплексными корнями квадратичного полинома

207

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

Затем методом наискорейшего спуска произведено уточнение действительного корня (еготочное значение равно 3).

При этом использован алгоритм одномерного спуска с отступом назад

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

F(x, y) P(x iy) P1 iP2 (P1* P1 P2 * P2)

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

208

Рис. 4.8. Экранная форма с описанием порядка работы с программой

В программе используются два алгоритма наискорейшего спуска. В первом алгоритме одномерный спуск вдоль выбранного направления аналогичен затухающим колебаниям шарика при скатывании на дно «лунки», во втором – при переходе через минимум производится отступ к предыдущей точке, а затем выполняется новый уменьшенный в три раза шаг. При покоординатном спуске в пределах одной итерации производится одномерный спуск вначале по координате x, а затем – y. В этом случае стратегия одномерного спуска аналогична затухающим колебаниям шарика при скатывании на дно «лунки».

Ниже приведены соответствующие алгоритмы.

1. Алгоритмы метода наискорейшего спуска для двух стратегий одномерного спуска.

Стратегия 1.

it 0

число использованных итераций

do while it it max

 

 

 

F min F(rx,ry)

 

 

 

h 0,001, x rx h, y ry

Fx F(x, y)

 

 

 

x rx, y ry h

 

 

 

Fy F(x, y)

 

 

 

dF

Fx F min

,

dF

Fy F min

dx

h

 

dy

h

ggrad (F) (dFdx )2 (dFdy )2 dx dFdx / g, dy dFdy / g

h0,01

do while h 0,00000001

rx rx h * dx, ry ry h * dy Ft F(rx,ry)

if Ft F min then F min Ft else h h / 3 loop

if F min eps then exit do it it 1

loop

210