IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mathématiques Discussion :

méthode de Simpson


Sujet :

Mathématiques

  1. #1
    Membre confirmé
    Homme Profil pro
    Apprenti
    Inscrit en
    Décembre 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti

    Informations forums :
    Inscription : Décembre 2010
    Messages : 86
    Par défaut méthode de Simpson
    Bonjour,

    j'ai une question de matlab à la limite avec les maths, concernant la méthode de Simpson. Pourquoi dans ce code, fait-on la distinction entre les cas n=1,n=2,n=3 ? Pourquoi a-ton cette expression dans le cas n=3 ?

    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
    function I=simp_v(f,h);
    n=length(f)-1; % Nombre d’intervalles
    if n==1
        fprintf('Données à un seul intervalle'\n');
        return;
    end
    if n==2
        I=h/3*(f(1)+4*f(2)+f(3));
        return; % Revenir et continuer le calcul
    end
    if n==3
        I=(3/8)*h*(f(1)+3*f(2)+3*f(3)+f(4));
        return;
    end
    I=0;
    if 2*floor(n/2)~=n ; %Le nombre d’intervalle doit être pair
        I=3*h/8*(f(n-2)+3*f(n-1)+3*f(n)+f(n+1));
        m=n-3;
    else
        m=n;
    end
    I=I+h/3*(f(1)+4*sum(f(2:2:m))+f(m+1));
    if m>2
        I=I+(h/3)*2*sum(f(3:2:m))
    end

  2. #2
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut
    Salut!
    Pourquoi dans ce code, fait-on la distinction entre les cas n=1,n=2,n=3 ?
    Si n=1, tu as 1 intervalle, donc 2 valeurs f1=f(x1) et f2=f(x2) avec x2=x1+h. En interpolant linéairement entre les points (x1,f1) et (x2,f2), tu appliques la méthode des trapèzes qui ne figure pas dans ton programme.

    Si n=2, tu as 2 intervalles, donc 3 valeurs f1=f(x1), f2=f(x2) avec x2=x1+h et f3=f(x3) avec x3=x2+h. Dans ce cas, la méthode de Simpson consiste à interpoler par une parabole passant par les points (x1,f1), (x2,f2) et (x3,f3), ce qui nettement mieux que par deux segments de droites.

    Si n=3, tu as 3 intervalles, donc 4 valeurs f1=f(x1), f2=f(x2) avec x2=x1+h, f3=f(x3) avec x3=x2+h et f4=f(x4) avec x4=x3+h. Si tu faisais comme pour n=2 entre les points (x1,f1), (x2,f2) et (x3,f3), il te resterait ensuite un seul intervalle entre les points (x3,f3) et (x4,f4) et tu serais obligé d'appliquer la méthode des trapèzes qui est nettement moins moins bonne. C'est pourquoi on interpole par une cubique passant par les points (x1,f1), (x2,f2), (x3,f3) et (x4,f4).

    Jean-Marc Blanc

  3. #3
    Membre confirmé
    Homme Profil pro
    Apprenti
    Inscrit en
    Décembre 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti

    Informations forums :
    Inscription : Décembre 2010
    Messages : 86
    Par défaut suite
    Bonsoir Monsieur, et d'abord, merci pour ces quelques éléments. S'il vous plaît, pourriez-vous encore m'aider ?

    Pour n=1 et n=2, c'est compris.

    Où puis-je trouver la formule pour le calcul de l'intégrale dans le cas n=3,
    c'est-à-dire après avoir interpolé par une cubique.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if n==3
        I=(3/8)*h*(f(1)+3*f(2)+3*f(3)+f(4));
        return;
    end
    Serait-ce possible d'avoir quelques détails de calcul ? Car je ne vois pas d'où viennent le (3/8) et les facteurs 3 dans la parenthèse

    Par ailleurs,

    pourriez-vous me détailler car je suis vraiment perdu ce qui vient après :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    I=0;
    if 2*floor(n/2)~=n; %Le nombre d'intervalle doit être pair
        I=3*h/8*(f(n-2)+3*f(n-1)+3*f(n)+f(n+1));
        m=n-3;
    else
        m=n;
    end
     
    I=I+h/3*(f(1)+4*sum(f(2:2:m))+f(m+1));
     
    if m>2
        I=I+(h/3)*2*sum(f(3:2:m))
    end

  4. #4
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut
    Salut!
    je ne vois pas d'où viennent le (3/8) et les facteurs 3 dans la parenthèse
    Voir "Handbook of Mathematical Functions", de M. Abramowitz et I. A. Stegun, chapitre 25: "Numerical Interpolation, Differentiation and Integration", formules 25.4.5 et 25.4.13

    Jean-Marc Blanc

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 489
    Par défaut
    Bonjour,

    Serait-ce possible d'avoir quelques détails de calcul ? Car je ne vois pas d'où viennent le (3/8) et les facteurs 3 dans la parenthèse
    Tu peux également trouver des explications ici; l'idée de base pour connaitre les coefficients est toujours la même, on les déduit de façon à ce que l'intégration soit exacte pour un polynôme de degré le plus élevé possible.

    Pour ce qui est des manipulations vers la fin du code que tu montres, il s'agit visiblement simplement de cumuler les intégrations calculées sur les sous-intervalles (paquets de trois points pour du Simpson "classique" et éventuellement un paquet de quatre si le nombre total d'intervalles est impair).

    Bonne continuation.

  6. #6
    Membre confirmé
    Homme Profil pro
    Apprenti
    Inscrit en
    Décembre 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti

    Informations forums :
    Inscription : Décembre 2010
    Messages : 86
    Par défaut suite
    Bonjour,

    en fait, je souhaiterais si possible que l'on m'envoie un lien où je puisse trouver les démonstrations de ces formules en particulier celle avec (3/8) et pourquoi pas celle de la formule générale de Newton -Cotes et les démonstrations des cas particuliers : Newton-Cotes 3, Boole-Villarceau, Hardy, etc ...

    Car par exemple, dans le livre vers lequel Jean-Marc Blanc m'a envoyé hier par exemple, il n'y pas les démonstrations des formules les plus importantes meme si il y a beaucoup de formules pour ingénieurs.

    merci

  7. #7
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut
    Salut!
    Tu trouveras plus d'explications dans "Numerical Recipes".
    Jean-Marc Blanc

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 489
    Par défaut
    Bonjour,

    Le détail des calculs pour la méthode des trapèzes et de Simpson "classique" sur 3 points est donnée .
    A partir de là, un papier et un crayon suffisent...

    Bon calculs.

Discussions similaires

  1. méthode de simpson intégrale multidimension
    Par matlabsimpson dans le forum MATLAB
    Réponses: 3
    Dernier message: 29/04/2008, 15h18
  2. Méthode de Simpson
    Par feynman dans le forum Fortran
    Réponses: 7
    Dernier message: 26/09/2007, 18h59
  3. [Singleton] Différences avec méthodes statiques
    Par Franche dans le forum Design Patterns
    Réponses: 1
    Dernier message: 26/02/2003, 17h10
  4. Probleme d'impression avec la méthode TForm->Print()
    Par Kid Icarus dans le forum C++Builder
    Réponses: 13
    Dernier message: 31/07/2002, 14h26
  5. Cryptage en C selon la méthode de césat
    Par shenron dans le forum C
    Réponses: 2
    Dernier message: 31/05/2002, 08h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo