Текст подпрограммы и версий ( Фортран )
zp16r.zip  zp16d.zip 
Тексты тестовых примеров ( Фортран )
tzp16r.zip  tzp16d.zip 
Текст подпрограммы и версий ( Си )
zp16r_c.zip  zp16d_c.zip 
Тексты тестовых примеров ( Си )
tzp16r_c.zip  tzp16d_c.zip 
Текст подпрограммы и версий ( Паскаль )
zp16r_p.zip  zp16e_p.zip 
Тексты тестовых примеров ( Паскаль )
tzp16r_p.zip  tzp16e_p.zip 

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

Назначение

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

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

Подпрограмма ZР16R вычисляет корни уравнения третьей степени

     A(1)*X3 + A(2)*X2 + A(3)*X + A(4)  =  0.0  , 

в котором коэффициенты  А ( I ),  I = 1, 2, 3, 4 являются вещественными. Вычисленные корни в общем случае являются комплексными.

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

    SUBROUTINE  ZP16R (A, NREAL, ROOT, IERR) 

Параметры

A - вещественный вектор длины 4, содержащий коэффициенты уравнения третьей степени;
NREAL - целая переменная, значение которой в результате работы подпрограммы полагается равным числу вещественных корней;
ROOT - вещественный вектор длины 3, содержащий вычисленные корни;
IERR - целая переменная, значение которой в результате работы подпрограммы полагается равным 65, если коэффициент  А (1) равен 0.

Версии

ZP16D - вычисление корней уравнения третьей степени с повышенной точностью. При этом векторы А и RООТ должны иметь тип DОUВLЕ РRЕСISIОN.

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

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

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

 

Если все три корня являются вещественными, то они располагаются в возрастающем порядке RООТ (1) ≤ RООТ (2) ≤ RООТ (3).

В случае двух комплексных корней, RООТ (1) полагается равным вещественному корню, RООТ (2) равняется вещественной части обоих комплексных корней, а RООТ (3) - мнимой части, причем RООТ (3) всегда положителен.

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

       DIMENSION  A(4), ROOT(3)
       DATA  A(1), A(2), A(3), A(4) /1., - 6., 11., - 6./
       CALL  ZP16R (A, NREAL, ROOT, IERR)

Результаты:

       RООТ(1) = 1. ,  RООТ(2) = 2. ,  ROOT(3) = 3. ,
       NREAL   =  3 ,  IERR  = 0