Текст подпрограммы и версий
zp53r_c.zip  zp53d_c.zip 
Тексты тестовых примеров
tzp53r_c.zip  tzp53d_c.zip 

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

Назначение

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

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

Пусть задан полином степени NP с вещественными коэффициентами

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

Подпрограмма zp53r_c вычисляет значения полинома и его ND - 1 производных от заданного вещественного переменного и помещает эти значения в элементах массива  PD (1), PD (2), ..., PD (ND) соответственно.

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

    int zp53r_c (integer *np, real *a, real *x, integer *nd,
            real *pd)

Параметры

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

Версии

zp53d_c - вычисление значений полинома с вещественными коэффициентами и его производных от заданного вещественного аргумента в режиме удвоенной точности; при этом параметры a, x и pd должны иметь тип double.

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

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

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

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

    /* Local variables */
    extern int zp53r_c(int *, float *, float *, int *, float *);
    static float x;
    static int nd;
    static float pd[6];
    static int np, i__;

    np = 4;
    nd = 6;
    x = 1.f;
    zp53r_c(&np, a, &x, &nd, pd);

    for (i__ = 1; i__ <= 6; ++i__) {
         printf("\n %13.3e \n", pd[i__ - 1]);
    }
    return 0;
} /* main */


Результаты:    pd  =  ( 15, 40, 90, 144, 120, 0 )