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 :

ode mal formulées pour ode45 ?


Sujet :

MATLAB

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut ode mal formulées pour ode45 ?
    salut tous

    ça fait 1petit moment que jétais pas passé dans le coin

    j'ai un nouveau problème sous matlab, cette fois avec ode45, et je voudrais savoir si vous savez comment le contourner

    D'habitude avec ode45 on met le systeme différentielle sous cette forme :
    - c'est à dire une dérivée en fonction de fonctions non dérivées

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function dy = rigid(t,y)
    dy = zeros(3,1);    
    dy(1) = y(2) * y(3);
    dy(2) = -y(1) * y(3);
    dy(3) = -0.51 * y(1) * y(2);
    et tout roule lors de la resolution

    par contre jai maintenant un systeme d'ode à résoudre qui ressemble à ça :
    - des dérivées en fonction d'autres dérivées

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function dy = rigid(t,y)
    dy = zeros(3,1);    
    dy(1) = dy(2) * A;
    dy(2) = abs(dy(1));
    dy(3) = dy(2);
    du coup ça ne ressemble plus du tout à ce que ode45 doit habituellement manipuler

    Sauriez vous comment gérer ce type de problèmes ?

    merci A+

  2. #2
    FLB
    FLB est déconnecté
    Modérateur
    Avatar de FLB
    Homme Profil pro
    Ing. Aérospatiale
    Inscrit en
    Juin 2003
    Messages
    770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ing. Aérospatiale
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2003
    Messages : 770
    Points : 1 185
    Points
    1 185
    Par défaut
    Salut,
    Ce que tu fais me semble étrange : tu cherches à résoudre une équadiff, mais dy n'est pas lié à y
    au final ton système s'écrit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    a=A*b
    b= abs(a);
    c=b;
    Donc ton système n'a une solution que si A = sign(a) et dans ce cas tu as une infinité de solution...
    Tu es sûr de tes équations? Il n'y a pas un petit terme en y quelque part?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    merci de ton aide,

    je n'ai pas été très clair donc je te mets en PJ la formulation "réelle".

    En fait le cas que je présente ici est le cas le plus simplifié que l'on peut trouver
    dans un cas plus general je peux avoir dans le "else" un systeme différentiel beaucoup plus compliqué et c'est donc pour ceci que je cherche une resolution analytique.

  4. #4
    FLB
    FLB est déconnecté
    Modérateur
    Avatar de FLB
    Homme Profil pro
    Ing. Aérospatiale
    Inscrit en
    Juin 2003
    Messages
    770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ing. Aérospatiale
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2003
    Messages : 770
    Points : 1 185
    Points
    1 185
    Par défaut
    Re,
    c'est louche ton histoire : d'après les équations 2 et 4 de la partie en bleu sur ton image, epsilon_dot_p est un scalaire : c'est vraiment le cas?
    J'ai l'impression que tu calcules l'espérance de epsilon_dot-epsilon_p, j'imagine que ce sont des vecteurs? T'es sûr qu'il n'y a pas de coquille dans les équations?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    merci de prendre le temps de m'aider.

    Dans cette équation tout est scalaire., et oui je suis certain de ces équations car elles viennent de livres de mécaniques que je suis en train de lire.

    je pense que les dérovées au second membre je peux les discrétiser sur "dt" et du coup je n'aurai que des dérivées au membre de gauche et donc j'aurais bien un systeme différentiel ?

  6. #6
    FLB
    FLB est déconnecté
    Modérateur
    Avatar de FLB
    Homme Profil pro
    Ing. Aérospatiale
    Inscrit en
    Juin 2003
    Messages
    770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ing. Aérospatiale
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2003
    Messages : 770
    Points : 1 185
    Points
    1 185
    Par défaut
    Hum... je dois rater un truc...
    La fonction E correspond à quoi?

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    désolé si je n'ai pas été clair,

    dans mes equations que j'ai mis en pièce jointe il y a trois constantes :
    - E
    - K
    - SigmaY

  8. #8
    FLB
    FLB est déconnecté
    Modérateur
    Avatar de FLB
    Homme Profil pro
    Ing. Aérospatiale
    Inscrit en
    Juin 2003
    Messages
    770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ing. Aérospatiale
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2003
    Messages : 770
    Points : 1 185
    Points
    1 185
    Par défaut
    J'ai décidément un problème de compréhension :
    que fait cette espèce d'équadiff à l'intérieur de la boucle for? qu'est ce qu'on en attend en sortie?
    J'ai l'impression que epsilon et epsilon_P sont plutôt des mesures, et que donc les lignes en bleues sont des applications numériques plutôt que des équations.
    Bref, je suis un peu perdu dans la formulation du problème. Tu saurais nous donner un peu plus de contexte?

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    1) En fait j'ai deux vecteur connus :
    - le temps
    - et epsilon
    2) Je veux calculer pour chaque temps les quantités :
    - epsilonP
    - alpha
    - lambda
    3) probleme :
    - je ne peux pas utiliser "dt" comme pas de temps car il est beaucoup trop grand

    ==> du coup, je résouds le systeme différentielle entre temps(i+1) et temps(i)
    à l'aide d'une methode à pas adaptatif et ça me calculera toute les grandeurs que je veux avec une certaine précision entre "temps(i+1) et temps(i)" et je ne conserve que la grandeur finale (celle qui tombe sur un de mes temps)


    es ce plus clair ? (c'est un peu difficile à expliquer)

  10. #10
    FLB
    FLB est déconnecté
    Modérateur
    Avatar de FLB
    Homme Profil pro
    Ing. Aérospatiale
    Inscrit en
    Juin 2003
    Messages
    770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ing. Aérospatiale
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2003
    Messages : 770
    Points : 1 185
    Points
    1 185
    Par défaut
    Je vois ce que tu veux faire (ton dessin explicatif a disparu des pièces jointes?!), mais la forme de tes équations me laisse dubitatif. J'ai l'impression qu'il nous manque une information pour pouvoir résoudre le problème...
    Est ce que tu saurais discrétiser les équations différentielles? Si tu sais écrire le système sous la forme d'une série, avec pas de temps fixe, alors tu sauras si ode45 sera capable de faire la même chose avec une meilleur précision et plus rapidement.

Discussions similaires

  1. [Excel] formule pour une liste déroulante
    Par marsupilami34 dans le forum Excel
    Réponses: 2
    Dernier message: 02/02/2007, 21h44
  2. Formule pour prendre certains digits d'un Champs.
    Par jboumaaz dans le forum Formules
    Réponses: 6
    Dernier message: 17/01/2007, 15h37
  3. [EXCEL] Formule pour un système d'équation
    Par Gerard6969 dans le forum Macros et VBA Excel
    Réponses: 46
    Dernier message: 10/10/2006, 10h07
  4. 2 "formules" pour un même Source Contrôle??
    Par Mr White dans le forum Access
    Réponses: 11
    Dernier message: 21/10/2005, 14h14

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