Programme pour calcul d'intégrale

Marc31031989 -  
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
Je dois créer un sous programme pascal qui calcule sur l'intervalle [a,b] l'intégrale d'une fonction donnée la méthode employée sera celle des rectangles. On peut traduire l'intégrale par l'approximation A= Intégrale de a à b de f(x)dx = Somme de a à b de alpha(i) avec alpha(i)= Yi* deltax delta x étant la largeur d'un rectangle. Il y a d'autres indications:


Afin d'avoir une écriture indépendante , on adoptera les déclarations suivantes :
Type
Element = ....; (* nom du type de la variable de la fonction *)
Valeur = ....; (* --"-- du résultat de la fonction *)
Par mesure de facilité la fonction à étudier ne sera pas saisie au clavier, mais définie directement dans
le texte via un sous-programme :


Function MA_FONCTION (i : Element ) : Valeur;
Var
y : Valeur;
Begin
y := f(i); (* C'est sur cette ligne que l'on écrira la
définition de la fonction à étudier *)


MA_FONCTION := y;
End;


N. B:
Connaissances nécessaires :
-Notion de type, de variable,
-Instructions : Entrée / Sortie,
Itérations,
Conditionnelles,

3 réponses

Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Attention tout de même, là tu fait une erreur sur l'intégrale. Si tu veux calculer une intégrale plus précise, tu calcul celle de Marco, puis la plus en remplaçant f(abscisse)*deltaX par f(abscisse+deltaX)*deltaX puis tu fait la moyenne des deux aires ainsi obtenues.
En général, on ne donne pas deltaX mais un nombre d'interval :
fonction integraleRect(a,b,nect) : entier
puis : deltaX=(b-a)/nrect; ce qui évite de faire la dernière opération aire = aire + f(abscisse)*(b-abscisse)
1
Marco la baraque Messages postés 996 Date d'inscription   Statut Contributeur Dernière intervention   329
 
Hello,
Effectivement, en général tu dois donner le nombre d'intervalles pour éviter de faire le calcul pour 'finir' l'intervalle.

En revanche, en ce qui concerne ta moyenne, il ne faut pas la faire dans la méthode des rectangles. En effet, l'algorithme que tu explique revient à appliquer la méthode des trapèzes (qui est, tout comme la méthode des rectangles, une approximation de l'intégrale, mais plus précise).

Le but de l'exercice étant d'appliquer la méthode des rectangles, la méthode des trapèzes est selon moi hors-sujet.
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
ouai, enfin, pour moi, c'est la même méthode. Le méthode des rectangle, la base c'est de déoucper l'intégrale en utilisant le fait que c'est la somme des surfaces sous la courbe, et de faire une linéarisation.
0
Marco la baraque Messages postés 996 Date d'inscription   Statut Contributeur Dernière intervention   329 > Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention  
 
Oui oui, l'idée reste la même, je te l'accorde.
Après, tout dépend de ce que demande l'exercice de Marc31031989. La méthode des trapèzes est plus précise, donc s'il n'est pas tenu d'utiliser uniquement la méthode des rectangles, c'est sûr que c'est mieux.
0
Marco la baraque Messages postés 996 Date d'inscription   Statut Contributeur Dernière intervention   329
 
Bonsoir,
Je ne connais pas le Pascal, mais je t'explique globalement l'algorithme :
Tu dois tout d'abord initialiser une variable qui va te servir à additionner les aires petit à petit. Tu l'initialises à 0 car avant de commencer le calcul, ton intégrale n'est ni positive, ni négative.

Une fois ceci fait, tu crées une boucle dans laquelle tu sommes l'aire de tes rectangles. Globalement l'algo ressemble à ça:
fonction integraleRect(a,b,deltaX) : entier
aire=0
Pour abscisse=a, tant que abscisse<b-deltaX, faire
 aire = aire + f(abscisse)*deltaX
 abscisse=abscisse+deltaX
Fin pour
aire = aire + f(abscisse)*(b-abscisse)
retourner aire


A la fin, je fais un petit rectangle pour finir mon intervalle [a;b]
0
nubian110 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   3
 
slt tt l monde ,je suis à la recherche de la fonction integrale écrit en C.merci
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
La fonction intégrale ?? kesako ?
0