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 :

Utilisation de ezplot pour des fonctions implicites volumineuses


Sujet :

MATLAB

  1. #1
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 34
    Par défaut Utilisation de ezplot pour des fonctions implicites volumineuses
    Bonjour à tous,

    Une question à propos de la fonction "ezplot".

    J'ai réussis à utiliser la fonction "ezplot" pour tracer la courbe y(x) associée à la fonction implicite f(x,y)=0. Il est très facile d'utiliser "ezplot" dans MATLAB à condition d'écrire la fonction implicite complète dans l'argument de "ezplot"...
    Je souhaiterais utiliser "ezplot" différemment, c'est-à-dire en "découpant" chacun des termes de ma fonction implicite afin de simplifier mon code et qu'il soit plus visible.

    Voici donc ce que j'ai fait puis ce que je souhaite faire :

    Je souhaite tracer la courbe y(x) associée à ma fonction implicite :
    2*x^2+tanh(x*y)+x/y+1 = 0

    ***********mon script qui marche**************
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ezplot('2*x^2+tanh(x*y)+x/y+1=0')
    *****************************************

    Ce petit script donne de très bons résultats et ne pose pas de problème.

    Cependant je souhaiterais maintenant, pour simplifier mon code, découper ma fonction implicite et poser dans MATLAB :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    v_1=x^2;
    v_2=tanh(x*y);
    v_3=x/y;
    De sorte que ma fonction implicite s'écrive 2*v_1(x,y)+v_2(x,y)+v_3(x,y)+1=0
    Je souhaite toujours obtenir la courbe y(x). Ce découpage peut s'avérer très utile pour des fonctions implicites beaucoup plus volumineuses.

    J'ai essayé de créer trois fonctions pour y arriver mais j'ignore la syntaxe à utiliser dans "ezplot" pour y arriver. L'aide de MATLAB m'a aidé à avancer mais sans arriver vraiment à ce que je veux faire.

    Avez-vous une idée pour résoudre un tel problème ? je ne demande pas de réponse toute faite !! juste une piste !

    Je vous remercie pour votre aide !

    Sébastien

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Peut être une solution :

    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
    v{1} = 'x^2';
    v{2} = 'tanh(x*y)';
    v{3} = 'x/y';
    v{4} = '1';
     
    c{1} = '2';
    c{2} = '1';
    c{3} = '1';
    c{4} = '1';
     
    equ = sprintf('%s*%s',c{1},v{1});
    for n = 2:numel(v)
        equ = [equ '+' sprintf('%s*%s',c{n},v{n})];
    end
     
    ezplot(equ)
    ou encore :
    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
    v{1} = 'x^2';
    v{2} = 'tanh(x*y)';
    v{3} = 'x/y';
    v{4} = '1';
     
    c{1} = '2';
    c{2} = [];
    c{3} = [];
    c{4} = [];
     
    if ~isempty(c{1})
        equ = sprintf('%s*%s',c{1},v{1});
    else
        equ = v{1};
    end
     
    for n = 2:numel(v)    
        if ~isempty(c{n})
            equ = [equ '+' sprintf('%s*%s',c{n},v{n})];
        else
            equ = [equ '+' v{n}];
        end
    end
     
    ezplot(equ)

Discussions similaires

  1. Pb pour des fonctions
    Par vuong1 dans le forum C++
    Réponses: 1
    Dernier message: 20/04/2007, 09h55
  2. Utilisation du gpointer user_data des fonctions calback
    Par troumad dans le forum GTK+ avec C & C++
    Réponses: 7
    Dernier message: 14/02/2007, 17h45
  3. aide pour des fonctions
    Par sharpeye dans le forum ASP
    Réponses: 2
    Dernier message: 11/04/2006, 09h25
  4. Pb de lien entre Access et Excel pour des fonctions VBA
    Par favien dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/11/2005, 01h00
  5. Réponses: 3
    Dernier message: 29/10/2005, 14h13

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