Текст подпрограммы и версий ( Фортран ) zp14r.zip zp14c.zip |
Тексты тестовых примеров ( Фортран ) tzp14r.zip tzp14c.zip |
Текст подпрограммы и версий ( Си ) zp14r_c.zip zp14c_c.zip |
Тексты тестовых примеров ( Си ) tzp14r_c.zip tzp14c_c.zip |
Текст подпрограммы и версий ( Паскаль ) zp14r_p.zip zp14c_p.zip |
Тексты тестовых примеров ( Паскаль ) tzp14r_p.zip tzp14c_p.zip |
Вычисление корней квадратного уравнения с вещественными коэффициентами.
Подпрограмма ZР14R вычисляет корни квадратного уравнения
A*X2 + B*X + C = 0.0 ,
в котором коэффициенты А, В и С являются вещественными. Вычисленные корни RООТ1 и RООТ2 в общем случае являются комплексными.
Алгоритм, реализованный в подпрограмме, изложен в статье
G.F.Forsythe, What Is a Satisfactory Quadratic Еquation Solver., Сonstructive Аspects of тне Fundamental Тheorem of Аlgebra, В.Dejon and Р.Нenrici eds., Wiley - Interscience, New York, 1969.
SUBROUTINE ZP14R (A, B, C, ROOT1, ROOT2, IERR)
Параметры
A, B, C - | заданные коэффициенты квадратного уравнения (тип: вещественный); |
ROOT1 - ROOT2 | комплексные переменные, содержащие вычисленные корни квадратного уравнения; |
IERR - | целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы подпрограммы; при этом |
IЕRR=65 - | когда старшие коэффициенты А и В равны 0.0; в этом случае первый корень полагается равным комплексному числу (- 3.4Е38, 0.0), а второй (3.4Е38, 0.0); |
IЕRR=66 - | когда старший коэффициент А равен 0.0; в этом случае второй корень полагается равным комплексному числу (3.4Е38, 0.0). |
Версии
ZP14C - | вычисляет корни квадратного уравнения с комплексными коэффициентами. Тем самым, коэффициенты А, В и С должны иметь тип СОМРLЕХ. |
Вызываемые подпрограммы
UTZP10 - | подпрограмма выдачи диагностических сообщений при работе подпрограмм ZР14R и ZР14С. |
Замечания по использованию: нет
1. COMPLEX ROOT1, ROOT2 DATA A /1.0/, B /- 3.0/, C /2.0/ CALL ZP14R (A, B, C, ROOT1, ROOT2, IERR) Результаты: RООТ1 = (1.0, 0.0) , RООТ2 = (2.0, 0.0) , IERR = 0 2. COMPLEX A, B, C, ROOT1, ROOT2 DATA A /(1.0, 0.0)/, B /(1.0, 3.0)/, C /(- 2.0, 1.0)/ CALL ZP14C (A, B, C, ROOT1, ROOT2, IERR) Результаты: RООТ1 = (0.0, - 1.0) , RООТ2 = (- 1.0, - 2.0) , IERR = 0