Algorithme Matlab
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

Algorithme Matlab



  1. #1
    invitede8302a1

    Algorithme Matlab


    ------

    Bonsoir,

    J'ai un problème avec ce petit algorithme qui me rend fou !!

    T=1;
    t=0;

    while t<=T

    if t==0.1
    disp('ok')
    t=t+0.01;
    else

    t=t+0.01;
    end

    end

    Selon Matlab, t n'est jamais égal à 0.1 !!! c'est incompréhensible

    Merci

    -----

  2. #2
    invitede8302a1

    Re : Algorithme Matlab

    et si jamais j'utilise un for à la place... ça marche
    qq'un peut m'expliquer ?

  3. #3
    danyvio

    Re : Algorithme Matlab

    Peux tu joindre la version avec "for" ?
    On trouve des chercheurs qui cherchent ; on cherche des chercheurs qui trouvent !

  4. #4
    invitede8302a1

    Re : Algorithme Matlab

    salut voilà les deux versions :

    for t=0:0.01:1
    t==0.1
    pause
    end

    vs

    t=0;
    while t<=1
    t==0.1
    pause
    t=t+0.01;
    end

    voilà, dans un cas, t sera à un moment égal à 0.1, dans l'autre cas NON !!! je crois que j'hallucine
    essayez vous allez voir !!

  5. A voir en vidéo sur Futura
  6. #5
    danyvio

    Re : Algorithme Matlab

    Citation Envoyé par james_83 Voir le message
    salut voilà les deux versions :

    for t=0:0.01:1
    t==0.1
    pause
    end

    vs

    t=0;
    while t<=1
    t==0.1
    pause
    t=t+0.01;
    end

    voilà, dans un cas, t sera à un moment égal à 0.1, dans l'autre cas NON !!! je crois que j'hallucine
    essayez vous allez voir !!
    Je ne suis pas xpert en matlab, mais je ne vois pas ce que font les lignes t==0.1 ?
    t==0.1 n'est pas une instruction d'affectation de valeur, mais pourrait être un élément de comparaison:

    if t==0.1

    Bizarre... As-tu transcrit exactement tes programmes ?
    On trouve des chercheurs qui cherchent ; on cherche des chercheurs qui trouvent !

  7. #6
    invite15928b85

    Re : Algorithme Matlab

    Bonjour.

    Le problème est lié au calcul en virgule flottante par le processeur de la machine (Matlab n'a rien à voir là-dedans). 0.01 n'a pas de représentation exacte dans la machine. Les additions successives dans la boucle while finissent par générer une erreur d'arrondi non négligeable, alors que la boucle for fait le calcul autrement.

    Conclusion, on ne teste jamais l'égalité de deux nombres en virgule flottante en faisant a == b, on teste leur écart |a - b| < epsilon, où epsilon est déterminé en fonction du contexte. C'est un truc bien connu ...

    Cordialement.

  8. #7
    invitede8302a1

    Re : Algorithme Matlab

    bonjour,

    Ok, merci beaucoup, je le saurais

Discussions similaires

  1. [matlab] programmation : peut-on générer un arbre des fonctions d'un code Matlab ?
    Par inviteafe1cd13 dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 09/07/2015, 11h12
  2. Gauss seidel algorithme informatique Matlab
    Par invited08b581e dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 26/04/2013, 10h37
  3. algorithme de squalattisation d'empreinte en Matlab
    Par invite98a02b2e dans le forum Électronique
    Réponses: 6
    Dernier message: 02/03/2011, 18h23
  4. Matrice et algorithme Matlab
    Par invited028b400 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 14/01/2008, 14h53
  5. [MatLab] Sb2Sl => Matlab classique = pb intégration.
    Par invite6e6d5361 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 03/08/2005, 22h02
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...