全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 悬赏大厅
3059 1
2020-04-29
悬赏 50 个论坛币 未解决
function f=myfun(x)  %目标函数
R=x*r';
alpha=0.05;
Percent=100*(0:alpha:1);
y=prctile(R,Percent);
VaR=-y;
f=VaR+1/300/alpha*sum(max(0,-R-VaR));

m=mean(r);
M=0.002;
A1=eye(30);
b1=zeros(1,30);
A2=m;
b2=M;
A=-[A1;A2];
b=-[b1,b2]';
Aeq=ones(1,30);
beq=1;
lb=zeros(30,1);
ub=ones(30,1);
x0=ones(1,30)/30;
options=optimset('LargeScale','off');
[x,CVaR]=fmincon(@myfun,x0,A,b,Aeq,beq,lb,ub,[],options);

r是300行30列的矩阵,运行程序后一直提示出错:
出错 fmincon (line 552)
      initVals.f = feval(funfcn{3},X,varargin{:});
出错 moxingqiujie (line 15)
[x,CVaR]=fmincon(@myfun,x0,A,b,Aeq,beq,lb,ub,[],options);
原因:
    Failure in initial objective function evaluation. FMINCON cannot continue.
求大神们帮忙解决一下
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2020-5-5 20:33:30
你好,没有r的数据,我用rand生成了一个,它在sum(max(0,-R-VaR))时维数不对,R是300维的,而VaR是21维。你检查一下你的代码是否有问题,或者提供一下r的数据。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群