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

Mathématiques Discussion :

Solution numérique d'une équation différentielle scalaire de Riccati


Sujet :

Mathématiques

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Solution numérique d'une équation différentielle scalaire de Riccati
    Bonjour,
    Voila j'aimerai résoudre "numériquement" une équation de Riccati.

    f(x)' - h(x)f(x) -g(x)(1+f(x)^2)= 0
    f(x_0)=f_0 CI

    Où f la fonction à obtenir et h(x), g(x) sont des données que j'ai mesuré.

    J'ai essayé de résoudre à l'aide la méthode d'euler mais la solution ne converge pas c'est-à-dire complètement fause.
    J' ai voulu utiliser les fonctions déjà disponibles telles que ODExxx, mais sauf erreur de ma part, ces fonctions supposent que l'on ai des expressions analytiques de h, g.
    J'ai pas une solution particulière de f, donc je pense ne pas pouvoir trouver une solution en utilisant la "méthode analytique" en utilisant Bernoulli.

    Pouvez-vous m'aider à trouver un moyen pour résoudre ce problème numérique? Où des pistes ?

    Merci beaucoup.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Chercheur
    Inscrit en
    Mars 2010
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 218
    Points : 1 685
    Points
    1 685
    Par défaut
    Bonjour,

    Citation Envoyé par Jolina_Neo Voir le message
    J'ai essayé de résoudre à l'aide la méthode d'euler mais la solution ne converge pas c'est-à-dire complètement fause.
    Peux-tu expliquer ce que tu as fait?

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Bonjour,
    J'ai approché la dérivée par :
    f(n)'=(f(n+1)-f(n))/delta_x

    Ensuite f(n+1)=f(n) + deltat_x(h(n)f(n) + g(n)(1+f(n)^2).

    Après je me sers de cette formule pour déduire les autres échantillons.


    Merci.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Chercheur
    Inscrit en
    Mars 2010
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 218
    Points : 1 685
    Points
    1 685
    Par défaut
    Bonjour,

    la précision de ton schéma est de l'ordre de max(delta_x) : pour l'améliorer, il faut utiliser un schéma d'ordre plus élevé.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Bonjour,
    Comment obtenir un schéma l'ordre élevé ? Dois-je modifier l’approximation de la dérivée?

    Merci

  6. #6
    Membre expérimenté
    Homme Profil pro
    Chercheur
    Inscrit en
    Mars 2010
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 218
    Points : 1 685
    Points
    1 685
    Par défaut
    Oui, tout à fait. La dérivée doit être approchée avec plus de points. L'ordre d'approximation du schéma est naturellement déduite de la formule obtenue avec la décomposition de Taylor. Par exemple, ta formule découle de la décomposition
    f(n+1)=f(n)+delta_x*f'(n)+o(delta_x)
    c'est-à-dire
    [f(n+1)-f(n)]/delta_x=f'(n)+o(1)
    J'ai d'ailleurs fait une erreur dans mon précédent message : ton schéma n'est même pas de l'ordre du pas de discrétisation mais seulement en o(1)!!!

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Aleph69 Voir le message
    L'ordre d'approximation du schéma est naturellement déduite de la formule obtenue avec la décomposition de Taylor.
    Je suis désolé mais je n'arrive pas à comprendre comment exploiter la décomposition de Taylor pour élever l'ordre de l'approximation, c'est-à-dire obtenir une formule numérique exploitable.

  8. #8
    Membre expérimenté
    Homme Profil pro
    Chercheur
    Inscrit en
    Mars 2010
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 218
    Points : 1 685
    Points
    1 685
    Par défaut
    Par exemple, à partir des décompositions
    f(n-1)=f(n)-dx*f'(n)+dx²*f''(n)/2+o(dx²)
    f(n+1)=f(n)+dx*f'(n)+dx²*f''(n)/2+o(dx²)
    on obtient en considérant leur différence
    f(n+1)-f(n-1)=2*dx*f'(n)+o(dx²)
    soit encore
    f'(n)=[f(n+1)-f(n-1)]/(2*dx)+o(dx).
    Note qu'on obtiendrait aussi un schéma d'ordre quadratique en considérant toute combinaison linéaire (bien choisie) des valeurs de f en 2 points; c'est utile pour traiter les bords car on peut choisir f(n+1) et f(n+2) ou f(n-2) et f(n-1) si nécessaire. Pour avoir une méthode d'ordre cubique, il faut faire une combinaison linéaire avec les évaluations en 3 points de f; plus généralement il faut évaluer en k points pour avoir un schéma d'ordre k.

    EDIT : j'ai supposé que le pas de discrétisation dx est constant dans ces formules.

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Bonjour,
    Merci pour cette réponse claire.

    J'ai exploité ce schéma
    f'(n)=[f(n+1)-f(n-1)]/(2*dx)+o(dx).
    Sauf erreur de ma part, mais ce schéma impose numériquement de déduire f(2). Il me semble qu'il faut que n>1 si non f(0).
    Alors j'ai utilisé le schéma ordre o(1) pour obtenir f(2).
    f(n)'=(f(n+1)-f(n))/delta_x
    Cette approche d'obtention de f(2) introduit une erreur bien visible lors de la résolution, mais cette erreur n'empêche pas la convergence de la résolution.

    Bien que l'on puisse exploiter la consistance de la méthode pour réduire cette erreur(le pas de discrétisation est constant). Comment peut-on calculer f(2) avec un schéma d'ordre élevé pour garantir la même précision?

    Encore merci pour votre aide.

  10. #10
    Membre expérimenté
    Homme Profil pro
    Chercheur
    Inscrit en
    Mars 2010
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 218
    Points : 1 685
    Points
    1 685
    Par défaut
    Bonjour,

    tout d'abord le schéma que tu as utilisé au début est bien d'ordre 1. Il suffit de raisonner à partir de f(n) et du développement de Taylor de f(n+1) ou f(n) pour le voir.

    Je vois deux manières de contourner ton problème de l'évaluation de f(n+1). La première consiste à introduire des points fantômes dans la discrétisation. Tu trouveras une explication de cette méthode en page 22 dans ce document. Aucune inquiétude à avoir, il s'agit d'une approche classique même si cela peut paraître choquant d'introduire des points des discrétisation inexistants dans le problème. Cette approche te permettra de conserver le caractère explicite de ton schéma. Je t'invite à lire également les pages précédentes sur la discrétisation des problèmes unidimensionnels; cela pourrait te donner des idées.

    Il pourrait également être intéressant d'utiliser plutôt un schéma implicite pour obtenir une méthode de résolution inconditionnellement stable (pas de condition CFL). Ce qui empêche pour le moment de le faire, c'est la présence du carré de f dans ton équation. Ce carré disparaît en dérivant une fois par rapport à x ton équation et fait apparaître la dérivée seconde de f. Cette dérivation n'est donc possible que si f est bien deux fois continûment dérivable. Ensuite, tu pourras utiliser des schémas implicites pour approcher la dérivée première et la dérivée seconde de f. Puis, en insérant ces formules d'approximation dans ton équation dérivée, tu aboutiras à un système d'équations linéaires à résoudre numériquement, par factorisation LU par exemple.

Discussions similaires

  1. Réponses: 15
    Dernier message: 28/05/2012, 20h05
  2. Réponses: 2
    Dernier message: 22/11/2007, 14h58
  3. Réponses: 8
    Dernier message: 08/04/2007, 01h38
  4. Résolution d'une équation différentielle
    Par ramrouma dans le forum MATLAB
    Réponses: 1
    Dernier message: 12/02/2007, 14h11
  5. Réponses: 1
    Dernier message: 08/12/2006, 17h13

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