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 ( \(\displaystyle{ x}\) ),
wartość funkcji z biblioteki matemtycznej dla \(\displaystyle{ x}\), wartość
funkcji szereg dla \(\displaystyle{ \arctan \left( x \right)}\).
W funkcji szereg nie uzywamy funkcji
pow
ani silnia
; doobliczenia kolejnego wyrazu szeregu wykorzystujemy wyraz
poprzedni.
to sa moje wypociny czy ktos moglby mi pomoc z ta funkcja arctg(x) bo wychodzi inaczej niz powinno
Kod: Zaznacz cały
#include <stdio.h>
#include <stdlib.h>
#define li 100 //liczba iteracji do szeregu
//tablicowanie funkcji atan w <a,b> - szereg + funkcja biblioteczna
//definicja funkcji szereg x - parametr formalny
double szereg(double x)
{
double s, w;
int i;
s=x;
w=x;
x=0;
for(i=0;i<=li;i++)
{
w= -w*x*x/(2*i*(2*i+1));
s=s+w;
}
return s;
}
int main(int argc, char *argv[])
{
int lp;
double a, b, krok, x;
//<a;b> - przedzial, lp - ilosc podprzedzialów
printf("podaj konce przedzialow i liczbe podprzedzialow
");
scanf("%lf %lf %d",&a,&b,&lp);
krok=(b-a)/lp;
printf("krok=%6.2lf
",krok);
printf(" ----------------------------
");
printf(" x szereg(x) atan(x)
----------------------------
");
for (x=a;x<=b;x+=krok)
printf("%10.2lf %7.4lf %7.4lf
",x,szereg(x),atan(x));
printf(" ----------------------------
");
system("PAUSE");
return 0;
}