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 :

éviter les approximations


Sujet :

MATLAB

  1. #1
    Membre habitué Avatar de Lost in
    Inscrit en
    Janvier 2008
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 268
    Points : 126
    Points
    126
    Par défaut éviter les approximations
    Salut,

    une chose bizarre m'arrive

    P1=abs(y1-y2)/abs(x1(1)-x2(1));
    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
     
     
    y1 =
     
       2021
     
     
    y2 =
     
       1780
     
     
    x1 =
     
       223   224   236
     
     
    x2 =
     
       308   309
     
    >> P1
     
    P1 =
     
          3
    Quand on fait le calcul ce n'est pas 3 qu'on doit trouver mais 2.8352 !!

    Est ce que matlab fait des approximations par défaut ? si oui, comment les éviter.

    Merci.

  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
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    >> y1 = 2021;
    y2 = 1780;
    x1 = [223   224   236];
    x2 =[308   309];
     
    P1=abs(y1-y2)/abs(x1(1)-x2(1)) 
     
    P1 =
     
        2.8353

  3. #3
    Membre habitué Avatar de Lost in
    Inscrit en
    Janvier 2008
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 268
    Points : 126
    Points
    126
    Par défaut
    ça ne m'arrive pas tout le temps mais quelques fois.....c'est vraiment bizarre

  4. #4
    Membre habitué Avatar de Lost in
    Inscrit en
    Janvier 2008
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 268
    Points : 126
    Points
    126
    Par défaut
    Salut,

    Est ce que vous pensez qu'en réinstallant matlab le problème sera résolu ?

  5. #5
    Membre actif Avatar de LordPeterPan2
    Inscrit en
    Février 2007
    Messages
    247
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 247
    Points : 239
    Points
    239
    Par défaut
    1°) N'as tu pas définie une fonction s'appelant abs par hasard qui viendrai prendre le pas sur la fonction abs de matlab ? (fais "help abs" ou "which abs" pour savoir si c'est bien la fonction abs de matlab qu'il apelle et pas une autre)
    2°) Lorsque çà t'arrives testes tes variables x1, y1, y2 : ne les ré écris-tu pas ?

  6. #6
    Membre habitué Avatar de Lost in
    Inscrit en
    Janvier 2008
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 268
    Points : 126
    Points
    126
    Par défaut
    Salut,

    Citation Envoyé par LordPeterPan2 Voir le message
    1°) N'as tu pas définie une fonction s'appelant abs par hasard qui viendrai prendre le pas sur la fonction abs de matlab ? (fais "help abs" ou "which abs" pour savoir si c'est bien la fonction abs de matlab qu'il apelle et pas une autre)
    ?
    Non, j'utilise la fonction abs (valeur absolue) de matlab

    Citation Envoyé par LordPeterPan2 Voir le message
    2°) Lorsque çà t'arrives testes tes variables x1, y1, y2 : ne les ré écris-tu pas ?
    C'est ce que je fais


    A+

  7. #7
    Membre actif Avatar de LordPeterPan2
    Inscrit en
    Février 2007
    Messages
    247
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 247
    Points : 239
    Points
    239
    Par défaut
    Citation Envoyé par Lost in Voir le message
    Salut,



    Non, j'utilise la fonction abs (valeur absolue) de matlab



    C'est ce que je fais


    A+
    es-tu sur que c'est la fonction valeur absolue qui est appelée ??? Je ne doute pas que ce soit ton intention la commande "which abs" te confirmera quelle fonction tu utilises (mais tapes cette commande lorsque ton calcule déconne).

    Ensuite lorsque çà déconne teste y1, y2, y1-y2, abs(y1-y2) ... et vois ce qui se passe à un moment donné tu dois trouvé l'erreur.


    Il y a aussi la possibilité que dans le prompt matlab, tu aies une liste de message t'informant que matlab ou la console java à planté, c'est peut être çà non ?

Discussions similaires

  1. [SQL - procStock ] optimisation du code (éviter les boucles)
    Par luimême dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 06/10/2005, 18h22
  2. Réponses: 3
    Dernier message: 05/07/2005, 19h07
  3. Comment éviter les doublons dans ma table
    Par einegel dans le forum Bases de données
    Réponses: 3
    Dernier message: 09/11/2004, 13h18
  4. Éviter les doublons dans une requete
    Par royrremi dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 03/08/2004, 20h37

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