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

MATLAB Discussion :

Quelle est la méthode rapide et précis pour calculer une double intégrale numérique


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 18
    Points : 10
    Points
    10
    Par défaut Quelle est la méthode rapide et précis pour calculer une double intégrale numérique
    Bonsoir,
    Il y a des multiples commandes matlab pour calculer le double intégrale numérique.
    Je veux savoir quelle est la meilleur méthode (rapide et précis) :
    - dblquad
    - quad
    - quadl
    - trapz
    mon cas c'est calcule double intégrale numérique d'une fonction polynomiale d'ordre 4.
    comparaison entre trapz et dblquad (rapide et précis) !!!!!!!
    est ce qu'il y d'autre méthodes !!!!!

    Merci pour toute réponse.
    Meilleures salutations.

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2012
    Messages
    291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 291
    Points : 434
    Points
    434
    Par défaut
    Bonjour,

    Pour une double intégrale tu as:
    doc quad2d

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    Tu trouve que 'quad2d' est la méthode le plus précis que la commande trapèze, parce que j'ai programmé la fonction avec la commande 'dblquad' mais lors de l’exécution du programme prend énormément du temps pour voir le résultat.
    j'ai lu quelque document il disait que la méthode de trapèze plus rapide et plus précis que l'utilisation de la quadrature de quad.
    dblquad : Numerically evaluate double integral over rectangle
    quad2d : Numerically evaluate double integral over planar region
    mon fonction utilise double intégrale pour le cas rectangle.

    merci pour votre aide.

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2012
    Messages
    291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 291
    Points : 434
    Points
    434
    Par défaut
    En fait j'ai lu un peu trop rapidement ta question.
    Il me faudrait savoir si ta fonction prend deux paramètres (x,y) et tu intègre par rapport aux deux variables? ou tu n'a qu'un paramètre et tu intègre deux fois?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    Oui, la fonction prend deux paramètres (x,y) et intègre par rapport aux deux variables.
    voir ce lien :
    http://www.developpez.net/forums/d11...if-boucle-for/

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    P=-50:50:150;
    for i = 1:length(P)  
       Q(i)=dblquad(@(X,Y)bfun(X,Y,P(i)),0,1,0,1);
    end 
    plot(Q);grid on
    merci cordialement

  6. #6
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2012
    Messages
    291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 291
    Points : 434
    Points
    434
    Par défaut
    Citation Envoyé par samo25 Voir le message
    entre trapz et dblquad (rapide et précis) !!!!!!!
    Attention trapz est peut-être rapide mais la précision reste à voir.
    Tu peux logiquement calculer l'erreur des différentes méthodes:
    -> méthode des trapèze : l'erreur fait intervenir une dérivée seconde
    -> méthode de Simpson : dérivée 4ème (Plus précis)

    Je te propose de regarder ce lien pour évaluer les erreurs des différentes méthode: http://fr.wikipedia.org/wiki/Calcul_num%C3%A9rique_d'une_int%C3%A9grale

    Toutes ces méthodes font appel au développement de Taylor donc plus l'ordre est grand plus c'est précis mais le temps de calcul est plus long.

    Après je peux te lancer sur une piste avec la Méthode de Romberg qui est bien expliqué sur wikipédia.
    Et voici le lien du code matlab:
    http://dmpeli.math.mcmaster.ca/Matla...ecture3-5.html
    fonction appelée: function Rnum = RombergInt(f,a,b,m)

  7. #7
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    On peut conclu que la méthode qui utilise la commande 'dblquad' dans le cas d'une double intégrale ou 'quad' prend du temps mais plus précis parce que utilise la quadrature de simpson ( quad - Numerically evaluate integral, adaptive Simpson quadrature ) tandis que la méthode de trapz plus rapide mais la précision reste à voir et pour une meilleurs intégration double numérique d'une fonction on utilise la méthode de Romberg.
    méthode de trapz ---- > méthode de simpson ----- > méthode de Romberg (meilleurs et précis).
    merci infiniment Gakusei.

  8. #8
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 881
    Points : 3 429
    Points
    3 429
    Par défaut
    si je ne m'abuse quad et cie intègrent une fonction, trapz intègre un signal échantillonné
    sa précision dépend donc de l'échantillonnage

    perso j’intègre surtout des sorties de simulation simulink, alors j'ai pas trop le choix, c'est trapz

  9. #9
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2012
    Messages
    291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 291
    Points : 434
    Points
    434
    Par défaut
    Citation Envoyé par le fab Voir le message
    si je ne m'abuse quad et cie intègrent une fonction, trapz intègre un signal échantillonné
    sa précision dépend donc de l'échantillonnage
    Pas forcément. Tout calcul numérique d'intégrale dépend de l'échantillonage... (cf. revoir lien wikipédia au-dessus). Au lieu d'échantilloner un signal on échantillonne une fonction.


    Citation Envoyé par le fab Voir le message
    perso j’intègre surtout des sorties de simulation simulink, alors j'ai pas trop le choix, c'est trapz
    En effet, tout dépend du contexte.

  10. #10
    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 : 83
    Localisation : Suisse

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!
    Dans son remarquable livre "How to solve it", George Polya écrit que, pour résoudre un problème, il faut commencer par le comprendre. Et cela implique deux choses: savoir ce que l'on cherche et savoir ce que l'on a. Alors, dans le problème que l'on cherche, dans cette discussion, c'est clair: la valeur numérique de l'intégrale. En revanche, pour ce que l'on a, c'est beaucoup moins clair: s'agit-il de l'expression analytique de la fonction ou d'un tableau contenant les valeurs sur les noeuds d'une grille et, dans ce cas, quelle est la nature de cette grille. Sans ces informations, on ne peut pas répondre à la question.
    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

Discussions similaires

  1. Réponses: 0
    Dernier message: 18/10/2010, 19h47
  2. Réponses: 42
    Dernier message: 07/08/2009, 22h11
  3. PGCD: quelle est la méthode la plus rapide
    Par progfou dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 05/03/2008, 19h26
  4. Réponses: 16
    Dernier message: 19/05/2005, 17h20

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