谢谢各位,终于调试出来了,可是却出现下面的警告了....
Warning: Trust-region-reflective method does not currently solve this type of problem,
using active-set (line search) instead.
> In fmincon at 422
In MaxR at 5
Optimization terminated: first-order optimality measure less than options.TolFun
and maximum constraint violation is less than options.TolCon.
No active inequalities.
W =
0.1429 0.1429 0.1429 0.1429 0.1429 0.1429 0.1429
算出来的weight怎么是一样的...
这个是function:
function f=Rsquare(W)
GX=[0.000962399130776210,0.000350064522473660,0.000103800673864978,0.000777638315620633,0.000448463306219591,0.000447493172105510,0.000235369828884265;0.000350064522473660,0.000288729482029933,2.85557927940941e-05,0.000322442624420951,0.000259653098783394,0.000262234399226072,0.000126188573217356;0.000103800673864978,2.85557927940941e-05,0.000990934740141339,0.000285757218956752,0.000312438308883034,0.000289760443782061,0.000532726512474590;0.000777638315620633,0.000322442624420951,0.000285757218956752,0.00108798111602739,0.000505749857087467,0.000498875033836279,0.000363361706487174;0.000448463306219591,0.000259653098783394,0.000312438308883034,0.000505749857087467,0.000909923614464120,0.000796792652159657,0.000731952738728617;0.000447493172105510,0.000262234399226072,0.000289760443782061,0.000498875033836279,0.000796792652159657,0.000968783410757642,0.000742100618310187;0.000235369828884265,0.000126188573217356,0.000532726512474590,0.000363361706487174,0.000731952738728617,0.000742100618310187,0.000908695711462052;];
GY=[0.000962399130776210,0.000350064522473660,0.000103800673864978,0.000777638315620633,0.000448463306219591,0.000447493172105510,0.000235369828884265;0.000350064522473660,0.000288729482029933,2.85557927940941e-05,0.000322442624420951,0.000259653098783394,0.000262234399226072,0.000126188573217356;0.000103800673864978,2.85557927940941e-05,0.000990934740141339,0.000285757218956752,0.000312438308883034,0.000289760443782061,0.000532726512474590;0.000777638315620633,0.000322442624420951,0.000285757218956752,0.00108798111602739,0.000505749857087467,0.000498875033836279,0.000363361706487174;0.000448463306219591,0.000259653098783394,0.000312438308883034,0.000505749857087467,0.000909923614464120,0.000796792652159657,0.000731952738728617;0.000447493172105510,0.000262234399226072,0.000289760443782061,0.000498875033836279,0.000796792652159657,0.000968783410757642,0.000742100618310187;0.000235369828884265,0.000126188573217356,0.000532726512474590,0.000363361706487174,0.000731952738728617,0.000742100618310187,0.000908695711462052;];
f=-(W*GX*W')/(W*GY*W');
这个是优化:
x0=ones(1,7)*0.25;
lb=-ones(1,7);
ub=ones(1,7);
aeq=ones(1,7);
W=fmincon('Rsquare',x0,[],[],aeq,1,lb,ub)
不知道问题出在哪里了,看那警告说是约束不管用?