Текст подпрограммы и версий ( Фортран ) sf13r.zip sf13d.zip |
Тексты тестовых примеров ( Фортран ) tsf13r.zip tsf13d.zip |
Текст подпрограммы и версий ( Си ) sf13r_c.zip sf13d_c.zip |
Тексты тестовых примеров ( Си ) tsf13r_c.zip tsf13d_c.zip |
Текст подпрограммы и версий ( Паскаль ) sf13r_p.zip , sf13e_p.zip |
Тексты тестовых примеров ( Паскаль ) tsf13r_p.zip , tsf13e_p.zip |
Вычисление экспоненциальных интегралов.
Функция SF13R производит вычисления следующих интегралов
x (1) y = ∫ (et / t) dt , для x > 0.0 -∞ ∞ (2) y = - ∫ (e - t / t) dt , для x < 0.0 -x ∞ (3) y = ∫ (e - t / t) dt , для x > 0.0 x x (4) y = e - x ∫ (et / t) dt , для x > 0.0 -∞ ∞ (5) y = - e - x ∫ (e - t / t) dt , для x < 0.0 -x
Алгоритм, реализованный в функции, изложен в статье
W.J.Cody, H.C.Thacher, Rational Chebyshev Approximation for
the Exponential Integral Ei (x), Math. Comp. 23, 1969.
FUNCTION SF13R (X, L, IERR)
Параметры
X - | заданное значение аргумента x (тип: вещественный); |
L - | задает режим работы функции (тип: целый); при этом если: |
L = 1 - | вычисляется интеграл (1), если x > 0.0. или интеграл (2), если x < 0.0; |
L = 2 - | вычисляется интеграл (3), если x > 0.0; |
L = 3 - | вычисляется интеграл (4), если x > 0.0, или интеграл (5), если x < 0.0; |
IERR - | целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы функции; при этом: |
IERR= 1 - | когда аргумент задан отрицательным числом при L = 2; вычисления производятся с использованием абсолютного значения аргумента; |
IERR=66 - | когда значение L меньше 1 или больше 3; значение SF13R полагается равным 3.4E38; |
IERR=67 - | когда значение аргумента pавно 0.; значение SF13R полагается равным 3.4E38, если L = 2, или - 3.4E38, если L = 1 или 3; |
IERR=68 - | когда значение аргумента превосходит 43.66 при L = 1; значение SF13R полагается равным 3.4E38; |
IERR=69 - | когда значение аргумента меньше - 41.18 при L = 1 или 2; значение SF13R полагается равным 0. |
Версии
SF13D - | вычисление экспоненциальных интегралов (1) - (5) с повышенной точностью. |
Вызываемые подпрограммы
UTSF10 - | подпрограмма выдачи диагностических сообщений при работе функции SF13R. |
UTSF11 - | подпрограмма выдачи диагностических сообщений при работе функции SF13D. |
Замечания по использованию
Область допустимых значений аргумента для функций SF13R и SF13D указана выше при описании параметра IERR, при этом в случае функции SF13D вместо 3.4E38 берется значение 1.7D308. Kpоме того, для функции SF13D аргумент x имеет тип двойной точности и его максимальное значение pавно 2.04E3 при L = 1 или 2 (IERR = 68), а минимальное значение pавно - 2050 при L = 1 или 2 (IERR = 69). |
X = -0.5 L = 1 Y = SF13R (X, L, IERR) Результаты: Y = -0.559773594775, IERR = 0