Piszę sobie taki programik, o takiej temacie:
Policz wartości funkcji y=1/(x+1) we wszystkich punktach podziału na n części przedziału <xp; xk>. Funkcja f(x) dana jest w postaci rozwinięciaw szereg potęgowy 1-x+x2-x3+...
Oto co udało mi się stworzyć:
#include<stdio.h>
#include<math.h>
#include<stdio.h>
#define LWS 20
double xp, xk, krok, x;
int n, i;
double szereg(double x)
{
double s, w;
w=x;
s=x;
for(i=0; i<=LWS; i++)
{
w=(-w*x);
s=s+w;
}
return s;
}
int main()
{
printf("Podaj poczatek przedzialu: ");
scanf("%lf", &xp);
printf("Podaj koniec przedzialu: ");
scanf("%lf", &xk);
printf("Podaj ilosc krokow: ");
scanf("%d", &n);
krok=(xk-xp)/(double)n;
printf("x szereg \n");
for(x=xp; x<=xk; x=x+krok)
{
printf("%lf %lf \n",x ,szereg(x));
}
printf("\n\n");
system("PAUSE");
}
Jednak nie działa on poprawnie, źle liczy. Mógłby ktoś rzucić okiem i sprawdzić gdzie jest błąd? Siedzę już nad tym godzine i nie moge znaleŹĆ...Domyslam sie, ze pewnie moglem cos zle zapisac w funkcji szereg. Z gory dzieki za pomoc.