Текст подпрограммы и версий ( Фортран )
zp12c.zip 
Тексты тестовых примеров ( Фортран )
tzp12c.zip 
Текст подпрограммы и версий ( Си )
zp12c_c.zip 
Тексты тестовых примеров ( Си )
tzp12c_c.zip 
Текст подпрограммы и версий ( Паскаль )
zp12c_p.zip 
Тексты тестовых примеров ( Паскаль )
tzp12c_p.zip 

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

Назначение

Вычисление корней полинома с комплексными коэффициентами методом наискорейшего спуска.

Математическое описание

ZР12С вычисляет NР комплексных корней полинома

       A(1) + A(2)*X + ... + A(NP)*X(NP - 1) + A(NP + 1)*X(NP) , 

с комплексными коэффициентами  А ( I ),  I = 1, 2, ..., NР + 1.

Реализуется модифицированный метод наискорейшего спуска.

Воеводин В.В., Павленко О.А. Модифицированный метод наискорейшего спуска для определения всех корней полинома, в Сб. "Численный анализ на Фортране", вып.27, изд - во МГУ, 1980.

Использование

    SUBROUTINE  ZP12C (NP, A, D, ROOT, IERR) 

Параметры

NP - заданная степень полинома (тип: целый);
A - комплексный вектор длины NР + 1, содержащий коэффициенты исходного полинома в порядке возрастания степеней;
D - комплексный вектор длины NР + 1, используемый в подпрограмме как рабочий;
ROOT - комплексный вектор длины NР + 1, на выходе содержащий в первых NР компонентах вычисленные корни;
IERR - целая переменная, служащая для сообщений об ошибках, обнаруженных в ходе работы подпрограммы; при этом:
IЕRR= 1 - когда один или несколько коэффициентов при старших степенях равны (0., 0.). Соответствующее число корней в конце вектора RООТ полагаются равными (3.4E38, 0.);
IЕRR=68 - когда заданная степень полинома меньше 1.

Версии: нет

Вызываемые подпрограммы

GSU2R - счетчик псевдослучайных чисел.
UTZP12 - подпрограмма выдачи диагностических сообщений при работе подпрограммы ZР12С.

Замечания по использованию

  Используются служебные подпрограммы: ZР12С1, ZР12С2, ZР12С3, ZР12С4, ZР12С5.

Пример использования

       DIMENSION  A(4), D(4), ROOT(4)
       COMPLEX  A, D, ROOT
       A(1) = (10., 0.)
       A(2) = (- 8., 12.)
       A(3) = (- 3., - 6.)
       A(4) = (1., 0.)
       NP = 3
       CALL  ZP12C (NP, A, D, ROOT, IERR)

Результаты:

       IERR  =  0

       ROOT(1)  =  (1., 2.)
       ROOT(2)  =  (1., 1.)
       ROOT(3)  =  (1., 3.)