Witam, mam za zadanie zrobić program o treści:
Tablicowanie funkcji w zadanym przedziale, z zadaną liczbą podprzedziałów, z wykorzystaniem rozwinięcia w szereg. Dane wejściowe do programu: przedział, w którym funkcja ma być tablicowana, liczba podprzedziałów Trzeba napisać funkcję szereg, która na podstawie rozwinięcia w szereg oblicza wartość funkcji dla danego argumentu. Na ekranie mają się pojawić 3 kolumny liczb: argument (x), wartość funkcji z biblioteki matemtycznej dla x, wartość funkcji szereg dla x. W funkcji szereg nie używamy funkcji pow ani silnia; do obliczenia kolejnego wyrazu szeregu wykorzystujemy wyraz poprzedni.>
Mam to zrobić dla ln(x+1). Program jest napisany analogicznie, do tego który miałem podany w zadaniu jako przykład. Zmieniłem tutaj funkcje szeregu oraz końcówkę programu.
Chciałbym, żebyscie mi powiedzieli czy zrobiłem to dobrze, jezeli nie, to co zmienić.
Jak wygląda ogólnie szereg znalazłem na wolphramie, bądź tutaj na wikipedii: https://pl.wikipedia.org/wiki/Logarytm_naturalny
Oto mój kod
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define n 100
double szereg(double x)
{
double s, w;
int i;
s=x;
w=x;
for(i=1; i<n; i++)
{
w=-w*x/i;
s=s+w;
}
return s;
}
int main()
{
int lp;
double a, b, krok, x;
printf("podaj konce przedzialow i liczbe podprzedzialow\n");
scanf("%lf %lf %d",&a,&b,&lp);
krok=(b-a)/lp;
printf("krok=%6.2lf\n\n\n",krok);
printf(" ----------------------------\n\n");
printf(" x szereg(x) log(x+1)\n -----------------------------\n");
for (x=a; x<=b; x+=krok)
printf("%10.2lf %7.4lf %7.4lf\n",x,szereg(x),log(x+1));
printf(" ----------------------------\n\n");
return 0;
}