Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

Système de trois équations différentielles, résolution Maple.



  1. #1
    wdrag

    Question Système de trois équations différentielles, résolution Maple.


    ------

    Bonjour,
    Dans le cadre des TIPE je souhaite modéliser avec Maple le trajet d'une particule dans un tokamak, (un tore parcouru par un courant créant un champs magnétique).
    Voici mon programme :

    > eqd1:=D(D(x))(t) = [(-1)/(x(t)+y(t))]*x(t)*D(z)(t);

    > eqd2:=D(D(y))(t) = [(-1)/(x(t)+y(t))]*y(t)*D(z)(t);

    > eqd3:=D(D(z))(t) = [1/(x(t)+y(t))]*(x(t)*D(x)(t) + y(t)*D(y)(t));

    > eqns:= { eqd1, eqd2, eqd3, x(0)=1, y(0)=2, z(0)=0, D(x)(0)=0, D(y)(0)=0, D(z)(0)=0 };

    > dsolve( eqns, {x(t), y(t), z(t)});


    Seulement quand je demande ça à Maple il mouline dans le vent sans rien me sortir (j'ai un G5 à 3 cœurs je ne pense pas que ça vienne de l'ordi).
    Quelqu'un voit pourquoi ou comment faire pour avoir une réponse au système ?

    Sinon on m'a conseillé de remplacer la dernière ligne par :
    > dsolve( eqns, {x(t), y(t), z(t)}, type=numeric ) ;

    seulement quand je fais ça Maple me renvoie :
    proc(x_rkf45) ... end proc

    Merci d'avance.

    -----

  2. Publicité
  3. #2
    RoBeRTo-BeNDeR

    Re : Système de trois équations différentielles, résolution Maple.

    Bonjour,

    si maple te renvoi cela c'est parce que c'est ta solution fait une procédure du genre :

    SolEqua:=proc(x_rkf45) ... end proc

    et ensuite regarde tout est dans cette procédure. voilà

    si tu rencontres encore des problème j'essairai de voir en allumant mon maple.

    RoBeRTo

  4. #3
    wdrag

    Re : Système de trois équations différentielles, résolution Maple.

    Citation Envoyé par RoBeRTo-BeNDeR Voir le message
    et ensuite regarde tout est dans cette procédure. voilà
    Merci de prendre le temps de m'aider
    Si je comprends bien Maple à créé une procédure pour donner les solutions du système.
    Seulement je ne vois pas comment accéder au code de cette procédure ni ce qu'elle prend en entrée ni son nom en fait... car > x_rkf45(); ne me renvoie rien.

  5. #4
    wdrag

    Re : Système de trois équations différentielles, résolution Maple.

    Mince je trouve pas comment modifier mon précédant message...

    Je suis arrivé à tracer cette fameuse procédure avec :

    > p := dsolve(eqns, {x(t), y(t), z(t)}, type = numeric)

    > with(plots);odeplot(p);


    Seulement ca me trace une courbe qui me plait pas vraiment :



    Elle représente quoi ?
    Parce que moi je cherche à trouver x, y et z en fonction du temps. Or là ca ne ressemble vraiment pas à une des coordonnées d'une particule dans un tore chargé positivement (qui devrait logiquement avoir une trajectoire circulaire ou des elliptique)

  6. #5
    RoBeRTo-BeNDeR

    Re : Système de trois équations différentielles, résolution Maple.

    Justement note A:=proc(x_rkf45) ... end proc ;

    alors tu A(to) qui te donne [ t=to, x(to)=... , x'(to)=... , y(to)=... , y'(to)=... , z(to)=... , z'(to)=... ]

    après choisit l'opérande que tu veux du genre si tu veux x il faudra t'intéresser à
    op(2,A(to)) la 3ème pour x' ....


    donc pour avoir x fait une fonction : X:=t-> rhs( op(2,A(t)))

    pour x' Xp:=rhs( op(3,A(t))) etc ...
    rhs prenant le terme de droite dans x(to)=..... donc le .... (la valeur)

    Voilà tente de terminer maintenant. Je ne serais pas disponible d'ici vendredi.

    RoBeRTo (par ailleurs je n'ai aucune idée de ce quelle te représente.... )

  7. A voir en vidéo sur Futura
  8. #6
    RoBeRTo-BeNDeR

    Re : Système de trois équations différentielles, résolution Maple.

    Je me rend compte qu'il un a un petit problème alors voici une autre solution...

    créée une liste pour chaque fonction par exemple LX=[seq( rhs( op(2,A(k/W)) ),k=0..T) avec W le nombre de calcul par seconde et T/W le temps de fin d'étude

    et ensuite fait plot(LX); cela devrait marcher.

    RoBeRTo

  9. Publicité
  10. #7
    wdrag

    Re : Système de trois équations différentielles, résolution Maple.

    Bon j'ai commencé par modifier les condition initiales (sans vitesse initiale ma particule allait pas faire grand chose d'autre qu'osciller au milieu du tore, ca devait être ça le graphique précédent).

    donc avec :

    > eqns := {eqd1, eqd2, eqd3, x(0) = 10, y(0) = 10, z(0) = 0, (D(x))(0) = 2, (D(y))(0) = 0, (D(z))(0) = 0};


    Je me retrouve avec le graph suivant :



    Au passage j'ai essayé d'autres conditions initiales ou il me disait :
    Warning, cannot evaluate the solution further left of -4.6322645, probably a singularity

    J'imagine que c'est parce que ma particule va diverger et que Maple n'aime pas trop ça ...

    J'ai utilisé la deuxième méthode que tu m'as donné (je ne connaissais pas rhs c'est assez pratique).
    Définis ma liste avec 10 calcules par seconde pendant 10 secondes :

    > LX = [seq(rhs(op(2, p((1/10)*k))), k = 0 .. 100)]

    La Maple me renvoi un truc assez long qui ressemble à ca :

    [x(t) = X0, x(t) = X1, ...] = [X0, X1, ...]


    (ou X0,X1,... sont des valeurs numériques)
    Puis je lui demande :

    > with(plots): plot(LX);

    A quoi il repond :

    Error, (in plot) incorrect first argument [x(t)=X0,x(t)=X1,...]

    Je comprends qu'il n'arrive pas à tracer une telle liste mais je ne comprend pas comment avec la définition de LX elle puisse avoir cette forme...

  11. #8
    RoBeRTo-BeNDeR

    Re : Système de trois équations différentielles, résolution Maple.

    ou alors fait directement plot([seq(rhs(op(2, p((1/10)*k))), k = 0 .. 100)]);

  12. #9
    wdrag

    Re : Système de trois équations différentielles, résolution Maple.

    Ca marche pas ...

    Mais j'ai trouvé un truc pas mal dans la fonction "odeplot"

    > odeplot(p, [x(t), y(t), z(t)], -10 .. 10, color = orange)


    Me donne cette magnifique courbe (pour un rayon de tore assez grand) de la particule s'enroulant sur une ligne de champ :



    Seulement ca doit venir du "type = numeric" dans mon
    > p := dsolve(eqns, {x(t), y(t), z(t)}, type = numeric)

    Mais dès que je m'éloigne de 0 dans ma courbe en voulant l'évaluer sur un intervalle de t plus grand Maple me sort une courbe beaucoup moins belle :



    et me met un message d'erreur :
    Warning, cannot evaluate the solution further right of 19.383570, probably a singularity


    y aurait-t-il un moyen d'évaluer le trajet de la particule sur un plus grand intervalle quitte à ce que ca soit grossier, (du genre pour voir que la particule suit bien une trajectoire circulaire dans le tore) ?

Sur le même thème :

Discussions similaires

  1. Résolution d'un système de trois équations
    Par cicita06 dans le forum Mathématiques du collège et du lycée
    Réponses: 2
    Dernier message: 26/04/2010, 11h07
  2. Équations différentielles et maple
    Par unnomquelconque dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 12/05/2009, 17h32
  3. Réponses: 0
    Dernier message: 10/05/2009, 14h53
  4. Equations differentielles et Maple
    Par Hey00 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 18/03/2007, 17h03
  5. Maple et équations différentielles
    Par gregcrv dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 14/01/2006, 12h26