1. Valoarea functiei Ch x (cosinus hiperbolic) cu ajutorul sirului Taylor, exactitate eps, conform formulei
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
int main(){
const int MaxIter = 500; /*Numarul maxim admisibil de iteratii*/
double x = 3.0; //argumentul
double eps = DBL_EPSILON; //exactitate
/*cout << "\nIntroduceti argumentul\n";
cin >> x;*/
double ch = 1; //primul mebru al sirului
double y = ch; //vloarea sumei
for(int n = 0; fabs(ch) > eps && n < MaxIter; n++){
ch *= x * x / ((2 * n + 1) * (2 * n + 2)); //membrul sirului
y += ch; //adaugare membru al sirului la suma
cout << "\nValoarea functiei dupa : " << n << " iteratii este " << y << endl;
}
cout << "\nValoarea functiei: " << y << " pentru x = " << x << endl;
cosh(x);
cout << "\nValoarea functiei(din biblioteca math.h): " << y << " pentru x = " << x << endl;
getche();
return 0;
}
Valoarea functiei dupa : 1 iteratii este 8.875 Valoarea functiei dupa : 2 iteratii este 9.8875 Valoarea functiei dupa : 3 iteratii este 10.0502 Valoarea functiei dupa : 4 iteratii este 10.0665 Valoarea functiei dupa : 5 iteratii este 10.0676 Valoarea functiei dupa : 6 iteratii este 10.0677 Valoarea functiei dupa : 7 iteratii este 10.0677 Valoarea functiei dupa : 8 iteratii este 10.0677 Valoarea functiei dupa : 9 iteratii este 10.0677 Valoarea functiei dupa : 10 iteratii este 10.0677 Valoarea functiei dupa : 11 iteratii este 10.0677 Valoarea functiei dupa : 12 iteratii este 10.0677 Valoarea functiei dupa : 13 iteratii este 10.0677 Valoarea functiei: 10.0677 pentru x = 3 Valoarea functiei(din biblioteca math.h): 10.0677 pentru x = 3 |
1. De calculat si de afisat sub forma de tabel valoaea functiei F pe intervalul Xinc - Xsf, cu pasul dX:
unde a, b, c - numere reale.
Functia F trebuie sa primeasca valoarea reala, daca expresia (Aint SAU Bint) SI (Aint SAU Cint) nu este egala cu zero, si valoarea intreaga in caz contrar. Aint, Bint, Cint reprezinta partea intreaga al valorilor a,b,c.Operatiile SI si SAU - sunt pe biti. Valorile lui a,b,c,Xinc, Xsf, dX sa fie introduse de la tastatura.
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
int main(){
double xInitial, xTerminal, dX, a, b ,c, F;
printf("Introduceti xInitial, xTerminal, dX, a, b ,c \n");
scanf("%lf%lf%lf%lf%lf%lf" ,&xInitial, &xTerminal, &dX, &a, &b ,&c);
/* xInitial = 1;
xTerminal = 5;
dX = 0.1;
a = 0;
b = 0;
c = 0;*/
printf(" ---------------------------\n");
printf("| X | F |\n");
printf(" ---------------------------\n");
for(double x = xInitial; x <= xTerminal; x += dX){
if(x < 0 && b != 0) F = (a*x*x) + b;
if(x > 0 && b == 0) F = (x - a) / (x - c);
else F = x/c;
if( (((int)a | (int)b) & ((int)a | (int)c)) !=0 )
printf("|%9.2lf | %9.2lf |\n", x, F);
else
printf("|%9.2lf | %9d |\n", x, (int)F);
}
getche();
return 0;
}
Introduceti xInitial, xTerminal, dX, a, b ,c -10 10 1 5 6 8 --------------------------- | X | F | --------------------------- | -10.00 | -1.25 | | -9.00 | -1.13 | | -8.00 | -1.00 | | -7.00 | -0.88 | | -6.00 | -0.75 | | -5.00 | -0.63 | | -4.00 | -0.50 | | -3.00 | -0.38 | | -2.00 | -0.25 | | -1.00 | -0.13 | | 0.00 | 0.00 | | 1.00 | 0.13 | | 2.00 | 0.25 | | 3.00 | 0.38 | | 4.00 | 0.50 | | 5.00 | 0.63 | | 6.00 | 0.75 | | 7.00 | 0.88 | | 8.00 | 1.00 | | 9.00 | 1.13 | | 10.00 | 1.25 | |
2. De calculat si de afisat sub forma de tabel valoaea functiei F pe intervalul Xinc - Xsf, cu pasul dX:
unde a, b, c - numere reale.
Functia F trebuie sa primeasca valoarea reala, daca expresia (Aint SAU Bint) SI (Aint SAU Cint) nu este egala cu zero, si valoarea intreaga in caz contrar. Aint, Bint, Cint reprezinta partea intreaga al valorilor a,b,c.Operatiile SI si SAU - sunt pe biti. Valorile lui a,b,c,Xinc, Xsf, dX sa fie introduse de la tastatura.
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
int main(){
double xInitial, xTerminal, dX, a, b ,c, F;
printf("Introduceti xInitial, xTerminal, dX, a, b ,c \n");
scanf("%lf%lf%lf%lf%lf%lf" ,&xInitial, &xTerminal, &dX, &a, &b ,&c);
/* xInitial = 1;
xTerminal = 5;
dX = 0.1;
a = 1;
b = 2;
c = 3;*/
printf(" ---------------------------\n");
printf("| X | F |\n");
printf(" ---------------------------\n");
for(double x = xInitial; x <= xTerminal; x += dX){
if((x + 5 < 0) && c == 0) F = (1 / (a*x)) - b;
if((x + 5 > 0) && c != 0) F = (x - a) / x;
else F = 10 * x / (c - 4);
if( (((int)a | (int)b) & ((int)a | (int)c)) !=0 )
printf("|%9.2lf | %9.2lf |\n", x, F);
else
printf("|%9.2lf | %9d |\n", x, (int)F);
}
getche();
return 0;
}
Introduceti xInitial, xTerminal, dX, a, b ,c -6 6 1 2 4 6 --------------------------- | X | F | --------------------------- | -6.00 | -30.00 | | -5.00 | -25.00 | | -4.00 | 1.50 | | -3.00 | 1.67 | | -2.00 | 2.00 | | -1.00 | 3.00 | | 0.00 | -1.#J | | 1.00 | -1.00 | | 2.00 | 0.00 | | 3.00 | 0.33 | | 4.00 | 0.50 | | 5.00 | 0.60 | | 6.00 | 0.67 | |
3.