aire pour TP d'informatique
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:
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:
Code:
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*/ |
1et pour MAIN :
Code:
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 ?