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 :

probleme avec ODE45


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Avril 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 10
    Par défaut probleme avec ODE45
    bonjour
    je ne sais pas pour quoi j'ai toujours des problèmes avec ODE45
    pourriez vous m'expliquez que veux dire ces erreurs et comment les corriger

    ??? Error using ==> c:/matlab6p5/toolbox/matlab/funfun/private/odearguments
    RSPRIME must return a column vector.

    Error in ==> C:\MATLAB6p5\toolbox\matlab\funfun\ode23.m
    On line 154 ==> [neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, args, ...

    Error in ==> C:\MATLAB6p5\work\Untitled2.m
    On line 8 ==> [t tetaf]=ode23('rsprime', tspan, tetaf0);
    la fonction est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    function dtetaf=rsprime(t,tetaf)
    tetaf0=[-8*ones(1,5) ;-4*ones(1,5) ;0*ones(1,5); 4*ones(1,5); 8*ones(1,5)]';
    ym= 0;
    ymp=1; 
    ympp=0;
    x(:,1)=[-pi*10/60;0];
    e(1,1)=ym-x(1);
     e(2,1)=ymp-x(2);
     P=[15 5;5 5];
     A=[0 1;-1 -2];
    b=[0;1];
    gm1=50;
     % définition des dégrés d'appartenance de la position
       mu(1,1)=exp([-((x(1)+(pi/6))/(pi/24))^2]);   
       mu(1,2)=exp([-((x(1)+(pi/12))/(pi/24))^2]);
       mu(1,3)=exp([-(x(1)/(pi/24))^2]);
       mu(1,4)=exp([-((x(1)-(pi/12))/(pi/24))^2]);
       mu(1,5)=exp([-((x(1)-(pi/6))/(pi/24))^2]);
     
       % définition des dégrés d'appartenance de la position
       mu(2,1)=exp([-((x(2)+(pi/6))/(pi/24))^2]);   
       mu(2,2)=exp([-((x(2)+(pi/12))/(pi/24))^2]);
       mu(2,3)=exp([-(x(2)/(pi/24))^2]);
       mu(2,4)=exp([-((x(2)-(pi/12))/(pi/24))^2]);
       mu(2,5)=exp([-((x(2)-(pi/6))/(pi/24))^2]);
     
       % définition des numérateurs
       mum=mu(1, : )'*mu(2, : );
     
       % définition des numérateurs
       denum1=sum(mum);
       denum=sum(denum1);
       ksi=mum/denum;
       dtetaf=-gm1*e'*P*b*ksi;
       %dtetaf=dtetaf';
     
    return
    pour appeler cette fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    close all;
    clear all;
    t0=0;tf=10;
    tspan=[t0 tf];
    ang=[-20 -10 -7 4 8 12 16 30];
    ang=ang*pi/180;axis([0 tf -45 45]);
    tetaf0=[0*ones(1,5) 0*ones(1,5) 0*ones(1,5) 0*ones(1,5) 0*ones(1,5)]';
    [t tetaf]=ode23('rsprime', tspan, tetaf0);
     hold on;
    merci d'avance pour vos reponses et bonne journée

  2. #2
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    MATLAB te signale que ta fonction RSPRIME devrait te retourner un vecteur colonne.
    Manifestement là ta fonction te retourne une matrice ce qui est donc problématique.

  3. #3
    Membre habitué
    Inscrit en
    Avril 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 10
    Par défaut
    Citation Envoyé par Caro-Line Voir le message
    MATLAB te signale que ta fonction RSPRIME devrait te retourner un vecteur colonne.
    Manifestement là ta fonction te retourne une matrice ce qui est donc problématique.
    comment est ce que je peux le faire en plus les deux dernières erreurs se répète a chaque je travaille avec ODE pouvez vous m'expliquer pourquoi

  4. #4
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Ben là je ne sais pas vraiment quoi te dire.
    Le problème vient de ta fonction RSPRIME que tu as du mal coder.
    C'est cette fonction que tu dois revoir.
    Après je ne sais pas ce que ça modélise donc je ne peux pas t'aider.

  5. #5
    Membre habitué
    Inscrit en
    Avril 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 10
    Par défaut
    Citation Envoyé par Caro-Line Voir le message
    Ben là je ne sais pas vraiment quoi te dire.
    Le problème vient de ta fonction RSPRIME que tu as du mal coder.
    C'est cette fonction que tu dois revoir.
    Après je ne sais pas ce que ça modélise donc je ne peux pas t'aider.
    merci comme même de me repondre
    moi j'essaye de programmer l'exemple de cette page
    http://www.webreview.dz/IMG/pdf/6-Khaber_2.pdf

Discussions similaires

  1. Probleme avec la copie des surfaces
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/01/2003, 10h33
  2. Problèmes avec le filtrage des ip
    Par berry dans le forum Réseau
    Réponses: 9
    Dernier message: 30/12/2002, 07h51
  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