|
Текст подпрограммы и версий zp34r_c.zip zp34d_c.zip |
Тексты тестовых примеров tzp34r_c.zip tzp34d_c.zip |
Вычисление натурального логарифма от полинома с вещественными коэффициентами.
zp34r_c вычисляет М первых коэффициентов полинома
B(X) = B(1) + B(2)*X + B(3)*X2 + ... + B(M)*X(M - 1) + ... ,
такого, что В (Х) = ln А (Х), где А (Х) заданный полином степени NР
A(X) = A(1) + A(2)*X + A(3)*X2 + ... + A(NP + 1)*XNP ,
у которого коэффициенты А ( I ), I = 1, 2, 3, ..., NР + 1 являются вещественными и А (1) > 0.
int zp34r_c (integer *np, real *a, integer *m, real *b,
integer *ierr)
Параметры
| np - | заданная степень полинома A (x) (тип: целый); |
| a - | вещественный вектор длины np + 1, содержащий коэффициенты заданного полинома A (x) в порядке возрастания степеней; |
| m - | заданное число искомых коэффициентов полинома B (x) (тип: целый); |
| b - | вещественный вектор длины m, содержащий вычисленные коэффициенты полинома B (x) в порядке возрастания степеней; |
| ierr - | целая переменная, значение которой в результате работы подпрограммы полагается равной 65, если a (1) ≤ 0. |
Версии
| zp34d_c - | вычисление натурального логарифма от полинома с вещественными коэффициентами с повышенной точностью. При этом векторы a и b должны иметь тип double. |
Вызываемые подпрограммы
| utzp10_c - | подпрограмма выдачи диагностических сообщений при работе подпрограммы zp34r_c. |
| utzp11_c - | подпрограмма выдачи диагностических сообщений при работе подпрограммы zp34d_c. |
Замечания по использованию: нет
int main(void)
{
/* Initialized data */
static float a[5] = { 24.f,-50.f,35.f,-10.f,1.f };
/* Local variables */
static int ierr;
extern int zp34r_c(int *, float *, int *, float *, int *);
static float b[6];
static int m, np, i__;
np = 4;
m = 6;
printf("\n %5i \n", np);
for (i__ = 1; i__ <= 5; ++i__) {
printf("\n %16.7e \n", a[i__ - 1]);
}
printf("\n %5i \n", m);
zp34r_c(&np, a, &m, b, &ierr);
for (i__ = 1; i__ <= 6; ++i__) {
printf("\n %16.7e \n", b[i__ - 1]);
}
printf("\n %5i \n", ierr);
return 0;
} /* main */
Результаты:
b(1) = 3.178053 , b(2) = - 2.083333 , b(3) = - 0.711556 ,
b(4) = - 0.392554 , b(5) = - 0.269688 , b(6) = - 0.207268 ,
ierr = 0