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