Реализовать функцию через ряд,ограничивая число элементов ряда первым элементом меньше eps=0.01
Функция: lnx(x>1/2-обл сх-ти)
Ряд :(x-1)^n/n*x^n;n=1
Функцию реализовал.Вопрос в том ,что при x= 2.7, значение функции равно 1 ;а сумма ряда не дотягивает до 1 она получается 0.9 из за чего это происходит ?
Код:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
void main()
{
double eps = 0.01;
int i = 1;
double F,x = 2.71;
double j = 1;
double h = 0;
while (x > 2)
{
for (i = 1;fabs(j) > eps; i++)
{
F = log(x);
j = pow((x-1), i) / (i*pow(x, i));
//printf("f= 8.5%f j = 8.5%f h=8.5%f \n", F, j, h);
h = j + h;
//printf("f= 8.5%f j = 8.5%f h=8.5%f \n", F, j, h);
//printf("f= %f j = %f h= %f \n", F, j, h); //вывод каждого члена ряда
}
printf("Rezultat pri x= %8.5f h=%8.5f\n", x, h);
j = 1;
h = 0;
x = x - 0.05;
}
_getch();
}