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 :

boucle while pour relancer le calcul, avec une valeur trouvée dans la première boucle


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 16
    Points : 11
    Points
    11
    Par défaut boucle while pour relancer le calcul, avec une valeur trouvée dans la première boucle
    Bonjour,

    Mon problème est assez simple;

    Sous Matlab je realise des calculs sous cette forme (par exemple)

    A = 3 +E
    B=A+4
    D = 3+B

    Mon problème est que je voudrais utiliser la valeur trouvée en D à la place de E, en gros je voudrais relancer les calculs pour E=D
    Je serai tenter par utiliser une boucle while, mais ce que j'ai fait pour l'instant ne marche pas, en gros en reprenant l'exemple j'ai écrit :
    E=E0
    D=D0
    While E différent de D
    A = 3 +E
    B=A+4
    D = 3+B
    Le problème maintenant c'est que si j'écrit E=D, le calcul s'arrete, et j'ai pas ce que je veux...

    merci

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,

    pas sur d'avoir compris, mais peut-être quelque chose comme ça:
    E=E0

    A = 3 +E
    B=A+4
    D = 3+B

    While E différent de D
    E=D
    A = 3 +E
    B=A+4
    D = 3+B

    Par contre D sera toujours différent de E donc c'est une boucle infinie avec ce code.
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 16
    Points : 11
    Points
    11
    Par défaut je vais essayer d'être plus clair
    Bonjour, je vais essayer d'être plus clair

    Je veux simuler une turbine à gaz avec un récupérateur de chaleur qui permet d'utiliser la chaleur en sortie de la turbine pour chauffer l'air avant d'aller dans la chambre de combustion et donc de réaliser des économies d'énergies.

    En gros une turbine à gaz c'est : Compression->Combustion->turbine Je calculs les températures en sortie à chaque niveau: T1:25°C, T2, T3=950°C et T4, pas de problèmes ici.

    Puis on ajoute de récupérateur Compression->récupérateur->Combustion->turbine T1=25°C , T2 , T3, T4=950°C et T5. Le problème est que pour avoir T3, j'ai besoin de T2 et T5, T3=f(T2,T5). Mais au moment du calcul, je connais seulement T2 mais pas T5. Je suis obliger de réaliser les calculs dans l'odre suivant :
    T1
    T2
    T3
    T4
    T5
    Je ne peux pas commencer par T5. De plus je ne peux pas seulement re-calculer T3 après avoir eu T5, je dois tout relancer mais T5 restera le même.
    Je pourrais relancer tout les calculs mais ça va être trop long et moche. Je voudrais faire ça plus court.

    En gros, je voudrais initialiser T5=T50, faire les calculs, et relancer avec le T5 du calcul précédent. C'est tout, le T5 restera le même dans les deux calculs mais c'est les valeurs avant qui vont changer.

    J'espère que c'est mieux...
    MERCI

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 16
    Points : 11
    Points
    11
    Par défaut Encore une chose
    Citation Envoyé par magelan Voir le message
    Bonjour,

    pas sur d'avoir compris, mais peut-être quelque chose comme ça:
    E=E0

    A = 3 +E
    B=A+4
    D = 3+B

    While E différent de D
    E=D
    A = 3 +E
    B=A+4
    D = 3+B

    Par contre D sera toujours différent de E donc c'est une boucle infinie avec ce code.
    En gros je voudrais faire ce que tu dis sans la boucle While:
    A = 3 +E
    B=A+4
    D = 3+B

    E=D
    A = 3 +E
    B=A+4
    D = 3+B

    Mais je voudrais eviter de re-taper
    A = 3 +E
    B=A+4
    D = 3+B

    Car dans mon cas, ça va être horriblement long et moche, je vais me perdre...

    merci

  5. #5
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    J'ai du mal à me rendre compte de ce qui va être long et moche, mais pourquoi ne pas faire une fonction avec en entrée E et qui ferait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function D = mafonction(E)
    A = 3 +E
    B=A+4
    D = 3+B
    Ca permettrait peut-être d'alléger le code?
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

Discussions similaires

  1. [CakePHP] Calcul avec une valeur recuperée à partir autre modele
    Par PrincessKC dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 04/06/2014, 12h36
  2. Attribution d'une valeur lors de la première boucle For
    Par Neoblackbird dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 15/05/2013, 07h24
  3. Calcul avec une valeur issue d'une relation
    Par malumiere dans le forum W4 Express
    Réponses: 5
    Dernier message: 16/05/2012, 12h58
  4. Réponses: 2
    Dernier message: 19/07/2011, 13h57
  5. [EJBQL] Requête avec une valeur constante dans les champs résultat
    Par adamo901 dans le forum Java EE
    Réponses: 1
    Dernier message: 13/04/2009, 00h32

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