Bonjour,
il y a quelqu'un qui peut me dire pourquoi ce programme ne fonctionne pas sur matlab.En fait le résultat qui s'affiche n'est pas l'attendu.
voici le programme:
function f=fonct(x);
%la fonction objective est la CVaR
%S:scalar data (la VaR)
%alpha:scalar data (seuil de confiance)
%R:(38,1996)matrix(la matrice des rentabilités)
%x:(1,38)matrix(vecteur des proportions optimales)
S=-0.35;
alpha=0.97;
x=rand(1,38);
x=x/sum(x);
R=xlsread('D:\data 2007\R.xls');
f=S+(1/(38*(1-alpha)))*((-x*R')-S*ones(1,1996));
function[Cineq,Ceq]=nlconst(x,M);
%v:scalar data(la variance à ne pas dépasser)
%M:(38,38)matrix(la matrice des variances covariances)
M=xlsread('D:\data 2007\M.xls');
Ceq=[];
v=0.0002;
Cineq=x*M*x'-v;
Rmoy=xlsread('D:\data 2007\Rmoy.xls');
%LB:la matrice des zéros (contrainte de non négativité)
%UB:la proportion maximale à investir dans chaque titre
%phi:la rentabilité minimale éspérée
%Rmax:(1,38)matrix(la matrice des rentablités maximales)
%Rmoy:(1,38)matrix(la matrice des rentabilités moyennes)
LB=zeros(1,38);
UB=(0.15)*ones(38,1);
Aeq=ones(1,38);
phi=0.003;
S=-0.35*ones(1,1996);
Aineq=phi-Rmoy*x;
Bineq=S+x*R';
[x0,fval]=fmincon(f,x,Aineq,Bineq,Aeq, Cineq, LB, UB,nlconst)
Configuration: Windows XP
Internet Explorer 6.0