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

C++ Discussion :

problème #IND et #INF


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 11
    Par défaut problème #IND et #INF
    Bonjour tout le monde,

    j'ai ce programme pour le calcule de la somme "s" et la somme carrée "v" d'une variable aléatoire x, lors de l'exécution pour N grand il me donne #IND ou #INF. qlq peut m'aider SVP

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    #include <cmath>
    #include <cstdlib>
    #include <iostream>
    #include <fstream>
    #include <math.h>
    #include <string>
    #include <ctime>
     
    // monte carlo pour une variable aléatoire exponenetielle de paramètre lambda
     
    using namespace std;
     
    int main(int argc, char *argv[])
    {
    float x,U,s,v;
    int N=100000;  
    float lambda=2;
     
    srand(time(NULL));                         
    s=0; v=0;    // initialisation de la somme de la variable aléatoire (somme de x et x^2)
                for(int i=0;i<N;i++)
     
                    {
                        U=(float)rand()/((float)RAND_MAX+1.0);
     
                         x= (-1/lambda)*log(U);
     
                         s=s+x; 
                         v=v+x*x;
                         cout<<"s="<<s<<endl;
                         cout<<"v="<<v<<endl;
     
     
                     } 
     
     
               system("pause");
    return EXIT_SUCCESS;
    }

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 223
    Par défaut
    Bonjour

    Un variable int va de -32 768 à 32 767, or toi tu l'initialise à 100000. Ce qui est trop grand. Pour palier, tu peux utiliser un d'autres type, ou bien limiter ta valeurs N à quelque chose de raisonnable.

    Je pense que ca vient de là, après, il se peut que je soit à coté de la plaque.

    Cordialement,
    PKO

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Février 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 11
    Par défaut
    en fait N est le nombre pour lequel la boucle for tourne, donc pour une bonne précision de mes calculs, il faut que je mets un nombre très grand.

  4. #4
    screetch
    Invité(e)
    Par défaut
    N va trés bien, les entiers vont jusque 2 milliards.
    mais log(0) ca n'est pas défini

    si U se rapproche de 0, log(U) tend vers -infini, et la variable flottante peut alors atteindre de très (trop) grandes valeurs. cette probabilité augmente lorsque N augmente.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 223
    Par défaut
    Citation Envoyé par screetch Voir le message
    N va trés bien, les entiers vont jusque 2 milliards.
    mais log(0) ca n'est pas défini

    si U se rapproche de 0, log(U) tend vers -infini, et la variable flottante peut alors atteindre de très (trop) grandes valeurs. cette probabilité augmente lorsque N augmente.
    Mea culpa

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Février 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 11
    Par défaut
    comment je fais alors SVP

Discussions similaires

  1. Problèmes avec WEB-INF : JSF
    Par le_misterioso dans le forum JSF
    Réponses: 0
    Dernier message: 31/05/2011, 02h45
  2. Petit problème avec autorun.inf
    Par LOBO1986 dans le forum Windows
    Réponses: 1
    Dernier message: 29/12/2010, 10h14
  3. Problème -1.#IND et -1.#INF
    Par Gafagarion dans le forum Débuter
    Réponses: 1
    Dernier message: 02/02/2008, 09h44
  4. Problème avec Autorun.inf
    Par cjacquel dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 21/12/2006, 13h30
  5. Réponses: 4
    Dernier message: 09/02/2006, 15h20

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