1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
| #include <iostream>
#include <cmath>
using namespace std;
//1. fonction retournant la valeur de f(x).
int fonct(int x)
{
int a;
a = (4*pow(x, 3)) - (3*pow(x, 2)) + 5;
return a;
}
//2. Approximation de l'intégrale de f sur sa borne inférieure
int app_inf(int n, int a, int b)
{
int v, d, t, q;
d = b-a;
t = 0;
q = d/n;
v = a;
while (v != (b-q) ) // ou v < b
{
t = t + q * fonct(v);
v = v + q;
}
return t;
}
//3. Approximation de l'intégrale de f sur sa borne supérieure
int app_sup(int n, int a, int b)
{
int v, d, t, q;
d = b - a;
t = 0;
q = d/n;
v = a + q;
while (v != b) // ou v < b+q
{
t = t + q * fonct(v);
v = v + q;
}
return t;
}
//4. Approximation de l'intégrale de f par la méthode des trapèzes
int app_trap(int n, int a, int b)
{
int v, d, t, q;
d = b - a;
t = 0;
q = d/n;
v = a + q;
while (v <= b)
{
t = t + (1/2*(fonct(v) + fonct(v-q))*q);
v = v + q;
}
return t;
}
//5.
int main(void)
{
int n;
cout << "Calcul de l'integrale de la fonction f définie par :" << endl;
cout << "f(x) = 4x^3 - 3x^2 + 5" << endl;
cout << "Combien d'intervalle pour l'approximation ? (positif non nul)" << endl;
cin >> n;
cout << "Resultats des approximations :" << endl;
cout << "app_inf : " << app_inf(n, 1, 2) << endl;
cout << "app_sup : " << app_sup(n, 1, 2) << endl;
cout << "app_trap : " << app_trap(n, 1, 2) << endl;
return 0;
} |
Partager