Текст подпрограммы и версий ( Фортран ) zp12c.zip |
Тексты тестовых примеров ( Фортран ) tzp12c.zip |
Текст подпрограммы и версий ( Си ) zp12c_c.zip |
Тексты тестовых примеров ( Си ) tzp12c_c.zip |
Текст подпрограммы и версий ( Паскаль ) zp12c_p.zip |
Тексты тестовых примеров ( Паскаль ) tzp12c_p.zip |
Вычисление корней полинома с комплексными коэффициентами методом наискорейшего спуска.
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.)