Вычислительная математика: Методические указания к практическим и лабораторным работам, страница 9

          б) обращение к подпрограмме N1YFU, в которой с помощью подпрограммы N1YRPD по задаваемым корням (,, i Î[1, n]) вычисляются коэффициенты уравнения , i Î, причем , а также производится запись корней уравнения в виде комплексных данных , i Î[1, n] и их ранжирование посредством подпрограммы N1YRNG,

          в) обращение к подпрограмме N1YMSD, в которой реализован метод спуска решения алгебраического уравнения,

          г) обращение к подпрограмме N1YEM, в которой определяются погрешности Eм, Eмo и Eсo между полученными и истинными вещественными и мнимыми частями корней уравнения,

          д) запись полученных результатов в файлы данных (см. табл. 4.1¸4.4);

          2) все расчеты в подпрограммах производятся с удвоенной точностью, следовательно, данные в головной программе должны быть описаны как REAL*8 – вещественный тип и COMPLEX*16 – комплексный тип.

Содержание отчета

          1. Цель работы.

          2. Постановка задачи.

          3. Метод спуска.

          4. Листинг головной программы.

          5. Результаты вычислений (см. табл. 4.1¸4.4).

          6. Графики зависимостей lg Eмо = f(lg EPS), KMO = f(lg EPS).

          7. Графики сходимости первых выделяемых корней при выполнении пп 3 и 4 "Порядка выполнения работы".

          8. Выводы.

Методические указания

1. Основные теоретические положения, необходимые для выполнения работы

В общем случае, если корни уравнения

комплексные, то f(x) можно представить в виде

,

а далее вводится в рассмотрение функционал

,

где (x) – функция, комплексно–сопряженная f(x) ((x) = f(x), если коэффициенты уравнения действительные). Данный функционал имеет нулевые минимумы, и задача поиска корней сводится к отысканию минимумов данного функционала.

          Таким образом, итерационная процедура метода спуска состоит из следующих операций.

          1. Задается начальное приближение корня

,

где g = – [a1/an] – среднее арифметическое всех корней уравнения.

          2. Производится уточнение корня

xk+1 = xk - h×f(xk)/f '(xk) ,

причем сходимость процедуры уточнения обеспечивается за счет выбора параметра h. Значение h, для которого в точке xk+1 имеет место неравенство

F(xk+1) < F(xk),

считается выбранным правильно. Всегда можно подобрать такое сколь угодно малое значение параметра h для которого приведенное неравенство будет несомненно выполнено. При h = 1 имеем метод Ньютона и соответственно максимальную скорость сходимости. Поэтому на практике выбор параметра h начинают с h=1, а проверку сходимости осуществляют по неравенству

,

где величина, стоящая в правой части неравенства, является средним геометрическим расстояний всех корней уравнения от точки xk. Если данное неравенство не выполняется, то полагают h = h/2 и так далее до тех пор, пока оно не станет выполняться.

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

ïf(xk+1)ï£e ,

где e > 0 – сколь угодно малое, наперед задаваемое число.

          4. После определения корня x1 исходное уравнение делится на двучлен
(x – x1) (трехчлен, если имеет место пара комплексно–сопряженных корней) с целью понижения порядка n, а далее описанная процедура повторяется для вновь полученного уравнения.

2. Подпрограммы, необходимые для выполнения работы

          Подпрограмма

SUBROUTINE  N1YFU  (N, AL, BE, ZI, NA, AI)

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

          Входные параметры подпрограммы:

          N – порядок уравнения (степень полинома);

          AL(N) – N–мерный вещественный массив действительных частей корней уравнения;

          BE(N)  – N–мерный вещественный массив мнимых частей корней уравнения.

          Выходные параметры подпрограммы:

          ZI(N)   – N–мерный комплексный массив корней уравнения;

          NA – параметр, определяющий количество коэффициентов алгебраического уравнения (NA = N + 1);