Napisalem takie cos:
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main(){
double a,b,n,x,y,eps;
double fun();
FILE *fw;
printf("Autorem programu jest Wojciech Ciuba, Isem, inf. WFMiI\n"
"Program sprawdza roznice obliczania szeregiem potegowym a wzorem analitycznym\n"
"Dziedzina funkcji to |x| < 1\n"
"Podaj poczatek przedzialu funkcji mieszczacy sie w dziedzinie, x mieszczacy sie w -1,1:\n ");
scanf("%lf",&a);
if(fabs(a)<1){
printf("Podaj koniec przedzialu mieszczacy sie w dziedzinie:\n");
scanf("%lf",&b);
if((fabs(b)<1) && (a<b) && (a!=b)){ /*tutaj program zaczyna dzialanie jezeli dziedzina jest prawidlowa*/
printf("Podaj na ile czesci funkcja ma byc podzielona (liczba naturalna wieksza od 0):\n");
scanf("%lf",&n);
printf("Podaj dokladnosc epsilon: \n");
scanf("%lf",&eps);
if(n>0){
n=(b-a)/n;
x=a;
fw=fopen("wynik","w");
do{
y=sqrt(pow((1./(1-x)),3));
fprintf(fw, "Dla x = %lf \t\t Wynik ze wzoru analitycznego: y = %lf, \t", x, y);
printf("Dla x = %lf \t\t Wynik ze wzoru analitycznego: y = %lf, \t", x, y);
y=fun(x,n);
fprintf(fw, "\tWynik z funkcji = %lf\n",y);
printf("\tWynik z funkcji = %lf\n",y);
x=x+n;
} while(x<=b);
fclose(fw);
} else printf("Podales zla liczbe podzialu");} else printf("Niestety podales zla wartosc koncowa lub wartosc poczatkowa jest wieksza lub rowna koncowej :/");
} else printf("Niestety podales zla wartosc poczatkowa :/");
return(EXIT_SUCCESS);/*komenda konczy program pod systemem Windows*/
}
double fun(double x, double eps)
{
double s,k,z;
z=1;
s=0;
k=2;
do{
s=s+z;
z=z*(((2*k-1)*x)/(2*(k-1)));
k=k+1;
} while (fabs(z)>fabs(s)*eps);
return s;
}
Dla parametrow
Dziedzina funkcji to |x| < 1
Podaj poczatek przedzialu funkcji mieszczacy sie w dziedzinie, x mieszczacy sie w -1,1:
-0.9
Podaj koniec przedzialu mieszczacy sie w dziedzinie:
0.9
Podaj na ile czesci funkcja ma byc podzielona (liczba naturalna wieksza od 0):
50
Podaj dokladnosc epsilon:
0.000000000000000001
Wypluwa takie coś:
Dla x = -0.900000 Wynik ze wzoru analitycznego: y = 0.381830, Wynik z funkcji = 0.375008
Dla x = -0.864000 Wynik ze wzoru analitycznego: y = 0.392944, Wynik z funkcji = 0.400362
Dla x = -0.828000 Wynik ze wzoru analitycznego: y = 0.404609, Wynik z funkcji = 0.411635
Dla x = -0.792000 Wynik ze wzoru analitycznego: y = 0.416863, Wynik z funkcji = 0.409346
Dla x = -0.756000 Wynik ze wzoru analitycznego: y = 0.429747, Wynik z funkcji = 0.438090
Dla x = -0.720000 Wynik ze wzoru analitycznego: y = 0.443310, Wynik z funkcji = 0.435714
Dla x = -0.684000 Wynik ze wzoru analitycznego: y = 0.457601, Wynik z funkcji = 0.466411
Dla x = -0.648000 Wynik ze wzoru analitycznego: y = 0.472677, Wynik z funkcji = 0.481567
Dla x = -0.612000 Wynik ze wzoru analitycznego: y = 0.488599, Wynik z funkcji = 0.499250
Dla x = -0.576000 Wynik ze wzoru analitycznego: y = 0.505435, Wynik z funkcji = 0.496157
Dla x = -0.540000 Wynik ze wzoru analitycznego: y = 0.523262, Wynik z funkcji = 0.532037
Dla x = -0.504000 Wynik ze wzoru analitycznego: y = 0.542161, Wynik z funkcji = 0.533095
Dla x = -0.468000 Wynik ze wzoru analitycznego: y = 0.562226, Wynik z funkcji = 0.572537
Dla x = -0.432000 Wynik ze wzoru analitycznego: y = 0.583560, Wynik z funkcji = 0.570541
Dla x = -0.396000 Wynik ze wzoru analitycznego: y = 0.606278, Wynik z funkcji = 0.598344
Dla x = -0.360000 Wynik ze wzoru analitycznego: y = 0.630510, Wynik z funkcji = 0.642274
Dla x = -0.324000 Wynik ze wzoru analitycznego: y = 0.656399, Wynik z funkcji = 0.663548
Dla x = -0.288000 Wynik ze wzoru analitycznego: y = 0.684110, Wynik z funkcji = 0.671265
Dla x = -0.252000 Wynik ze wzoru analitycznego: y = 0.713828, Wynik z funkcji = 0.706063
Dla x = -0.216000 Wynik ze wzoru analitycznego: y = 0.745761, Wynik z funkcji = 0.763480
Dla x = -0.180000 Wynik ze wzoru analitycznego: y = 0.780148, Wynik z funkcji = 0.790750
Dla x = -0.144000 Wynik ze wzoru analitycznego: y = 0.817261, Wynik z funkcji = 0.822880
Dla x = -0.108000 Wynik ze wzoru analitycznego: y = 0.857414, Wynik z funkcji = 0.838000
Dla x = -0.072000 Wynik ze wzoru analitycznego: y = 0.900965, Wynik z funkcji = 0.892000
Dla x = -0.036000 Wynik ze wzoru analitycznego: y = 0.948332, Wynik z funkcji = 0.946000
Dla x = 0.000000 Wynik ze wzoru analitycznego: y = 1.000000, Wynik z funkcji = 1.000000
Dla x = 0.036000 Wynik ze wzoru analitycznego: y = 1.056536, Wynik z funkcji = 1.054000
Dla x = 0.072000 Wynik ze wzoru analitycznego: y = 1.118608, Wynik z funkcji = 1.108000
Dla x = 0.108000 Wynik ze wzoru analitycznego: y = 1.187005, Wynik z funkcji = 1.162000
Dla x = 0.144000 Wynik ze wzoru analitycznego: y = 1.262669, Wynik z funkcji = 1.216000
Dla x = 0.180000 Wynik ze wzoru analitycznego: y = 1.346726, Wynik z funkcji = 1.330750
Dla x = 0.216000 Wynik ze wzoru analitycznego: y = 1.440542, Wynik z funkcji = 1.411480
Dla x = 0.252000 Wynik ze wzoru analitycznego: y = 1.545780, Wynik z funkcji = 1.497070
Dla x = 0.288000 Wynik ze wzoru analitycznego: y = 1.664485, Wynik z funkcji = 1.587520
Dla x = 0.324000 Wynik ze wzoru analitycznego: y = 1.799202, Wynik z funkcji = 1.757232
Dla x = 0.360000 Wynik ze wzoru analitycznego: y = 1.953125, Wynik z funkcji = 1.885060
Dla x = 0.396000 Wynik ze wzoru analitycznego: y = 2.130319, Wynik z funkcji = 2.023872
Dla x = 0.432000 Wynik ze wzoru analitycznego: y = 2.336025, Wynik z funkcji = 2.259990
Dla x = 0.468000 Wynik ze wzoru analitycznego: y = 2.577108, Wynik z funkcji = 2.454951
Dla x = 0.504000 Wynik ze wzoru analitycznego: y = 2.862711, Wynik z funkcji = 2.671122
Dla x = 0.540000 Wynik ze wzoru analitycznego: y = 3.205260, Wynik z funkcji = 3.034755
Dla x = 0.576000 Wynik ze wzoru analitycznego: y = 3.622023, Wynik z funkcji = 3.346641
Dla x = 0.612000 Wynik ze wzoru analitycznego: y = 4.137637, Wynik z funkcji = 3.853413
Dla x = 0.648000 Wynik ze wzoru analitycznego: y = 4.788351, Wynik z funkcji = 4.314859
Dla x = 0.684000 Wynik ze wzoru analitycznego: y = 5.629494, Wynik z funkcji = 5.067651
Dla x = 0.720000 Wynik ze wzoru analitycznego: y = 6.749366, Wynik z funkcji = 6.018448
Dla x = 0.756000 Wynik ze wzoru analitycznego: y = 8.296889, Wynik z funkcji = 7.254651
Dla x = 0.792000 Wynik ze wzoru analitycznego: y = 10.541563, Wynik z funkcji = 8.908874
Dla x = 0.828000 Wynik ze wzoru analitycznego: y = 14.018687, Wynik z funkcji = 11.608982
Dla x = 0.864000 Wynik ze wzoru analitycznego: y = 19.938461, Wynik z funkcji = 15.628022
I nie wiem czy to ejst dobrze, i czy nie za duzo rozbieznosc?