Подпрограмма: qsj1r_c
Назначение
Вычисление определенного интеграла по формуле
Гаусса - Якоби.
Математическое описание
Подпрограмма qsj1r_c вычисляет определенный интеграл
B
∫ ( 1 - x )α ( 1 + x ) β f (x) dx
A
по квадратурной формуле Гаусса - Якоби.
Использование
int qsj1r_c (real *rint, real *a, real *b, real *alf,
real *bta, R_fp f, integer *n)
Параметры
rint -
|
вещественная переменная, содержащая вычисленное значение интеграла;
|
a, b -
|
заданные нижний и верхний пределы
интегрирования, соответственно (тип: вещественный);
|
alf,bta -
|
заданные параметры α и
β соответственно, в весовом множителе
(1 - x) α (1 + x) β
(тип: вещественный);
|
f -
|
имя вещественной подпрограммы - функции,
вычисляющей подинтегральную функцию f (x);
|
n -
|
заданное число узлов интегрирования
(2 ≤ n ≤ 512,
тип: целый);
|
Версии: нет
Вызываемые подпрограммы
qsjac_c -
|
подпрограмма, вычисляющая узлы и веса квадратурной
формулы Гаусса - Якоби.
|
Замечания по использованию
|
Число узлов интегрирования n на заданном отрезке
[a; b] может быть задано лишь как целое из интервала
2 ≤ n ≤ 512.
|
Пример использования
int main(void)
{
/* Local variables */
static float rint;
extern int qsj1r_c(float *, float *, float *, float *,
float *, R_fp, int *);
static float a, b;
extern float f_c();
static int n;
static float alf, bta;
alf = 1.f;
bta = alf;
a = -1.f;
b = 1.f;
n = 4;
qsj1r_c(&rint, &a, &b, &alf, &bta, (R_fp)f_c, &n);
printf("\n %16.7e %16.7e %16.7e %16.7e \n",a,b,alf,bta);
printf("\n %16.7e %5i \n",rint,n);
return 0;
} /* main */
float f_c(float *x)
{
/* System generated locals */
float ret_val;
ret_val = *x;
return ret_val;
} /* f_c */
Результат: rint = 0.0000000000