제약 변수 이외의 변수로 구성된 목적 함수를 최소화하려고합니다. 로 정의된다목적 함수 fmincon에 인수 전달 MATLAB
data = xlsread('Returns.xlsx', 'Sheet2','A2:F324');
for i = 1:10
returns = data(i:i+59,1:5);
fund = data(i:i+59,6:6);
lb = [0;0;0;0;0];
ub = [1; 1; 1; 1; 1];
[betas, fval] = fmincon(@obj_function, [0 .2 .2 .2 .2 .2], [], [], [], [], lb, ub, @constraints);
end
을 그리고 목적 함수 : 예를 들면, 함수에 인수를 전달하는 방법이
function [ value ] = obj_function(betas)
value = returns*betas(2:6) + betas(1);
value = sum((value - fund)^2);
end
내 목적 함수 추가 변수를 필요로하기 때문에 returns
및 fund
, 무엇을 주요 기능에서 계속 전달할 수있는 최선의 방법은 무엇입니까? 아래 진술이 잘못되었습니다. 그 밖에 내가 뭘 할 수 있습니까? 다음과 같이
[betas, fval] = fmincon(@obj_function(returns, fund), [.2 .2 .2 .2 .2], [], [], [], [], lb, ub, @constraints);
EXTRA, 기능 제한 조건이 정의됩니다
function [ c, ceq ] = constraints(betas)
c = [];
ceq = betas(2)*1 + betas(3)*1 + betas(4)*1 + betas(5)*1 + betas(6)*1 - 1;
end