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 :

Probleme de precision


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 10
    Points : 13
    Points
    13
    Par défaut Probleme de precision
    Bonjour je ne comprend pas ce qui ce passe
    J'ai 3 point A B C (x,y,z)
    Je recherche l’équation cartésienne du plan
    je trouve la normal au plan puis d
    ensuite je realise 3 test

    a*Ax+b*Ay+c*Az+d
    a*Bx+b*By+c*Bz+d
    a*Cx+b*Cy+c*Cz+d

    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
     
        % Creation des vecteurs pour la normale
        AB=B-A;
        AC=C-A;
     
        % Defintion de la normale
        fn=cross(AB,AC);
        % Normalisation de la normale
        Magnitude =sqrt(fn(1)^2 + fn(2)^2 + fn(3)^2);
        fn=fn/Magnitude;
     
        % Definition de lequation du plan ax+by+cz+d=0
        a=fn(1);
        b=fn(2);
        c=fn(3);
     
        format long
     
        d = -(a*A(1) + b*A(2) + c*A(3))
        d = -(a*B(1) + b*B(2) + c*B(3))
        d = -(a*C(1) + b*C(2) + c*C(3))
     
        %test
        a*A(1)+b*A(2)+c*A(3)+d
        a*B(1)+b*B(2)+c*B(3)+d
        a*C(1)+b*C(2)+c*C(3)+d

    Ce que je ne comprend pas c'est que les 3 definition de d donne le meme resultat (-0.051228465412824)


    Mais quand je fais le test si je prend le d definie grace a A j'obtient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        a*A(1)+b*A(2)+c*A(3)+d=0
        a*B(1)+b*B(2)+c*B(3)+d=-6.938893903907228e-18
        a*C(1)+b*C(2)+c*C(3)+d=6.938893903907228e-18
    d definie grace a B j'obtient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        a*A(1)+b*A(2)+c*A(3)+d=-6.938893903907228e-18
        a*B(1)+b*B(2)+c*B(3)+d=0
        a*C(1)+b*C(2)+c*C(3)+d=6.938893903907228e-18
    d definie grace a C j'obtient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        a*A(1)+b*A(2)+c*A(3)+d=0
        a*B(1)+b*B(2)+c*B(3)+d=-6.938893903907228e-18
        a*C(1)+b*C(2)+c*C(3)+d=6.938893903907228e-18
    Et apres je vais effectuer des test et des operation qui vont m'amener a avoir des erreur de test car ==0 ce n'est pas le cas

    AU SECOUR!

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 318
    Points : 52 958
    Points
    52 958

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 10
    Points : 13
    Points
    13
    Par défaut
    Merci beaucoup pour votre réponse rapide.

  4. #4
    Membre habitué
    Homme Profil pro
    Doctorant LNE Trappes
    Inscrit en
    Mai 2014
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Doctorant LNE Trappes
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 64
    Points : 174
    Points
    174
    Par défaut
    Essaie de manipuler la fonction vpa pour voir si ça donne quelque chose. J'en ai mis dans le calcul de ta norme, mais faut voir s'il faut en rajouter autre part.

    vpa permet à matlab de manipuler n chiffres après la virgule : vpa(variable, n)

    Code m : 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
    >> A=[1.5 2.6 3.9];
    B=[6.9 6.8 7.3];
    C=[1.2 3.6 5.7];
    % Creation des vecteurs pour la normale
        AB=B-A;
        AC=C-A;
     
        % Defintion de la normale
        fn=cross(AB,AC);
        % Normalisation de la normale
        Magnitude =sqrt(vpa(fn(1),50)^2 + vpa(fn(2),50)^2 + vpa(fn(3),50)^2);
        fn=vpa(fn,50)/Magnitude;
     
        % Definition de lequation du plan ax+by+cz+d=0
        a=fn(1);
        b=fn(2);
        c=fn(3);
     
        %format long
     
        d = -(a*A(1) + b*A(2) + c*A(3));
        d = -(a*B(1) + b*B(2) + c*B(3));
        d = -(a*C(1) + b*C(2) + c*C(3));
     
        %test
        a*A(1)+b*A(2)+c*A(3)+d
        a*B(1)+b*B(2)+c*B(3)+d
        a*C(1)+b*C(2)+c*C(3)+d
     
    ans =
     
    3.6734198463196484624023016788195e-40
     
     
    ans =
     
    -7.346839692639296924804603357639e-40
     
     
    ans =
     
    0.0

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

Discussions similaires

  1. conversion float-string, probleme de precision.
    Par KINENVEU dans le forum Général Python
    Réponses: 2
    Dernier message: 18/01/2008, 09h47
  2. [fmincon] Problème de précision tronquée
    Par Kcyril dans le forum MATLAB
    Réponses: 2
    Dernier message: 02/04/2007, 12h10
  3. [Delphi 6] probleme de precision avec StrToFloat()
    Par ludovic tambour dans le forum Delphi
    Réponses: 12
    Dernier message: 29/11/2006, 18h17
  4. probleme de precision
    Par Andrey dans le forum C
    Réponses: 4
    Dernier message: 07/11/2006, 10h47
  5. [Math]probleme de precision de calcul sur les float
    Par calvin dans le forum Langage
    Réponses: 6
    Dernier message: 26/05/2005, 08h53

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