Proc43. Описать функцию Ln1(x, $$\epsilon$$) вещественного типа (параметры $$x$$, $$\epsilon$$ — вещественные, $$|x| < 1, \epsilon > 0$$), находящую приближенное значение функции $$ln(1 + x)$$: $$ ln(1 + x) = x — x^2/2 + x^3/3 — … + (-1)^n*x^{n+1}/(n+1) + …$$ . В сумме учитывать все слагаемые, модуль которых больше $$\epsilon$$. С помощью Ln1 найти приближенное значение $$ln(1 + x)$$ для данного x при шести данных $$\epsilon$$.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
#include <stdio.h> #include <math.h> float ln1(float x, float e){ float ln1_n=x,rez=0; int i=0; while (fabs(ln1_n/(i+1))>e){ rez+=ln1_n/(i+1); ++i; ln1_n*=-x/(i+1); } return rez; } int main(void) { float x,e; printf("X:"); scanf("%f", &x); int i; for(i=1;i<=6;++i){ printf("E: "); scanf("%f", &e); printf("Ln: %f\n",ln1(x,e)); } return 0; } |
Другие задачи из раздела Proc можно посмотреть здесь.
Комментарии: