Текст подпрограммы и версий ( Фортран )
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 

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

Назначение

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

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

Подпрограмма 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