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 :

[Symbolic Math] utiliser une expression symbolique pour effectuer des calculs classiques


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2010
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 19
    Points : 9
    Points
    9
    Par défaut [Symbolic Math] utiliser une expression symbolique pour effectuer des calculs classiques
    Bonjour à tous,

    Voilà, je cherche désespérément à réutiliser une expression symbolique pour effectuer des calculs classiques.

    Je m'explique:

    - Dans un premier temps j'utilise une expression symbolique contenant plusieurs variables différentes pour effectuer des opérations de types dérivées ou intégrales.

    - Dans un second temps, je souhaite récupérer les expressions symboliques ainsi générées pour travailler dessus de façon classique. Mais comment faire? J'ai utilisé 'subs' (F=subs(F)), mais cela ne fonctionne pas.

    Merci d'avance pour vos retours!

    A bientot,
    Toma

  2. #2
    Futur Membre du Club
    Inscrit en
    Avril 2010
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    Peut être la fonction 'eval' (?)...

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Non c'est bien la fonction subs qu'il faut utiliser.
    Obtiens-tu une erreur ? Un résultat inattendu ?
    Pourrais-tu détailler un peu plus ?

  4. #4
    Futur Membre du Club
    Inscrit en
    Avril 2010
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    Voilà une partie de mon code simplifié:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    % Expression symbolique
    B1=(r/v1)*sin(t-t0);
    L'objectif est de réutiliser cette expression 'normalement', c'est à dire de la même façon que si je l’insère moi même dans le code. Comme si je faisait un copié/collé de l'expression.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    r=0.8;
    v1=2;
    t0=3;
    t=0:0.01:5;
    B1=(r/v1)*sin(t-t0);

  5. #5
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    syms r v1 t t0
    B1=(r/v1)*sin(t-t0);
    Dans ce cas tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    r = 0.8;
    v1 = 2;
    t0 = 3;
    t = 0:0.01:5;
    subs(B1)
    Mais plus généralement, et surtout si tu réutilises r, v1, t0 ou t en tant que variables symboliques :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    subs(B1,{'r' , 'v1' , 't' , 't0'} , {0.8 , 2 , 0:0.01:5 , 3})

  6. #6
    Futur Membre du Club
    Inscrit en
    Avril 2010
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    Je crois que cela m'a permis de régler mon problème. Merci.

    Par ailleurs, j'aurais une autre question. Pour effectuer des dérivées, la fonction 'diff' est utile. Mais comment faire si l'on souhaite effectuer une dérivée partielle? En reprenant la variable symbolique B1, effectuer d rond(t)/d rond(t0)?

    Merci beaucoup.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Dans le même ordre d'idée que subs, il te faut spécifier la variable par rapport à laquelle tu dérives :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    syms r v1 t t0
    B1=(r/v1)*sin(t-t0);
    >> diff(B1,r) % ou diff(B1,'r') dérivée par rapport à r
     
    ans =
     
    1/v1*sin(t-t0)
     
     
    >> diff(B1,t0) % ou diff(B1,'t0') dérivée par rapport à t0
     
    ans =
     
    -r/v1*cos(t-t0)

  8. #8
    Futur Membre du Club
    Inscrit en
    Avril 2010
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    En fait je me suis mal exprimé désolé.

    Effectivement, effectuer la derivée partielle de B1 par rapport à une des variables n'est pas un problème. Il s'agit ici d'effectuer directement la dérivée partielle d'une variable contenue dans B1 (par ex. t) par rapport à une autre (par ex. t0).

    Je ne pense pas que l'expression:
    fonctionne...

Discussions similaires

  1. Réponses: 1
    Dernier message: 11/07/2013, 12h52
  2. [RegEx] utiliser une expression régulière pour modifier un texte
    Par zerros dans le forum Langage
    Réponses: 2
    Dernier message: 04/11/2010, 23h06
  3. Réponses: 1
    Dernier message: 21/05/2010, 16h10
  4. Réponses: 1
    Dernier message: 18/04/2010, 08h20

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