|
Текст подпрограммы и версий zp53r_c.zip zp53d_c.zip |
Тексты тестовых примеров tzp53r_c.zip tzp53d_c.zip |
Вычисление значений полинома с вещественными коэффициентами и его производных от заданного вещественного аргумента.
Пусть задан полином степени 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 )