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

Fortran Discussion :

Intégration numérique par tirage au sort


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 2
    Par défaut Intégration numérique par tirage au sort
    Bonjour,
    je dois faire une intégration numérique par tirage au sort, mais là je bloque complètement, je comprends pas du tout comment on peux faire une intégrale en tirant au sort le x ?
    merciiiiii

  2. #2
    Membre émérite
    Avatar de Ladgalen
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2007
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Novembre 2007
    Messages : 466
    Par défaut
    Salut

    Tu peux chercher sur internet la méthode de Métropolis ou encore ce qu'on appelle un calcul Monte Carlo (car hasard rappelle les machines à sous).

    Voici l'idée générale :

    suppose que tu veux calculer I = int_a^b p(x)f(x)dx

    où f(x) sont des fonctions et p(x) est une densité de probabilité.

    Pour faire une intégration numérique le plus simple est d'utiliser la méthode des rectangle.
    int_a^b f(x)p(x)dx = Sum_i f(x_i)p(x_i)dx

    en général on prend dx = (b-a)/N avec N le nombre de points. Donc tu espace de manière régulière tes points le long de l'intervalle [a b]. Une autre façon de faire est de choisir dx qui dépend de i. Tu vas alors choisir un dx grand là où p(x) est petit et un dx petit là où p(x) est grand.

    En clair tu choisis dx(x_i) = p(x_i)

    De cette manière tu as que
    I = 1/N Sum_i f(x_i)
    avec N le nombre de points et en supposant que tu ais pris des points tels que dx=p(x). C'est cette dernière condition que tu vas satisfaire avec un tirage aléatoire.

    Tu vas choisir aléatoirement un nombre y dans l'intervalle [a b] puis tu l'acceptes ou le rejettes avec une probabilité p(y). Pour ça tu as encore besoin d'un nombre aléatoire. Tu tires au hasard un nombre s'il est plus grand que p(y) tu n'acceptes pas y s'il est plus petit tu acceptes y. De cette manière tu vas accumuler un grand nombre de valeur de y qui ont été acceptées avec lesquelles tu calcules la somme des f(y) ce qui te donne l'intégrale. Si tu n'as pas de fonction p(x), ce problème ne se pose pas et tu choisi les nombres aléatoires sans conditions.

    Il faut bien surveiller la convergence du résultats. Trace la valeur de l'intégrale en fonction du nombre de nombres aléatoires tirés. Si ça converge ça doit tendre vers une valeur. Pour exemple pour l'intégrale de x entre 2 et 3 je trouve 2,498800 avec 1000 points 2,499376 avec 10000 points 2,500232 avec 100000 points au lieu de 2,5 !

    Tu devrais avoir des infos plus rigoureuses en cherchant sur le net mais tu risques de vite tomber dans un formalisme mathématique qui noie un peu les idées.

    PS : avec fortran 90 tu as randon_number pour un nombre aléatoire.

  3. #3
    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!
    ce qu'on appelle un calcul Monte Carlo
    Pour mémoire, un petit dialogue lors d'un colloque Solvay:

    Albert Einstein: Dieu ne joue pas aux dés
    Niels Bohr: Ce n'est pas à vous de dire à Dieu ce qu'il doit faire

    Jean-Marc Blanc

  4. #4
    Membre émérite
    Avatar de Ladgalen
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2007
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Novembre 2007
    Messages : 466
    Par défaut
    Citation Envoyé par FR119492 Voir le message
    Salut!

    Pour mémoire, un petit dialogue lors d'un colloque Solvay:

    Albert Einstein: Dieu ne joue pas aux dés
    Niels Bohr: Ce n'est pas à vous de dire à Dieu ce qu'il doit faire

    Jean-Marc Blanc
    Et pourtant Einstein à fait pas mal de chose sur le mouvement Brownien si bien modélisé par un jeu de dé

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 2
    Par défaut merciii
    Merci beaucoup pour ta réponse. ça m'a vraiment aidé !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tirage au sort d'un mot
    Par Dav-D dans le forum C
    Réponses: 39
    Dernier message: 04/01/2007, 17h04
  2. Comment remplacer un resultat numérique par son libellé ?
    Par bds2006 dans le forum Bases de données
    Réponses: 3
    Dernier message: 16/06/2006, 11h03
  3. Réponses: 4
    Dernier message: 09/06/2006, 09h33
  4. [VBA-E] Tirage au sort avec probabilité
    Par clarisse dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 12/05/2006, 11h01
  5. Tirage au sort
    Par clampin dans le forum Langage
    Réponses: 2
    Dernier message: 19/12/2005, 16h38

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