Текст подпрограммы и версий zp33r_c.zip zp33d_c.zip |
Тексты тестовых примеров tzp33r_c.zip tzp33d_c.zip |
Вычисление m первых коэффициентов полинома, который является обратным заданному полиному с вещественными коэффициентами.
zp33r_c вычисляет М первых коэффициентов полинома
B(X) = X(- K)*( B(1) + B(2)*X + ... + B(M)*X(M - 1) + ... )
обратного заданному полиному степени NР
A(X) = A(1) + A(2)*X + A(3)*X2 + ... + A(NP + 1)*XNP ,
у которого коэффициенты А ( I ), I = 1, 2, 3, ..., NР + 1 являются вещественными. Здесь К - число первых коэффициентов полинома А (Х), равных 0. Иными словами, ищется полином В (Х) = 1 / А (Х).
int zp33r_c (integer *np, real *a, integer *m, real *b, integer *k)
Параметры
np - | заданная степень полинома A (x) (тип: целый); |
a - | вещественный вектор длины np + 1, содержащий коэффициенты заданного полинома A (x) в порядке возрастания степеней; |
m - | заданное число искомых коэффициентов полинома B (x) (тип: целый); |
b - | вещественный вектор длины m, содержащий вычисленные коэффициенты полинома B (x) в порядке возрастания степеней; |
k - | целая переменная, значение которой в результате работы подпрограммы полагается равным числу первых коэффициентов полинома A (x), равных 0. |
Версии
zp33d_c - | вычисление с повышенной точностью m первых коэффициентов полинома, который является обратным заданному полиному с вещественными коэффициентами. При этом векторы a и b должны иметь тип double. |
Вызываемые подпрограммы: нет
Замечания по использованию: нет
int main(void) { /* Initialized data */ static float a[5] = { 24.f,-50.f,35.f,-10.f,1.f }; /* Local variables */ extern int zp33r_c(int *, float *, int *, float *, int *); static float b[6]; static int k, m, np, i__; np = 4; m = 6; zp33r_c(&np, a, &m, b, &k); printf("\n %5i \n", np); for (i__ = 1; i__ <= 5; ++i__) { printf("\n %16.7e \n", a[i__ - 1]); } printf("\n %5i %5i \n", m, k); for (i__ = 1; i__ <= 6; ++i__) { printf("\n %16.7f \n", b[i__ - 1]); } return 0; } /* main */ Результаты: b(1) = 0.041667 , b(2) = 0.0868056 , b(3) = 0.120081 , b(4) = 0.140938 , b(5) = 0.152937 , b(6) = 0.159499