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 :

resolution ODE : probleme avec ODE23


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 resolution ODE : probleme avec ODE23
    Salut tous,

    j'ai une ODE à résoudre mais j'ai un soucis avec l'utilisation de cette fonction, voici le message d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Warning: Failure at t=5.844315e-003.  Unable to meet integration tolerances without reducing the step size below the smallest value allowed (1.387779e-017) at time t. 
    > In ode23 at 362
    je ne comprends ce qu'il y a marqué mais je ne comprends pas pourquoi ni comment solutionner ceci...

    Voici mon script principal (je n'ai mis que les éléments importants):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    global theta0;
    global beta0;
    global cste;
    K1=0.5; K2=0.4;
    theta=(a*m*K1)/2;
    beta=(K2*a)/2;
    cste=(b*M)/(2*l);
    [X{1} Y{1}] = ode23(@F10, [tempsI{1} tempsF{1}], initial{1});
    => j'utilise des CELL car ici ce que je fais je dois le faire pour plusieurs problemes différents {1}{2}{3}...

    voici ma fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function dYdE=F10(t,y)
    global theta;
    global beta;
    global cste;
    dYdE=theta+cste*(1/y)-beta*y;
    pour info voici les ordre de grandeurs de mes variables:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    initial{1}=1e-05 % choix que j'ai fais arbitrairement car en théorie ça doit être très proche de 0)
    tempsI{1}=0.0058
    tempsF{1}=0.0766
    cste=2.81e+18; 
    theta=3.879;  
    beta=0.55;
    j’espère que vous pourrez m'aider à comprendre et solutionner mon problème car je ne vois pas quoi faire du tout...

    merci d'avance

  2. #2
    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
    j'ai essayé avec ODE45 et ça ne change rien, j'ai le meme probleme.

    a votre avis ça vient du schema que j'utilise ou de mon probleme ?

  3. #3
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!
    Il y a deux explications possibles:
    1. Une erreur dans la formulation de ton problème, par exemple si la fonction que tu veux intégrer présente une asymptote verticale à l'intérieur du domaine d'intégration.
    2. Une erreur dans l'utilisation de Matlab.

    Personnellement, je pencherais plutôt pour la première hypothèse. Pour trancher, je te suggère de reprogrammer ton problème avec un autre langage, comme le C ou le Fortran, et d'afficher ou d'imprimer les valeurs intermédiaires.
    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  4. #4
    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 d'avoir pris le temps de répondre !

    j'ai trouvé pourquoi ça plante mais pas comment résoudre ceci

    => en fait la valeur: cste=2.81e+18
    pose problemes car si je mets une valeur plus faible (du meme ordre de grandeur que les autres variables) alors la methode numerique arrive à resoudre le probleme.

    le probleme est que je ne sais pas comment résoudre si cste=2.18e18 (ce qui est mon cas réel )

  5. #5
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!
    J'ai une idée, mais pour pouvoir la concrétiser, il faudrait que tu m'indiques la signification physique et la valeur de toutes les constantes et toutes les variables qui interviennent dans ton problème, ainsi que les unités utilisées.
    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  6. #6
    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'accord, voici:

    1°) la constante "cste" est un mélange de plusieurs grandeurs caractéristiques dans un materiau:

    cste=(z^2*y^2*o*j^3)/(2*p);

    - z (0.3 sans unité)
    - j (3 sans unité)
    - y (2.6e10 Pascals)
    - o (3e-10 mètre)
    - p (5e-8 mètre)

    2°) et voici les deux autres grandeurs

    theta0=(z*y*o*j^2*K1)/2;
    beta0=(K2*j)/2;

    K1 et K2 n'ont pas d'unité c'est juste pour calibrer le model mais à priori je pense que c'est proche de 1

  7. #7
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!
    Essaie de changer d'unités, c'est-à-dire, par exemple, d'exprimer y en gigapascals, o et p en nanomètres.
    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  8. #8
    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
    en effet, je pense que c'est la seule solution...
    merci JM

    ssinon pourrais tu m'expliquer pourquoi les methodes numeriques buttes sur ce genre de probleme, j'aimerai comprendre...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 01/04/2009, 18h36
  2. Probleme résolution sous Debian avec ma carte graphique
    Par Arbisis dans le forum Matériel
    Réponses: 2
    Dernier message: 02/12/2005, 19h44
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

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