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