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 :

Beaucoup d'arguments dans ma fonction ? [Débutant]


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 53
    Points : 19
    Points
    19
    Par défaut Beaucoup d'arguments dans ma fonction ?
    Salut tout le monde,
    J'ai écrit un code afin d'estimer les paramètres d'un GARCH à partir des données empiriques en minimisant la somme des erreurs, cependant je dois utiliser beaucoup de variables en entrée pour définir ma fonction à minimiser et ce que j'ai fait n'a pas l'air de marcher, Matlab m'indique que je me trompe dans le nom de la fonction :s Des idées ?

    Mon code :
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
     
    % Charger nbr_sim sombre de simulations
    % Charger taux sans risque quotidien (/360) r
    % Charger vecteur des S0 (S0 au dÈbut d'observation des prix pour chaque option) 
    % Charger vecteur des Sigma0 (S0 au dÈbut d'observation des prix pour chaque option)  
    % Charger vecteur des maturitÈs Mat_vec
    % Charger vecteur durÈe de vie restante (afin d'Èxploiter les observations
    % des options non Èchues)rest_vec
    % Charger les matrices d'observations pour chaque maturitÈ dans un cell
    % array prix_array
    % Charger les vecteurs des strikes disponibles pour chaque maturitÈ dans un
    % autre cell array strike_array
     
    function f = f(om,alpha,gam,beta,vec_strike,mat_vec,prix_array{1},s0_vec,sig0_vec,rest_vec,r,nbr_sim)
     
    % GÈnÈration et stockage en mÈmoire des tous les nombres alÈatoires
    nbr_mat = size(mat_vec,1);
    eps2=cell(nbr_mat);
    for i = 1:nbr_mat
    mat = mat_vec(i);
    eps1=cell(nbr_strike);
    for j = 1: nbr_strike
            eps1{j}=rndn(nbr_sim,mat);
    end 
    eps2{i}= eps1{j}; 
    end 
     
    e=zero(nbr_mat,nbr_obs);
    c=zero(nbr_mat,nbr_strike);
    nbr_strike = size(vec_strike,1);
    for i = 1:nbr_mat
    vec_strike = strike_array{i};
    prix=prix_array{i};
    nbr_strike = size(vec_strike,1);
    mat = mat_vec(i);
    so=s0_vec(i);
    sig0=sig0_vec(i);
    nbr_obs=mat_vec(i)-rest_vec(i);
    eps1=eps2{i};
     
    for j =1 : nbr_strike
      strike = vec_strike (j);  
        eps=eps1{j};  % matrice des nombres alÈatoires qui va Ítre utilisÈe dans les simulations
      payoff=zero(nbr_sim);
       for k = 1 : nbr_sim
          sigma=zeros(nbr_sim,mat+1); 
           Z = zeros(nbr_sim,mat);
               for l = 2 : mat+1
                 sigma (1,1)=sig0;
                 Z(1)=1;
                 sigma (k,l)=(om + (alpha * (eps(k,l-1)-(0.5+ gam))^2)*sigma(k,l-1)^2+beta*sig(l- 1)^2)^0.5; 
                 Z(k,l) = Z(k,l-1)*Exp((-0.5 *(cig(k,l)^2))+(sig(k,l)*eps(k,l)));
               end
         st = sz * (Exp(r * mat)) * Z(mat);
         payoff(k)= max(st-strike,0);
     
      end
        c (i,j)= mean (payoff);
     
      %%%%%%% Calcul des erreurs
     
       for l = i : nbr_obs
           e(i,j)=e(j)+(prix(l,j)-(c(i,j)*exp(r*(l-mat))))^2;
       end
    end
    c (i,j)% stocker dans un cell array
    e(i,j) % stocker dans un cell array
    end
     
    ee =zero(nbr_mat);
    for i =1 : nbr_mat
        for j =1 :nbr_strike
        ee(i)=ee+e(i,j);
        end
    eee=eee+ ee(i);
    end
    f = eee;
     
    %Optimisation
     
    %Matrice des contraintes
    A = [1 1 1 ; -1 0 0 ; 0 -1 0 ; 0 0 -1];       
    b = [1 ; 0 ; 0 ; 0];
     
    fmincon

  2. #2
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    Bonjour,

    Tu n'as pas le droit d'écrire çà: dans les paramètres d'entrée d'une fonction.

    Duf
    Simulink & Embedded Coder

    Au boulot : Windows 7 , MATLAB r2016b
    A la maison : ArchLinux mais pas MATLAB

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 53
    Points : 19
    Points
    19
    Par défaut
    Merci Duf mais même après l'avoir enlevé j'ai ces erreurs à la ligne 28 qui restent :
    Function keyword use is invalid here
    parse error at ')' : usage might be invalid MATLAB syntax
    Je dois utiliser plusieurs matrices que je dois stocker dans un cell array, je vais utiliser une seule pour le test mais après je dois mettre toutes mes matrices comme arguments ? (...,prix1,prix2,........)

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 53
    Points : 19
    Points
    19
    Par défaut
    Pour être plus explicite :
    J'ai un vecteur de maturités, pour chaque valeur de ma variable maturité j'ai un vecteur de données et une matrice de données que je stocke dans un cell array.
    Donc j'ai deux cell arrays, 4 vecteurs et 2 scalaires comme input dans ma fonction. + 4 paramètres à estimer.
    Puis-je mettre comme argument Prix_array ou je dois mettre les matrices qui le compose une par une ?
    J'ai essayé plusieurs combinaisons, changer les parenthèses,....mais le problème persiste :s
    S'il vous plaît de l'aide

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

    Non tu peux très bien faire passer Prix_array entier.
    J'aurais plusieurs remarques:

    Quelles erreurs obtiens-tu encore, et quelles sont les lignes concernées?

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 53
    Points : 19
    Points
    19
    Par défaut
    Merci Winjerome, merci pour ces corrections mais le problème persiste :
    J'ai les erreurs :

    Function keyword use is invalid here
    parse error at ')' : usage might be invalid MATLAB syntax
    Avec le mot function et la parenthèse de fin sont sous-lignés en rouge

    De plus en ayant mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    % ParamËtres
    om = par(1);
    alpha=par(2);
    gam =par(3);
    beta=par(4);
    function f = f (par,prix_array,strike_array,mat_vec,s0_vec,sig0_vec,rest_vec,r,nbr_sim)
    J'ai prix_array et strike_array coloriés en marron avec l'erreur :

    Terminate statement with semicolon to supress outpout

  7. #7
    Invité
    Invité(e)
    Par défaut
    Cette ligne de ton dernier message:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function f = f (par,prix_array,strike_array,mat_vec,s0_vec,sig0_vec,rest_vec,r,nbr_sim)
    Est un appel à la fonction f définie dans ton premier message?
    Si tel est le cas, supprime "function" devant. Il est utilisé seulement dans la définition de la fonction.
    De plus évite de donner à ta variable de sortie le même nom que ta fonction, sous risque de la masquer.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 53
    Points : 19
    Points
    19
    Par défaut
    Non, c'est la ligne 13 de mon premier post, mon but est de minimiser cette fonction avec fmincon.
    J'ai mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function f = erreursfun (par,prix_array,strike_array,mat_vec,s0_vec,sig0_vec,rest_vec,r,nbr_sim)
    Et j'ai changé la ligne 76 qui est devenue :

    Mais toujours le même problème.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 53
    Points : 19
    Points
    19
    Par défaut
    J'ai bidouillé un peu mon code et là je n'ai plus les erreurs précédentes mais à la première ligne j'ai f soulignée en rouge avec l'erreur :
    The function return value 'f' might be unset.

    et une autre erreur à la dernière ligne avec par souligné en rouge :

    The value assignedto variable 'par' might be unused.

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
     
     
    function f = erreursfun (par,prix_array,strike_array,mat_vec,s0_vec,sig0_vec,rest_vec,r,nbr_sim)
    om = par(1);
    alpha=par(2);
    gam =par(3);
    beta=par(4);
     
    % GÈnÈration et stockage en mÈmoire des tous les nombres alÈatoires
    nbr_mat = size(mat_vec,1);
    eps2=cell(nbr_mat);
    for i = 1:nbr_mat
        mat = mat_vec(i);
        vec_strike = strike_array{i};
        nbr_strike = size(vec_strike,1);
        eps1=cell(nbr_strike);
        for j = 1: nbr_strike
            eps1{j}=randn(nbr_sim,mat);
        end
        eps2{i}= eps1{j};
    end
     
    for i = 1:nbr_mat
        vec_strike = strike_array{i};
        prix=prix_array{i};
        nbr_strike = size(vec_strike,1);
        mat = mat_vec(i);
        sig0=sig0_vec(i);
        s0=s0_vec(i);
        nbr_obs=mat_vec(i)-rest_vec(i);
        eps1=eps2{i};
        e=zeros(nbr_mat,nbr_obs);
        c=zeros(nbr_mat,nbr_strike);
        for j =1 : nbr_strike
            strike = vec_strike (j);
            eps=eps1{j};  % matrice des nombres alÈatoires qui va Ítre utilisÈe dans les simulations
            payoff=zeros(nbr_sim);
            for k = 1 : nbr_sim
                sigma=zeros(nbr_sim,mat+1);
                Z = zeros(nbr_sim,mat);
                for l = 2 : mat+1
                    sigma (1,1)=sig0;
                    Z(1)=1;
                    sigma (k,l)=(om + (alpha * (eps(k,l-1)-(0.5+ gam))^2)*sigma(k,l-1)^2+beta*sig(l- 1)^2)^0.5;
                    Z(k,l) = Z(k,l-1)*Exp((-0.5 *(cig(k,l)^2))+(sig(k,l)*eps(k,l)));
                end
                st = s0 * (Exp(r * mat)) * Z(mat);
                payoff(k)= max(st-strike,0);
     
            end
            c (i,j)= mean (payoff);
     
            %%%%%%% Calcul des erreurs
     
            for l = i : nbr_obs
                e(i,j)=e(j)+(prix(l,j)-(c(i,j)*exp(r*(l-mat))))^2;
            end
        end
        c (i,j)% stocker dans un cell array
        e(i,j) % stocker dans un cell array
    end
     
    ee =zeros(nbr_mat);
    for i =1 : nbr_mat
        for j =1 :nbr_strike
            ee(i)=ee+e(i,j);
        end
        eee=eee+ ee(i);
    end
    erreursfun = eee;
     
     
    %Optimisation
     
    %Matrice des contraintes
    A = [1 1 1 ; -1 0 0 ; 0 -1 0 ; 0 0 -1];
    b = [1 ; 0 ; 0 ; 0];
    x0=[0.1;0.1;0.1;0.1];
    par = fmincon (erreursfun,x0,A,b);

  10. #10
    Invité
    Invité(e)
    Par défaut
    La structure d'utilisation de ta fonction n'est pas bonne. Tu ne peux pas faire l'optimisation dans la fonction même:
    De plus, il te manque les arguments à faire passer à ta fonction (tu peux regarder le dernier point du sujet Que représente le symbole @? de la ):

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    function monOptimisation
    %Optimisation
    
    %Matrice des contraintes
    A = [1 1 1 ; -1 0 0 ; 0 -1 0 ; 0 0 -1];
    b = [1 ; 0 ; 0 ; 0];
    x0=[0.1;0.1;0.1;0.1];
    prix_array = ...
    strike_array = ...
    mat_vec = ...
    s0_vec = ...
    sig0_vec = ...
    rest_vec = ...
    r = ...
    nbr_sim = ...
    par = fmincon (@(x) erreursfun(x,prix_array,strike_array,mat_vec,s0_vec,sig0_vec,rest_vec,r,nbr_sim),x0,A,b);
    
    function f = erreursfun (par,prix_array,strike_array,mat_vec,s0_vec,sig0_vec,rest_vec,r,nbr_sim)
    om = par(1);
    alpha=par(2);
    gam =par(3);
    beta=par(4);
    
    % GÈnÈration et stockage en mÈmoire des tous les nombres alÈatoires
    nbr_mat = size(mat_vec,1);
    eps2=cell(nbr_mat);
    for i = 1:nbr_mat
        mat = mat_vec(i);
        vec_strike = strike_array{i};
        nbr_strike = size(vec_strike,1);
        eps1=cell(nbr_strike);
        for j = 1: nbr_strike
            eps1{j}=randn(nbr_sim,mat);
        end
        eps2{i}= eps1{j};
    end
    
    for i = 1:nbr_mat
        vec_strike = strike_array{i};
        prix=prix_array{i};
        nbr_strike = size(vec_strike,1);
        mat = mat_vec(i);
        sig0=sig0_vec(i);
        s0=s0_vec(i);
        nbr_obs=mat_vec(i)-rest_vec(i);
        eps1=eps2{i};
        e=zeros(nbr_mat,nbr_obs);
        c=zeros(nbr_mat,nbr_strike);
        for j =1 : nbr_strike
            strike = vec_strike (j);
            eps=eps1{j};  % matrice des nombres alÈatoires qui va Ítre utilisÈe dans les simulations
            payoff=zeros(nbr_sim);
            for k = 1 : nbr_sim
                sigma=zeros(nbr_sim,mat+1);
                Z = zeros(nbr_sim,mat);
                for l = 2 : mat+1
                    sigma (1,1)=sig0;
                    Z(1)=1;
                    sigma (k,l)=(om + (alpha * (eps(k,l-1)-(0.5+ gam))^2)*sigma(k,l-1)^2+beta*sig(l- 1)^2)^0.5;
                    Z(k,l) = Z(k,l-1)*Exp((-0.5 *(cig(k,l)^2))+(sig(k,l)*eps(k,l)));
                end
                st = s0 * (Exp(r * mat)) * Z(mat);
                payoff(k)= max(st-strike,0);
                
            end
            c (i,j)= mean (payoff);
            
            %%%%%%% Calcul des erreurs
            
            for l = i : nbr_obs
                e(i,j)=e(j)+(prix(l,j)-(c(i,j)*exp(r*(l-mat))))^2;
            end
        end
        c (i,j)% stocker dans un cell array
        e(i,j) % stocker dans un cell array
    end
    
    ee =zeros(nbr_mat);
    for i =1 : nbr_mat
        for j =1 :nbr_strike
            ee(i)=ee+e(i,j);
        end
        eee=eee+ ee(i);
    end
    f= eee;

  11. #11
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 53
    Points : 19
    Points
    19
    Par défaut
    Merci beaucoup pour ta réponse mais j'ai encore des erreurs :

    Ligne 6 :
    The value assigned to variable 'b' might be unused.
    Ligne 9 :
    Parse error at '=':usage might be invalid MATLAB syntax.
    Ligne 16 :
    Parse error at ')':usage might be invalid MATLAB syntax.
    X0 et A en marron :
    Terminate statement xith semicolon to supress output (in functions).
    Parse error at '=':usage might be invalid MATLAB syntax. .
    (dernière parenthèse)

    Ligne 18 :
    The function 'erreursfun' might be unused.
    Merci beaucoup de te montrer patient avec moi .

  12. #12
    Invité
    Invité(e)
    Par défaut
    Alors déjà les messages:

    The value assigned to variable 'b' might be unused.
    Terminate statement xith semicolon to supress output (in functions).
    Ne sont que des warnings, pas des erreurs.
    Le premier signifie que tu as déclaré une variable qui n'est pas utilisée par la suite.
    Le second signifie juste que si tu veux que la valeur ne soit pas affichée dans ta ligne de commande, il te faut rajouter un point-virgule ; à la fin de ta ligne.

    Ensuite pour tes autres erreurs, à quel code correspondent ces lignes?

  13. #13
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 53
    Points : 19
    Points
    19
    Par défaut
    Merci beaucoup pour ton aide, mais encore une petite précision : maintenant je n'ai plus qu'à charger mes données dans MATLAB, remplacer les pointillés par leur nom et exécuter le code ?
    Et excuse moi pour cette question.

  14. #14
    Invité
    Invité(e)
    Par défaut
    Oui c'est bien ce que signifiaient mes pointillés

  15. #15
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 53
    Points : 19
    Points
    19
    Par défaut
    Encore merci Winjerome
    Je vais essayé d'exécuter tout ça, ça m'a quand même l'air d'être un peu compliqué.
    Une autre question, pourrais-je avoir avec ce code les valeurs des variables intermédiaires quand la minimisation est atteinte ? (payoff,...etc)

    Edit : Après avoir entré des données pour tester, j'ai eu pas mal d'erreurs en rouge, je vais me documenter la dessus et si je ne trouve pas je posterai le tout ici.

  16. #16
    Invité
    Invité(e)
    Par défaut
    Oui c'est possible, il te suffit de définir ta fonction comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function [f payoff autres_arguments] = erreursfun (par,prix_array,strike_array,mat_vec,s0_vec,sig0_vec,rest_vec,r,nbr_sim)
    Puis à la suite de la fonction fmincon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    par = fmincon (...);
    [f payoff autres_arguments] = erreursfun(par)

  17. #17
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 53
    Points : 19
    Points
    19
    Par défaut
    Merci beaucoup pour ton aide Winjerome, là je suis entrain de corriger les erreurs du code et j'espère que je m'en sortirai seul. Je mets sur résolu en attendant.
    Encore merciiii.

  18. #18
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 53
    Points : 19
    Points
    19
    Par défaut
    Salut tout le monde,
    J'essaye d'afficher les valeurs de mes paramètres après la minimisation mais j'y arrive pas.

    Citation Envoyé par Winjerome Voir le message
    Oui c'est possible, il te suffit de définir ta fonction comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function [f payoff autres_arguments] = erreursfun (par,prix_array,strike_array,mat_vec,s0_vec,sig0_vec,rest_vec,r,nbr_sim)
    Puis à la suite de la fonction fmincon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    par = fmincon (...);
    [f payoff autres_arguments] = erreursfun(par)

    J'ai essayé ce que tu m'as dit mais je pense que je dois m'y prendre mal, je n'obtient même pas le message local minimum found :s

    Encore une fois please help !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function [f payoff (prix_array,strike_array,mat_vec,s0_vec,sig0_vec,r,nbr_sim)] = erreursfun (par,prix_array,strike_array,mat_vec,s0_vec,sig0_vec,rest_vec,r,nbr_sim)
     
    par = fmincon (@(x)  erreursfun(x,prix_array,strike_array,mat_vec,s0_vec,sig0_vec,rest_vec,r,nbr_sim),x0,A,b);
    [f payoff (prix_array,strike_array,mat_vec,s0_vec,sig0_vec,r,nbr_sim)] = erreursfun(par)

  19. #19
    Invité
    Invité(e)
    Par défaut
    Et qu'obtiens-tu à la place? Une erreur?
    Commence par retirer les parenthèses qui n'ont pas lieu d'être ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function [f payoff (prix_array,strike_array,mat_vec,s0_vec,sig0_vec,r,nbr_sim)] = erreursfun (par,prix_array,strike_array,mat_vec,s0_vec,sig0_vec,rest_vec,r,nbr_sim)
    
    par = fmincon (@(x)  erreursfun(x,prix_array,strike_array,mat_vec,s0_vec,sig0_vec,rest_vec,r,nbr_sim),x0,A,b);
    [f payoff (prix_array,strike_array,mat_vec,s0_vec,sig0_vec,r,nbr_sim)] = erreursfun(par)

  20. #20
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 53
    Points : 19
    Points
    19
    Par défaut
    À part la valeur des variables que j'ai entrées, il ne m'affiche tout simplement rien, ça ne viendrait pas du choix des arguments ? (je dois mettre les arguments essentiels au calcul de ma variable intermédiaire)

    De plus je ne parviens pas à afficher le vecteur "par" des valeurs optimales :s comment faire ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. passage d'argument dans une fonction
    Par wadcyr8_197 dans le forum C++
    Réponses: 5
    Dernier message: 20/07/2007, 09h41
  2. Généricité des Input Arguments dans une fonction
    Par RaphTIM dans le forum MATLAB
    Réponses: 5
    Dernier message: 06/06/2007, 16h28
  3. Passer un tableau PHP en argument dans une fonction javascript ?
    Par The Molo dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 18/05/2007, 12h31
  4. Erreur d'argument dans une fonction
    Par rouliane dans le forum MATLAB
    Réponses: 6
    Dernier message: 12/12/2006, 11h52
  5. arguments dans ma fonction main
    Par salseropom dans le forum C
    Réponses: 10
    Dernier message: 15/03/2006, 23h12

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