Текст подпрограммы и версий ( Фортран )
zp11r.zip  zp11c.zip 
Тексты тестовых примеров ( Фортран )
tzp11r.zip  tzp11c.zip 
Текст подпрограммы и версий ( Си )
zp11r_c.zip  zp11c_c.zip 
Тексты тестовых примеров ( Си )
tzp11r_c.zip  tzp11c_c.zip 
Текст подпрограммы и версий ( Паскаль )
zp11r_p.zip  zp11c_p.zip 
Тексты тестовых примеров ( Паскаль )
tzp11r_p.zip  tzp11c_p.zip 

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

Назначение

Вычисление корней полинома с вещественными коэффициентами методом Дженкинса - Трауба.

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

Подпрограмма ZР11R вычисляет NР вещественных и комплексных корней полинома

      A(1) + A(2)*X + A(3)*X2 + ... + A(NP + 1)*XNP , 

у которого коэффициенты  А ( I ),  I = 1, 2, 3, ..., NР + 1 являются вещественными.

М.А.Jenkins, J.F.Тraub, A  Тhree - Stage Аlgorithm for Real Pоlinomials Using Quadratic Iteration, SIАМ Journal on Numerical Аnalysis, 7, 1970.

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

    SUBROUTINE  ZP11R (NP, A, ROOT, RAB, IERR) 

Параметры

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

Версии

ZP11C - вычисление корней полинома с комплексными коэффициентами методом Дженкинса - Трауба. Тем самым, вектор А имеет тип СОМРLЕХ.

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

UTZP10 - подпрограмма выдачи диагностических сообщений при работе подпрограмм ZР11R и ZР11С.

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

 

Подпрограмма ZР11R использует общие блоки с именами РР11R и РRРQLJ, а также служебные подпрограммы ZRРQLВ, ZRРQLС, ZRРQLD, ZRРQLЕ, ZRРQLF, ZRРQLG, ZRРQLН, ZRРQLI.

В подпрограмме ZР11С вещественный вектор RАВ имеет длину 10 * (NР + 1) и использует общие блоки с именами PP11C и РСРQLN, а также служебные подпрограммы ZСРQLВ, ZСРQLС, ZСРQLD, ZСРQLЕ, ZСРQLF, ZСРQLG, ZСРQLН, ZСРQLI, ZСРQLJ, ZСРQLК, ZСРQLL, ZСРQLМ.

Алгоритм, реализованный в подпрограмме ZР11С изложен в статье

М.А.Jenkins, J.F.Тraub, А  Тhree - Stage Variable - Shift Iteration for Рolinomial Zeros and its Relation то Generalized Rayleigh Iteration, Number. Матн., 14, 1970.

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

   1. DIMENSION  A(4), ROOT(3), RAB(28)
       COMPLEX  ROOT
       DATA  A(1), A(2), A(3), A(4) /- 2.0, 4.0, - 3.0, 1.0/
       NP = 3
       CALL  ZP11R (NP, A, ROOT, RAB, IERR)

Результаты:
       
       RООТ(1) = (1.0, 0.0) ,    RООТ(2) = (1.0, 1.0)
       ROOT(3) = (1.0, - 1.0) ,  IERR = 0

   2. DIMENSION  A(4), ROOT(3), RAB(40)
       COMPLEX  A, ROOT
       DATA  A /(10.0, 0.0), (- 8.0, 12.0), (- 3.0, -6.0), (1.0, 0.0)/
       NP = 3
       CALL  ZP11C (NP, A, ROOT, RAB, IERR)

Результаты:

       RООТ = (1.0, 1.0) ,  (1.0, 2.0) ,  (1.0, 3.0)
       IERR = 0