|
Текст подпрограммы и версий zp44r_c.zip |
Тексты тестовых примеров tzp44r_c.zip |
Восстановление коэффициентов многочлена, заданного разложением по системе ортогональных многочленов.
Пусть известны коэффициенты C = ( c1, c2, ..., cN ) разложения многочлена Р (Х) по системе { Qk (X) } ортогональных многочленов
N
P(X) = ∑ Ck Qk -1(X) ,
k =1
удовлетворяющих трехчленному рекуррентному соотношению
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 ). Подпрограмма вычисляет коэффициенты D = ( d1, d2, ..., dN ) разложения этого многочлена по степеням Х
N
P(X) = ∑ dk X k -1
k =1
int zp44r_c (real *a, real *b, real *c, real *d,
integer *n)
Параметры
| a - | вещественный вектор длины n - 1, содержащий коэффициенты ak рекуррентного соотношения (тип: вещественный); |
| b - | вещественный вектор длины n - 2, содержащий коэффициенты bk рекуррентного соотношения (тип: вещественный); |
| c - | вектор заданных коэффициентов разложения многочлена по системе ортогональных многочленов (тип: вещественный); |
| d - | вектор искомых коэффициентов разложения многочлена по степеням аргумента (тип: вещественный); |
| n - | размерность векторов c и d (тип: целый). |
Версии: нет
Вызываемые подпрограммы: нет
Замечания по использованию: нет
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 zp44r_c(float *, float *, float *, float *, int *);
static float d__[3];
static int n;
n = 3;
zp44r_c(a, b, c__, d__, &n);
printf("\n %16.7e %16.7e %16.7e \n", d__[0], d__[1], d__[2]);
return 0;
} /* main */
Результат: d__ = ( 0., 0., 1. )