Bonsoir, j'ai un TP d'informatique a faire pour jeudi mais je bloque pour écrire un programme. Le but est de résoudre une intégrale pas la méthode de simpson donc la formule qui doit être utilisé est : I=(h/3)[f(a)+4f(x1)+2f(x2)+4f(x3)+...+4(fximpair)+2f(xpair)+...+f(x(n-1))+f(b)].
La fonction a intégrer est : f(x) = y = 1/(1+x²)
Pour cela, on doit créer un fichier en c++ nommé fonc_integ.cpp retournant la valeur de l'expression f(x) = y = 1/(1+x²), un fichier integ.h pour déclarer le prototype de la fonction et un fichier main, ou il y aura les opérations :
- Le choix des bornes d'intégration a et b et du nombre d'intervalles n
- le calcul de l'intégrale.
Moi j'ai écris :
Pour FONC_INTEG.CPP
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 1 # include < iostream > 2 # include < math.h > 3 4 using namespace std; 5 6 double f( double x ) 7 { 8 9 // Nom de la fonction : fonction 10 // Paramètre 1 : x 11 // Rôle de la fonction : retourne un valeur de x pour un x donné 12 // Valeur retournée : un réel 13 14 // Déclaration des variables 15 16 double y; 17 18 // Initialisations 19 20 y=1/(1+(x*x)); 21 22 // Instruction 23 24 25 y=1/(1+x*x); 26 27 // Retour 28 29 return y; 30 }
Pour INTEG.H:
1et pour MAIN :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 1 #ifndef INTEG_H 2 #define INTEG_H 3 4 double f(double x); 5 6 #endif/*INTEG_H*/
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 2 3 4 5 #include <iostream> 6 #include "integ.h" 7 #include <math.h> 8 using namespace std; 9 double f( double x ); 10 11 int main(int argc, char * argv[]) 12 13 { 14 // Déclaration des variables 15 double a,b,k; 16 long n; 17 double h; 18 double result1,result2,resultat; 19 // Valeur de a et b et n 20 cout << " Entrez la valeur de a : "; 21 cin >> a; 22 cout << " Entrez la valeur de b : "; 23 cin >> b; 24 cout << " Entrez la valeur de n : "; 25 cin >> n; 26 // Initialisation 27 k=1; 28 h=(b-a)/n; 29 30 // Méthode de simpson 31 // Pour les valeurs paires 32 for(h=a;h=2*k;h++) 33 { 34 result1=f(a)+f(b)+2*f(h); 35 } 36 37 // Pour les valeurs impaires 38 for(h=a;h=(2*k)-1;h++) 39 { 40 result2=4*f(h); 41 } 42 // Rassemblement 43 resultat=(result1+result2)*(h/3); 44 45 // Affichage du resultat 46 cout << " Le resultat est : "; 47 cin >> resultat ; 48 49 // Retour 50 return 0; 51 }
Il y a plusieurs problèmes, le résultat ne s'affiche pas et je crois que le calcul ne se fait pas, quelqu'un pourrait m'éclairer svp ?
Partager