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 :

Calcul pour une condition non satifsaite


Sujet :

MATLAB

  1. #1
    Membre du Club Avatar de NELLLY
    Inscrit en
    Mars 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 94
    Points : 50
    Points
    50
    Par défaut Calcul pour une condition non satifsaite
    Voilà un exp
    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
    format long e
    p1=0.07;
    TCmin=30000;
    for n1=1:5
        for n2=4:7
            for L1=3:5
                for L2=4:5
                    n1
                    n2
                    L1
                    L2
                    q11=binocdf(L1,n1,p1)
                    q12=binocdf(L2,n1,p1)-binocdf(L1,n1,p1)
                    q21=binocdf(L1,n2,p1)
                    q22=binocdf(L2,n2,p1)-binocdf(L1,n2,p1)
                     Q=[q11 q12;q21 q22];
                     QQ=eye(2)-Q
                     if det(QQ)==0
                         TC=NaN;
                     else
                         A=[0 1]*inv(QQ)*ones(2,1)
                         B=A-2
                         C=(3*A)+B
                         TC=A+C+B
                       end
                     end
                 end
             end
         end
    si det(QQ)==0 on ne fait pas le calcul de TC.
    Lors de l'execution
    une erreur s'affiche
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    n1 =
     
         5
     
     
    n2 =
     
         5
     
     
    L1 =
     
         3
     
     
    L2 =
     
         5
     
     
    q11 =
     
        9.998866727999994e-001
     
     
    q12 =
     
        1.133272000005681e-004
     
     
    q21 =
     
        9.998866727999994e-001
     
     
    q22 =
     
        1.133272000005681e-004
     
     
    QQ =
     
        1.133272000005681e-004   -1.133272000005681e-004
       -9.998866727999994e-001    9.998866727999994e-001
     
    Warning: Matrix is close to singular or badly scaled.
             Results may be inaccurate. RCOND = 6.776264e-021.
    > In C:\MATLAB6p5\work\vssmc\exp55.m at line 22
    le determinant dans ce cas =0 et pourtant il fait le calcul
    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
     
    A =
     
       -7.379533931401575e+019
     
     
    B =
     
       -7.379533931401575e+019
     
     
    C =
     
       -2.951813572560630e+020
     
     
    TC =
     
       -4.427720358840945e+020
    où est le problème?

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 769
    Points : 726
    Points
    726
    Par défaut
    Pour moi, il a un problème dans le calcul de "det(QQ)"

    Peux tu nous donner le résultat de matlab stp

    (au cas où tu ne serais pas, tu écris "det(QQ)" juste avant le if et sans le ";")

    Merci
    INCIA : MATLAB R2014a sous MAC OS 10.9.3

    Nous piétinerons éternellement aux frontières de l'Inconnu, cherchant à comprendre ce qui restera toujours incompréhensible. Et c'est précisément cela qui fait des nous des hommes. Isaac Asimov

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    640
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 640
    Points : 776
    Points
    776
    Par défaut
    Bonjour Nelly,

    Pour moi, il n'y a aucun problème avec ton programme. Le déterminant n'est pas nul. Il est juste très petit et matlab affiche 0...

    Au premier warning,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    det(QQ)=2.140692026037594e-021
    Donc ton programme va bien calculer tes valeures A, B, C et TC.

    Maintenant il faut voir si ce warning va te gêner ou non...

  4. #4
    Membre éprouvé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2007
    Messages
    979
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 979
    Points : 1 256
    Points
    1 256
    Par défaut
    utilise plutot :

    ou, le pseudo-inverse :

    AlloSchool, votre école sur internet.

  5. #5
    Membre averti

    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Points : 352
    Points
    352
    Par défaut
    A la place de
    je conseillerais plutot la fonction cond(...)

    Salutations,

    Gregoire

Discussions similaires

  1. Besoin d'aide pour une requête non correspondance
    Par isabelle b dans le forum Requêtes et SQL.
    Réponses: 35
    Dernier message: 23/06/2008, 00h30
  2. message d'erreur pour une condition if
    Par toshiro92 dans le forum Langage
    Réponses: 17
    Dernier message: 16/11/2007, 12h38
  3. Réponses: 3
    Dernier message: 30/06/2006, 09h41
  4. Réponses: 8
    Dernier message: 22/05/2006, 09h25
  5. Ajouter une clé pour une session non ouverte
    Par prgasp77 dans le forum Windows
    Réponses: 4
    Dernier message: 29/10/2005, 00h26

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