|
Текст подпрограммы и версий zp43r_c.zip |
Тексты тестовых примеров tzp43r_c.zip |
Вычисление значения многочлена, заданного разложением по ортогональным многочленам.
Вычисляется величина
n
Y = ∑ Ck Qk -1(X) ,
k =1
где Х - значение аргумента, C = ( c1, c2, ..., cN ) заданные коэффициенты разложения многочлена по системе { Qk (x) } ортогональных многочленов, удовлетворяющих трехчленному рекуррентному отношению:
Q0(x) = 1 , Q1(x) = x - a1 ,
Qk +1(x) = ( x - ak +1 ) Qk(x) - bk Qk -1(x) , k = 1, 2, ..., N-2
с известными коэффициентами А = ( a1, a2, ..., aN - 1 ), B = ( b1, b2, ..., bN - 2 ).
int zp43r_c (real *a, real *b, real *c, real *x, real *y,
integer *n)
Параметры
| a - | вещественный вектор длины n - 1, содержащий коэффициенты ak рекуррентного соотношения; |
| b - | вещественный вектор длины n - 2, содержащий коэффициенты bk рекуррентного соотношения; |
| c - | вещественный вектор длины n, содержащий коэффициенты разложения многочлена по системе ортогональных многочленов; |
| x - | значение аргумента (тип: вещественный); |
| y - | вычисляемое значение многочлена (тип: вещественный); |
| n - | число коэффициентов разложения (тип: целый). |
Версии: нет
Вызываемые подпрограммы: нет
Замечания по использованию: нет
int main(void)
{
/* Initialized data */
static float a[2] = { 0.f,1.f };
static float b[1] = { 1.f };
static float c__[3] = { 1.f,1.f,1.f };
/* Local variables */
extern int zp43r_c(float *, float *, float *, float *, float *, int *);
static int n;
static float x, y;
n = 3;
x = 1.f;
zp43r_c(a, b, c__, &x, &y, &n);
printf("\n %16.7e \n", y);
return 0;
} /* main */
Результат: y = 1.