Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

Comment insérer une fonction Matlab dans les paramètres d'entrée d'une autre fonction ??




  1. #1
    °Oo>>PCSI2<<oO°

    Lightbulb Comment insérer une fonction Matlab dans les paramètres d'entrée d'une autre fonction ??

    Bonjour, j'aurais besoin d'aide pour un projet à faire sur Matlab.

    J'ai fait un programme Matlab qui trouve la racine d'une équation par la méthode de Newton (bref, peu importe ...), mais j'aimerais maintenant la changer en fonction Matlab.

    Il faudrait que je puisse l'appeler avec, comme paramètre d'entrée, une autre fonction Matlab déjà créée à côté, comme ceci :
    >>Newton(func)

    Le problème que j'ai est que je ne connais pas la syntaxe pour faire ceci. La difficulté : cette fonction 'func' contient une (vraie) fonction mathématique en fonction de x, et on n'attribue à ce x une valeur qu'à l'intérieur du programme 'Newton'.

    En faisant plusieurs tentatives en me référent à d'autres sujets de forums (outils handle, input, ...), la majorité du temps j'aboutis avec l'erreur suivante :
    >> Newton(func)
    ??? Input argument "x" is undefined.

    Error in ==> func at 3
    fonc = 3*x-1;


    Merci bcp pour votre aide, parce que vraiment, là, il me tarde vraiment de finir ce truc !!!

    -----


  2. Publicité
  3. #2
    phryte

    Re : Comment insérer une fonction Matlab dans les paramètres d'entrée d'une autre fonction ??

    Bonjour.
    Voici un exemple :
    Code:
    function r=newton(fonc,x0)
    syms x
    xnm1 = x0;x=x0;
     erreur = 1e-6;n = 0;
     while abs(eval(fonc)) > erreur
     n = n+1;% fonc = sin(xnm1) - xnm1+2;
     dif = diff(fonc); %dérivée
     if eval(dif) ~= 0
     x = xnm1 - eval(fonc)/eval(dif);%Formule 
     else  disp('Dérivée nulle'); end
     xnm1 = x;end;
    r=x;
    Appel :
    Code:
     r=newton('3*x-1',0)

  4. #3
    °Oo>>PCSI2<<oO°

    Re : Comment insérer une fonction Matlab dans les paramètres d'entrée d'une autre fonction ??

    Merci beaucoup, mais en exécutant exactement comme tu l'as dit, voici la réponse qu'il donne :
    >> r=aide_newton('3*x-1',0)
    ??? Undefined function or method 'eval' for input arguments of type 'double'.

    Error in ==> aide_newton at 13
    if eval(dif) ~= 0


    Est-ce normal ? Que se passe-t-il ?? =)
    Encore merci de ton aide.


  5. #4
    phryte

    Re : Comment insérer une fonction Matlab dans les paramètres d'entrée d'une autre fonction ??

    Bonjour.
    Essaie :
    if dif ~= 0

Discussions similaires

  1. exercice dm exprimer une fonction à l'aide d'une autre [1ereS]
    Par Candy06 dans le forum Mathématiques du collège et du lycée
    Réponses: 2
    Dernier message: 21/01/2009, 18h04
  2. Insérer une video dans une autre (superposée)
    Par El-Cherubin dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 28/06/2008, 20h50
  3. comment insérer une page dans une autre ?
    Par v_711 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 9
    Dernier message: 29/05/2007, 13h13
  4. Comment définir une fonction dans un espace courbe ?
    Par Hash dans le forum Mathématiques du supérieur
    Réponses: 22
    Dernier message: 21/07/2006, 16h31
  5. comment appeler une fonction ecrite en C++ sur Matlab
    Par joel dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 17/06/2005, 15h35