Текст подпрограммы и версий
zp31r_c.zip  zp31d_c.zip 
Тексты тестовых примеров
tzp31r_c.zip  tzp31d_c.zip 

Подпрограмма:  zp31r_c

Назначение

Вычисление коэффициентов полинома по заданным его вещественным корням.

Математическое описание

zp31r_c вычисляет коэффициенты полинома степени NР

        A(1) + A(2)*X + A(3)*X2 + ... + A(NP + 1)*XNP 

по заданным его вещественным корням RООТ ( I ),  I = 1, 2, 3, ..., NР.

Использование

    int zp31r_c (integer *np, real *root, real *a)

Параметры

np - заданная степень полинома (тип: целый);
root - вещественный вектор длины np, содержащий заданные корни полинома;
a - вещественный вектор длины np + 1, содержащий вычисленные коэффициенты полинома в порядке возрастания степеней.

Версии

zp31d_c - вычисление коэффициентов полинома по заданным его вещественным корням с повышенной точностью. При этом векторы root и a должны иметь тип double.

Вызываемые подпрограммы: нет

Замечания по использованию: нет

Пример использования

int main(void)
{
    /* Initialized data */
    static float root[4] = { 1.f,2.f,3.f,4.f };

    /* Local variables */
    extern int zp31r_c(int *, float *, float *);
    static float a[5];
    static int i__;

    zp31r_c(&c__4, root, a);

    for (i__ = 1; i__ <= 4; ++i__) {
         printf("\n %16.7e \n", root[i__ - 1]);
    }
    for (i__ = 1; i__ <= 5; ++i__) {
         printf("\n    %16.7e \n", a[i__ - 1]);
    }
    return 0;
} /* main */


Результаты:

       a(1) = 24.0 ,    a(2) = - 50.0 ,   a(3) = 35.0 ,
       a(4) = - 10.0,   a(5) = 1.0