Programme pour calcul d'intégrale

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,
Configuration: Windows Vista
Firefox 2.0.0.14

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    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. Contributeur
      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.
    2. Contributeur
      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.
    3. Contributeur
      @Char SnipeurOui 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.
  2. Contributeur
    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]
    1. slt tt l monde ,je suis à la recherche de la fonction integrale écrit en C.merci
      1. Contributeur
        La fonction intégrale ?? kesako ?