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