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 :

Rendre un argument d'une fonction optionnel et tester s'il est présent


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Dev
    Inscrit en
    Décembre 2007
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dev

    Informations forums :
    Inscription : Décembre 2007
    Messages : 191
    Par défaut Rendre un argument d'une fonction optionnel et tester s'il est présent
    Bonjour,

    Tout est dans le titre ! Je ne comprends pas comment faire ça.

    enfait , je suis étudiant et je dois coder ce programme :
    function y=Newton(f,x0,tol,maxiter,fp)
    % NEWTON solves a system of non linear equations using Newton’s method.
    % y=Newton(f,x0,tol,maxiter,fp) solves the equation f(x)=0 using
    % Newton’s method with initial guess x0. fp is a function that accepts
    % exactly one argument x and returns the Jacobian of f evaluated at x.
    % If fp is not specified then an approximate Jacobian is computed by
    % the program.
    The function terminates when the Newton step length is
    % less than tol or when the maximum number of iterations maxiter is
    % reached.

    (pour info, le début de mon programme ressemble à ça :

    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
    k=0;
    xk=x0+2*tol;
    xkplus1=x0;
     
     
    while((k<maxiter) and (abs(xkplus1-xk)>tol)
      if "fp est présent dans les arguments"
        Jacobien=fp(xk);
      else
        Jacobien=...
      end  
      xk=xkplus1;
      xkplus1=xk-Jacobien\f(xk);
      k=k+1;
    end
     
    y=xkplus1;

    Donc mon problème réside dans le fait que je dois, selon si fp est spécifié ou pas, faire un certain calcul.

    (coté maths aucun souci)
    Malheureusement je ne comprends pas trop comment faire. Tester si fp est bien une fonction (et comment faire) ? y'a t'il une commande spéciale ?

    Merci de vos propositions et éclaircissements!


    EDIT: j'ai oublié de préciser quelle version j'utilisais... et je ne le sais pas! Je suis coincé chez moi à la suite d'un petit accident et Matlab est disponible seulement à mon école. Mais il s'agit d'une des dernières versions.

  2. #2
    Membre Expert
    Avatar de tug83
    Homme Profil pro
    MATLAB Geek !
    Inscrit en
    Juin 2006
    Messages
    1 781
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : MATLAB Geek !
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 781

Discussions similaires

  1. [VBA-E] Lister les arguments d'une fonction
    Par laloune dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/02/2006, 12h04
  2. Récupération d'arguments sur une fonction
    Par p0Kep0K dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 21/09/2005, 09h17
  3. premier argument d'une fonction
    Par Ickou dans le forum Langage
    Réponses: 3
    Dernier message: 10/09/2005, 14h17
  4. une url comme argument d'une fonction
    Par khayyam90 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/10/2004, 20h15
  5. passer FILE* en argument d une fonction
    Par Monsieur_Manu dans le forum C
    Réponses: 9
    Dernier message: 10/04/2003, 17h56

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