- http://matlab.cheme.cmu.edu/2011/12/24/using-lagrange-multipliers-in-optimization/
本人根据上边的网站上的内容作出如下形式的代码:
- function gamma = func(X)
- w=[]
- w(1,:)=X(1)
- w(2,:)=X(2)
- w(3,:)=X(3)
- w(4,:)=X(4)
- w(5,:)=X(5)
- w(6,:)=X(6)
- lambda=X(7)
- gamma=[mean(r*w)-sqrt(w'*cov(r)*w)*norminv(0.01)]+lambda*(sum(w)-1)
- end
- function dLambda=dfunc(X)
- dLambda=nan(size(X))
- h=1e-3
- for i=1:numel(X)
- dX=zeros(size(X))
- dX(i)=h
- dLambda(i)=(func(X+dX)-FUNC(X-dX))/(2*h)
- end
- end
不知道对不对,也不知道该如何修改,请广大坛友指教!多谢


雷达卡


京公网安备 11010802022788号







