Текст подпрограммы и версий ( Фортран ) 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 |
Вычисление корней полинома с вещественными коэффициентами методом Дженкинса - Трауба.
Подпрограмма 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