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