Текст подпрограммы и версий ( Фортран )
pa09r.zip  pa09d.zip 
Тексты тестовых примеров ( Фортран )
tpa09r.zip  tpa09d.zip 
Текст подпрограммы и версий ( Си )
pa09r_c.zip  pa09d_c.zip 
Тексты тестовых примеров ( Си )
tpa09r_c.zip  tpa09d_c.zip 
Текст подпрограммы и версий ( Паскаль )
pa09r_p.zip  pa09e_p.zip 
Тексты тестовых примеров ( Паскаль )
tpa09r_p.zip  tpa09e_p.zip 

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

Назначение

Вычисление корней N - й степени из комплексного числа.

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

Подпрограмма PA09R вычисляет корни N - й степени (N ≥ 2) из комплексного числа y = XR + i XI по формуле

           (Y)1/N = (R)1/N (cos Ak + i sin Ak) ,

   где  R = (XR2 + XI2)1/2 ,
         Ak = θ / N + 2πk / N,  k = 0, 1, ..., N-1 ,
           θ = arctn(XI / XR) 

Для экономии машинного времени, которая имеет место для N ≥ 3, значения cosAk и sinAk вычисляются при помощи рекуррентного процесса, основанного на формулах сложения углов:

          cos(α + β) = cosα cosβ - sinα sinβ        
           sin(α + β) = sinα cosβ + cosα sinβ 

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

    SUBROUTINE  PA09R (XR, XI, N, YR, YI) 

Параметры

    XR, XI - действительная и мнимая части заданного комплексного числа (тип: вещественный);
N - заданная степень корня (тип: целый);
    YR, YI - вещественные одномерные массивы длины N, содержащие на выходе вещественные и мнимые части вычисленных корней соответственно, т.е. вещественная часть J - го корня содержится в YR (J), а его мнимая часть  - в YI (J), J = 1, 2, ..., N .

Версии

PA09D - вычисление корней N - й степени из комплексного числа в режиме удвоенной точности; при этом параметры XR, XI, YR и YI должны иметь тип DOUBLE PRECISION.

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

PA02R - вычисление модуля комплексного числа; используется в подпрограмме PA09R.
PA02D - вычисление модуля комплексного числа в режиме удвоенной точности; используется в подпрограмме PA09D.

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

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

       DIMENSION  YR(3), YI(3) 
       XR = 1.0 
       XI = 0.0 
       N = 3 
       CALL  PA09R (XR, XI, N, YR, YI) 

Результаты:

       YR = ( 1.0,  -0.5,  -0.5 )
       XI = ( 0.0,  0.866025,  -0.866026 )