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 :

fsolve & paramètres de la fonction anonyme [Trucs & Astuces]


Sujet :

MATLAB

  1. #1
    Membre éprouvé Avatar de Mathusalem
    Profil pro
    IT moa
    Inscrit en
    Décembre 2003
    Messages
    1 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : IT moa

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 008
    Points : 1 067
    Points
    1 067
    Par défaut fsolve & paramètres de la fonction anonyme
    Bonjour à tous !

    Avez-vous déjà essayé de résoudre des équations avec fsolve & fzero, en ayant en plus de l'inconnue, des paramètres que vous aimeriez fixer ?

    J'ai bloqué là-dessus ce matin, et j'ai trouvé 2 solutions.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    % with an embedded function
     
    function testfsolve(y)
     
        function F = myfun(x,y)
            F = sin(x)*y;
        end
     
    fzero(@myfun,1)
     
    end
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    % with an anonymous function
    function testfsolve(y)
       fzero(@(x)myfun(x,y),1);
    end
     
    function F = myfun(x,y)
       F = sin(x)*y;
    end
    Si quelqu'un connaît d'autres méthodes plus élégantes, je suis preneur !

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut autre technique
    Bonjour Mathusalem
    J'ai trouvé une autre méthode pour faire varier les paramètres d'une fonction et l'utiliser dans un fsolve.
    Premièrement je déclare la fonction avec la commande inline :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    F=inline('1.7321*abs(d)*(1-cos(x))-(0.5*(3*a+b)+(a-b)*cos(2*x+pi/3))*c','x','a','b','c','d');
    puis je fixe mes paramètres
    je nettoie la place pour la grandeur qui m'interesse:
    et je la déclare comme étant un objet symbolique
    et c'est là qu'intervient la feinte : je redéclare une fonction avec la commande inline, en utilisant cette fois ci mes paramètres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    G=inline(F(x,a,b,c,d));
    puis je résouds
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sys=fsolve(G,1,optimset('fsolve'))
    Perso j'utilise cette méthode dans un bloc S-Function pour faire tourner un simulateur. C'est certes moins élégant que ta méthode mais je n'ai pas réussi à aboutir avec ce que tu as donné

Discussions similaires

  1. [JS] Fonction anonyme et retour de variable ?
    Par lounislounis dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 25/07/2010, 01h23
  2. Fonctions anonymes et passage de variables
    Par Killua69 dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 23/07/2010, 13h16
  3. fonction membre depuis fonction anonyme
    Par PoZZyX dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 09/06/2010, 18h30
  4. Fonction dans une fonction anonyme
    Par Shinjuku dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 01/07/2009, 12h50
  5. [param undef][evenement clavier][2param fonction]
    Par tyrann dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/02/2006, 12h40

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