Witam, mam za zadanie napisanie programu, który na podstawie rozwinięcia w szereg oblicza wartość funkcji dla danego argumentu na podstawie poprzedniego wyrazu nie wykorzystując pow, ani silni.
Cały program mam już napisany, lecz mam wątpliwości co do mojej funkcji, która oblicza rozwinięcie w szereg dla log(x). Bardzo bym prosił o sprawdzenie i ew. pomoc w poprawie, bo bardzo mi na tym zależy :)
Tutaj link do szeregu: http://www.wolframalpha.com/input/?i=ln(x)
A tu kod źródlowy:
#include<stdio.h>
#include<math.h>
#define LWS 100
double szereg(double x){
double w,s;
int i;
w=x;
s=x;
for(i=1;i<=LWS;i++){
w=-w*-1*(-1+x)/i;
s+=w;
}//end for
return s;
}//end szereg
int main()
{
double a,b,dx,x;
int lp;
printf("Podaj poczatek przedzialu: ");
scanf("%lf",&a);
printf("Podaj koniec przedzialu: ");
scanf("%lf",&b);
printf("Podaj liczbe podprzedzialu: ");
scanf("%d",&lp);
dx=(b-a)/lp;
printf(" __________________________________________________________\n");
printf("| x | logx | szereg |\n");
printf("|____________|______________________|______________________|\n");
for(x=a;x<=b;x+=dx)
printf("| %10.4lf | %20.4lf | %20.4lf |\n",x,log(x),szereg(x));
printf("|____________|______________________|______________________|\n");
}// end main