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

Discussion :

Gestion variables dans multido

  1. #1
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2017
    Messages : 9
    Points : 4
    Points
    4
    Par défaut Gestion variables dans multido
    Bonjour à tous,

    Je veux placer des points sur un graphique à l'aide de la boucle multido.

    Pour cela j'ai besoin de créer une nouvelle variable à partir de la somme et de la multiplication d'autres variables :

    Il faudrai aussi que j'arrive à mettre dans une variable le résultat d'une fonction avec des exponentielles pour un x donné :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    \def\xt{\xt+\h*(\K*EXP(-\xt))/((\K*EXP(-\xt)+1)^2)}
    J'ai essayé pas mal de choses mais rien n'y fait pour le moment.
    Si quelqu'un peut m'aiguiller ce serai top

  2. #2
    Membre actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 135
    Points : 283
    Points
    283
    Billets dans le blog
    1
    Par défaut
    J'ai pas compris exactement ce que tu voulais faire et ce qu'étaient toutes ces variables. Avec un vrai ecm ça serait mieux.

    Mais plus généralement, tu ne peux pas faire un \def\x{quelque chose qui utilise \x}. Donc dans ton cas tu ne peux pas appeler ta commande \xt comme ça. A la limite tu peux l'appeler \yt

  3. #3
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2017
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Merci pour ta réponse.

    Voici l'ECM complet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    \def\t{0}
    \def\xt{1}
    \def\h{1}
    \def\K{1}
     
    %On place le point correspondant aux conditions initiales
    \psdots[linecolor=red,dotscale=1,dotstyle=*](\t,\xt)
     
    \multido{\n=0+1}{10}{
     
    \def\tn{\t+\n*\h}
    \def\xt=\xt+h*(\K*EXP(-\xt))/((\K*EXP(-\xt)+1)^2)
    \psdots[linecolor=red,dotscale=1,dotstyle=*](\tn,\xt)}
    Pour éviter de définir une variable en l'utilisant elle-même (par exemple x = x +1), je dois passer par une autre variable ( x = y puis x = y+1 ) ?

  4. #4
    Expert éminent sénior

    Avatar de -Nikopol-
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2013
    Messages
    2 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 174
    Points : 11 289
    Points
    11 289
    Billets dans le blog
    5
    Par défaut
    Bonsoir, je ne me sers jamais de multido, mais la variable \n ne s'incrémente elle pas toute seule?
    Je pense que l'utilisation de la boucle est erroné ici, je vais regardé, mais j'etais parti pour répondre au message précédent et donc aussi au x=x+1.

    tu ne peux pas faire un \def\x{quelque chose qui utilise \x}
    @lulzec, Je sais que tu le sais mais on peut passer par un \edef ou même \let
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    \def\toto{0}
    \edef\toto{\number\numexpr\toto+1}
    \toto
    \def\tata{truc}
    \let\oldtata\tata
    \def\tata{\textbf{\oldtata}}
    \tata
    pour info pour le PO, mais je pense qu'il vaut mieux corriger le multido.

  5. #5
    Expert éminent sénior

    Avatar de -Nikopol-
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2013
    Messages
    2 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 174
    Points : 11 289
    Points
    11 289
    Billets dans le blog
    5
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    \multido{\n=0+1}{10}{
     
    \def\tn{\t+\n*\h}
    \def\xt=\xt+h*(\K*EXP(-\xt))/((\K*EXP(-\xt)+1)^2)
    \psdots[linecolor=red,dotscale=1,dotstyle=*](\tn,\xt)}
    Dans ce code \tn n'est pas évalué (ça ça peut s'arranger). de plus les \h et\k ne sont pas incrémenté (ou autre) donc restent à 1. donc dur d'imaginer ce que c'est sensé produire.

  6. #6
    Membre actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 135
    Points : 283
    Points
    283
    Billets dans le blog
    1
    Par défaut
    Non mais en vrai, je crois qu'on ne peut pas écrire d'expression arithmétique directement avec psdot. Du coup c'est mieux avec le package fp pour faire des calculs dans ce cas

    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
    \documentclass{article}
     
     
    \usepackage{pstricks-add, multido, fp}
    \begin{document}
     
    \begin{pspicture}
    \FPeval\t{0}
    \FPeval\xt{1}
    \FPeval\h{1}
    \FPeval\K{1}
    %On place le point correspondant aux conditions initiales
    \psdot[linecolor=red,dotscale=1,dotstyle=*](\t,\xt)
     
    \multido{\n=0+1}{10}{
    	\FPeval\tn{t + n * h}
    	\FPeval\xt{xt + h * (K * exp(-xt)) / (K * exp(-xt) + 1)^2}
    	\psdot[linecolor=red,dotscale=1,dotstyle=*](\tn,\xt)
    }
    \end{pspicture}
     
    \end{document}
    Alors par contre j'aimerais bien savoir ce que tu veux faire. Parce que c'est vraiment bizarre. On dirait une sorte de dérivée discrète ou un truc du genre mais bon... Ça m'intrigue

  7. #7
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2017
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par -Nikopol- Voir le message
    Dans ce code \tn n'est pas évalué (ça ça peut s'arranger). de plus les \h et\k ne sont pas incrémenté (ou autre) donc restent à 1. donc dur d'imaginer ce que c'est sensé produire.
    Je les ai déclaré au début car ce sont deux paramètres sur lesquels je vais pouvoir "jouer" une fois que tout marchera. C'est pour ca que je les déclare au début, ils seront plus accessible !


    Alors par contre j'aimerais bien savoir ce que tu veux faire. Parce que c'est vraiment bizarre. On dirait une sorte de dérivée discrète ou un truc du genre mais bon... Ça m'intrigue
    En fait je souhaite utiliser la méthode d'Euler pour tracer ma fonction x(t) solution de l'équation logistique de Verhulst.
    h représente donc mon pas, qui pour le moment est à 1 mais que je modifierai selon la précision que je souhaite avoir.
    K lui dépend de la condition initiale choisit. Je souhaite étudier la fonction pour différentes conditions initiales, c'est pour ca que je le laisse apparaitre dans ma fonction.

    En tout cas merci pour vos réponses. Je testerai demain ce que tu m'as proposé lulzec et reviendrai vers vous

  8. #8
    Membre actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 135
    Points : 283
    Points
    283
    Billets dans le blog
    1
    Par défaut
    En fait je souhaite utiliser la méthode d'Euler pour tracer ma fonction x(t) solution de l'équation logistique de Verhulst.
    Bizarre, je croyais que c'était plutôt une équation du genre
    Formule mathématique
    et pas
    Formule mathématique

    Mais bon, soit !

  9. #9
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2017
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par lulzec Voir le message
    Bizarre, je croyais que c'était plutôt une équation du genre
    Formule mathématique
    et pas
    Formule mathématique

    Mais bon, soit !
    Tu as raison, je me suis un peu emmêlé les pinceaux.



    Citation Envoyé par lulzec Voir le message
    Non mais en vrai, je crois qu'on ne peut pas écrire d'expression arithmétique directement avec psdot. Du coup c'est mieux avec le package fp pour faire des calculs dans ce cas

    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
    \documentclass{article}
     
     
    \usepackage{pstricks-add, multido, fp}
    \begin{document}
     
    \begin{pspicture}
    \FPeval\t{0}
    \FPeval\xt{1}
    \FPeval\h{1}
    \FPeval\K{1}
    %On place le point correspondant aux conditions initiales
    \psdot[linecolor=red,dotscale=1,dotstyle=*](\t,\xt)
     
    \multido{\n=0+1}{10}{
    	\FPeval\tn{t + n * h}
    	\FPeval\xt{xt + h * (K * exp(-xt)) / (K * exp(-xt) + 1)^2}
    	\psdot[linecolor=red,dotscale=1,dotstyle=*](\tn,\xt)
    }
    \end{pspicture}
     
    \end{document}
    Ca m'a l'air de fonctionner ce code... Il faut donc utiliser le package fp avec la "fonction" \FPeval pour définir une variable à partir d'autres variables ?

  10. #10
    Membre actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 135
    Points : 283
    Points
    283
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Adriano75015 Voir le message
    Ca m'a l'air de fonctionner ce code... Il faut donc utiliser le package fp avec la "fonction" \FPeval pour définir une variable à partir d'autres variables ?
    Bah fp ça permet de faire des calculs facilement. Sinon latex est un peu nul pour calculer.

    Au passage, on a des solutions exactes pour ton équation, t'es pas obligé d'utiliser la méthode d'Euler pour l'approximer

  11. #11
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2017
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par lulzec Voir le message
    Bah fp ça permet de faire des calculs facilement. Sinon latex est un peu nul pour calculer.
    Mouai c'est bien ce que je commence à comprendre. En tout cas fp me permet de faire ce que je veux pour le moment.

    Au passage, on a des solutions exactes pour ton équation, t'es pas obligé d'utiliser la méthode d'Euler pour l'approximer
    En fait cet exercice est un "préambule" pour bien comprendre la méthode d'Euler et réussir à faire une simulation numérique.
    Il faudra ensuite que je l'applique sur un problème un peu plus complexe. J'aurai certainement l'occasion de revenir vers vous à ce moment là.

    En tout cas merci pour votre réactivité c'est très pratique !

  12. #12
    Expert éminent sénior

    Avatar de -Nikopol-
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2013
    Messages
    2 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 174
    Points : 11 289
    Points
    11 289
    Billets dans le blog
    5
    Par défaut
    - Bah fp ça permet de faire des calculs facilement. Sinon latex est un peu nul pour calculer.
    -Mouai c'est bien ce que je commence à comprendre.
    Faites attention ! si vous continuez comme ça tous les deux je vais vous envoyer faire un tour sur le forum word

    Plus sérieusement, pgfplot est à regarder de près pour ce genre de courbes il est aisé de faire des choses sympa comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    \documentclass{article}
    \usepackage{pgfplots,tikz}
    \begin{document}
      \begin{tikzpicture}
          \begin{axis}[title={\textbf{Surface plot}}]
          \addplot3[surf,domain=0:360,samples=40]
          {sin(x)*sin(y)};
          \end{axis}
     \end{tikzpicture}
    \end{document}
    Nom : 3D.PNG
Affichages : 795
Taille : 94,8 Ko

  13. #13
    Membre actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 135
    Points : 283
    Points
    283
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par -Nikopol- Voir le message
    Faites attention ! si vous continuez comme ça tous les deux je vais vous envoyer faire un tour sur le forum word


    Oui oui je suis tout à fait d'accord pour utiliser pgf, mais là on voulait tracer avec pstricks, et j'avoue que je ne connais pas vraiment de moyen plus facile que fp dans ce cas pour faire des calculs

Discussions similaires

  1. Problème gestion de variables dans un thread C
    Par Antoine C. dans le forum C
    Réponses: 3
    Dernier message: 01/11/2015, 17h27
  2. Gestion de variables dans une boucle
    Par DoumCSS dans le forum Langage
    Réponses: 4
    Dernier message: 25/04/2013, 13h26
  3. [XL-2003] Gestion date dans variable
    Par K-limero dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/03/2009, 14h47
  4. Réponses: 4
    Dernier message: 30/12/2005, 12h07
  5. Gestion de Variables dans un script
    Par John Lee dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/03/2005, 15h17

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