|
Текст подпрограммы и версий sfa5r_c.zip sfa5d_c.zip |
Тексты тестовых примеров tsfa5r_c.zip tsfa5d_c.zip |
Вычисление экспоненциального интеграла Bn (a) .
Подпрограмма - функция sfa5r_c вычисляет значение интеграла
1
Bn(a) = ∫ t n e-at dt ,
-1
для n = 0, 1, 2,... и вещественного параметра a . Если | a | < 1, то используется разложение e- at в ряд Тейлора. В противном случае используется рекуррентная формула
Bn(a) = ( (-1)n ea - e-a + n Bn-1(a) ) / a , где B0(a) = ( ea - e-a) / a
Абрамовиц М., Стиган И. Справочник по специальным функциям. М.: Наука, 1979.
real sfa5r_c (integer *n, real *a)
Параметры
| n - | заданное значение параметра n (тип: целый); |
| a - | заданное значение параметра a (тип: вещественный). |
Версии
| sfa5d_c - | вычисление экспоненциального интеграла Bn (a) в режиме удвоенной точности; при этом параметр a должен иметь тип double. |
Вызываемые подпрограммы: нет
Замечания по использованию: нет
int main(void)
{
/* Local variables */
extern float sfa5r_c(int *, float *);
static float a;
static int n;
static float res;
n = 3;
a = .25f;
res = (float)sfa5r_c(&n, &a);
printf("\n %16.7e \n", res);
return 0;
} /* main */
Результат: res = -0.1007459