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 :

Aide options optimset [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 Aide options optimset
    Bonjour
    J'ai l'erreur :
    Trust-region-reflective algorithm does not solve this type
    of problem
    Donc je change les optins comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Options=optimset('algorithm','interior-point')
    par = fmincon (@(x) erreursfun(x,prix_array,strike_array,mat_vec,s0_vec,sig0_vec,rest_vec,r,nbr_sim),x0,A,b,options)
    Et là j'ai : Undefined variable or function 'options'

    J'ai essayé plusieurs combinaisons/écritures mais je dois surement me tromper :s

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,

    MATLAB est sensible à la casse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    options=optimset('algorithm','interior-point')
    par = fmincon (@(x) erreursfun(x,prix_array,strike_array,mat_vec,s0_vec,sig0_vec,rest_vec,r,nbr_sim),x0,A,b,options)
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  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
    Oups ! c'était seulement une erreur quand j'ai posté, dans mon code le "o" est en minuscule, donc le problème ne vient pas de là :s
    PS : Merci pour ta réponse.

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    C'est le message d'erreur complet? si non, peux-tu nous le montrer?
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  5. #5
    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
    Voilà le message complet, il est assez long :

    Warning: Trust-region-reflective algorithm does not solve this type
    of problem, using active-set algorithm. You could also try the
    interior-point or sqp algorithms: set the Algorithm option to
    'interior-point' or 'sqp' and rerun. For more help, see Choosing the
    Algorithm in the documentation. 
    > In fmincon at 472
      In monOptimisation at 20
    
    Local minimum found that satisfies the constraints.
    
    Optimization completed because the objective function is non-decreasing in 
    feasible directions, to within the default value of the function tolerance,
    and constraints were satisfied to within the default value of the constraint tolerance.
    
    <stopping criteria details>
    
    Active inequalities (to within options.TolCon = 1e-006):
      lower      upper     ineqlin   ineqnonlin
                              1           
                              5    
    Quand j'essaye d'intégrer options pour changer l'algorithme j'ai l'erreur :

    Undefined variable or function 'options'
    Error in ==> monOptimisation at 22
    par = fmincon (@(x)
    erreursfun(x,prix_array,strike_array,mat_vec,s0_vec,sig0_vec,rest_vec,r,nbr_sim),x0,A,b,options);

  6. #6
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Tout d'abord, il faut mettre options au bon endroit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    par = fmincon (@(x)
    erreursfun(x,prix_array,strike_array,mat_vec,s0_vec,sig0_vec,rest_vec,r,nbr_sim),x0,A,b,[],[],[],[],[],options);
    après s'il ne reconnait toujours pas options, vérifie que les 2 écritures sont identiques
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  7. #7
    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'avais déjà essayé cette écriture et là je viens de la réessayer et toujours le même problème, undefined... 'options' :s

  8. #8
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Comment lances-tu ton code? ces 2 lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    options=optimset('algorithm','interior-point');
    par = fmincon (@(x)
    erreursfun(x,prix_array,strike_array,mat_vec,s0_vec,sig0_vec,rest_vec,r,nbr_sim),x0,A,b,[],[],[],[],[],options);
    sont bien dans le même fichier? Peux-tu nous montrer le code complet de monOptimisation?
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  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
    Excuse moi je suis un vrai gros noob en Matlab, je prefère poster le code pour que t'y vois plus clair.
    j'execute mon code en faisant run depuis le Mfile et voici le code (avec l'aide de Winjerome) :

    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
    86
    87
    88
    89
    90
    91
    92
    93
    94
    function monOptimisation
    %Optimisation
     
    %Matrice des contraintes
     
    A = [0 1 1 1 ; 0 -1 0 0 ; 0 0 -1 0 ; 0 0 0 -1 ; 0 0 0 0];
    b = [1 ; 0 ; 0 ; 0 ; 0];
    x0=[0.5;0.5;0.5;0.5];
    prix_array = cell(1)
    load data
    prix_array {1} = data
    strike_array = cell(1)
    load data2
    strike_array {1}= data2
    mat_vec = [67]
    s0_vec = [1121]
    sig0_vec = 0.0005
    rest_vec = 0
    r = 0
    nbr_sim = 5
    opions=optimset('algorithm','interior-point')
    par = fmincon (@(x)erreursfun(x,prix_array,strike_array,mat_vec,s0_vec,sig0_vec,rest_vec,r,nbr_sim),x0,A,b,[],[],[],[],[],options);
     
    function f = erreursfun (par,prix_array,strike_array,mat_vec,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);
        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
    c=zeros(nbr_mat,nbr_strike);
    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);
        e=zeros(nbr_mat,nbr_obs);
        c=zeros(nbr_mat,nbr_strike);
        for j =1 : nbr_strike
            strike = vec_strike (j);
            payoff=zeros(nbr_sim);
            eps1{j}= eps2{i};
            epss = eps1{j};
            somme=zeros(nbr_mat,nbr_strike);
            for k = 1 : nbr_sim
                sigma=zeros(nbr_sim,mat+1);
                Z = zeros(nbr_sim,mat);
                zzero = zeros(nbr_sim);
                for l = 2 : mat+1
                    sigma (1,1)=sig0;
                    Z(1,1)=1;
                    sigma (k,l)=(par(1) + (par(2) * (epss(k,l-1)-(0.5+ par(3)))^2)*sigma(k,l-1)^2+par(4)*sigma(k,l- 1)^2)^0.5;
                    Z(k,l) = Z(k,l-1)*exp((-0.5 *(sigma(k,l)^2))+(sigma(k,l)*epss(k,l-1)));
                end
                st(k) = s0 * (exp(r * mat)) * Z(k,mat+1);
                payoff(k)= max(st(k)-strike,0);
                somme(i,j)=somme(i,j)+payoff(k);
     
            end
            c(i,j)= somme(i,j)/nbr_sim;
        end
    end
    %%%%%%% Calcul des erreurs
    e=zeros(nbr_mat,nbr_strike);
    for i =1 : nbr_mat
        for j = 1: nbr_strike
            for l = 1 : mat_vec(i)-rest_vec(i)
                e(i,j)=e(i,j)+(prix(l,j)-c(i,j)*exp(r*(l-mat)))^2;
     
            end
     
        end
    end
     
    ee =zeros(nbr_mat);
    eee = 0;
    for i =1 : nbr_mat
        for j =1 :nbr_strike
            ee(i)=ee+e(i,j);
        end
        eee=eee+ ee(i);
    end
    f= eee;

  10. #10
    Invité
    Invité(e)
    Par défaut
    C'est bien ce que te disait magelan: l'écriture identique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    options=optimset('algorithm','interior-point')

  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
    J'arrive pas à croire que j'ai raté ça! Merci beaucoup pour votre patience les gars.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Python 2.X] aide options cx_freeze
    Par toitoinebzh dans le forum Déploiement/Installation
    Réponses: 7
    Dernier message: 13/10/2014, 17h24
  2. Comment afficher un argument sans l'aide d'une option
    Par mundu dans le forum Général Python
    Réponses: 3
    Dernier message: 25/04/2008, 23h17
  3. Réponses: 6
    Dernier message: 26/06/2007, 10h36
  4. Réponses: 20
    Dernier message: 07/05/2007, 16h46
  5. Réponses: 3
    Dernier message: 07/10/2005, 12h07

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