Текст подпрограммы и версий 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. )