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 :

Intégration d'une fonction avec time-delay


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2009
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 58
    Points : 37
    Points
    37
    Par défaut Intégration d'une fonction avec time-delay
    Bonjour à tous

    J'aimerais créer une fonction matlab pour intégrer une ODE qui prend en compte un time-delay un des processus.
    voici par exemple un type de fonction avec delay que j'aimerais résoudre :

    dA/dt = mu.A - f(At-d).At-d

    Je sais résoudre une equation sans time delay :
    dA/dt = mu.A - m.A

    Pour ce faire je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function dx=Myfct(t,x, par)
     
    dx=zeros(1,1);
     
    A=x(1,:); 
     
    mu = par(1); %taux de croissance
    m = par(2); %taux de mortalité 
     
    dx(1) = mu*A - m*A;
    end
    Puis j'intègre Myfct dans Matlab avec une méthode d'intégration classique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    tps = 0:1:10;
    A0 = 1;
    mu = 0.7;
    m = 0.01;
     
    par = [mu m];
    [t x] = ode45(@(t,x)Myfct(t,x,par),tps,A0);
     
    A = x(:,1);
    plot(t,A,'k.')
    J'obtiens un jolie plot et je suis content
    Mais je n'ai aucune idée de comment faire pour introduire mon time-delay et l'intégré ... Avez-vous des suggestions ?

    Merci beaucoup pour votre aide

    DJ

  2. #2
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut
    Bonjour,

    Mathématiquement, je travaillerais avec une fonction g vectorielle telle que g(t)= [f(t),f(t-d)]. Cela ramène l'equa.diff compliquée à une equa.diff d'ordre 1.
    Maintenant, je ne sais pas si le framework ode sous Matlab accepte des fonctions vectorielles.

Discussions similaires

  1. creer une fonction avec arguments
    Par niglo dans le forum ASP
    Réponses: 3
    Dernier message: 03/06/2005, 08h04
  2. Erreur sur une fonction avec des paramètres
    Par Elois dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 05/05/2004, 21h00
  3. Appeler une fonction avec "action" ds un
    Par drinkmilk dans le forum ASP
    Réponses: 4
    Dernier message: 20/04/2004, 14h54
  4. Appeler une fonction avec/sans parenthèses
    Par haypo dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 29/12/2002, 18h48
  5. Une fonction avec des attributs non obligatoires
    Par YanK dans le forum Langage
    Réponses: 5
    Dernier message: 15/11/2002, 13h39

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