2016-10-04 4 views
0

Matlab에서 fmincon을 사용하여 함수를 최소화하려고 시도하고 있지만 내 제약 조건을 평가할 때 이전 반복의 변수 값이 필요합니다.Matlab 최적화의 이전 반복 변수에 대한 액세스

제 질문은 : 각 반복에서 변수 값에 어떻게 액세스합니까?

+0

관련 코드의 일부 또는 이미 시도한 것을 추가하여이 게시물의 품질을 향상시킬 수 있습니다. –

+0

나는 당신이 정말로 당신의 제약 속에 그것을 필요로하는지 의심 스럽다. 어쨌든 최적 해에 수렴하면'x (k) = x (k-1)'이라고 가정 할 수 있습니다. 여기서'k'는 반복 수입니다. –

답변

1

최적화 옵션에서 정의 할 수있는 선택적 출력 함수 'OutputFcn'을 사용해보십시오. 이 기능은 각 반복 후라고하며 최적화 벡터

옵션 = optimset의 현재 값 ('OutputFcn', @CustomOutputFcn)

function stop = CustomOutputFcn(x,optimValues,state) 
stop = false; 
% Store x to previously defined global variable XPreviousStep 
global XPreviousStep 
XPreviousStep = x; 
end 

지금 당신은 당신의 제약 기능에 XPreviousStep에 액세스 할 수 있습니다 전달됩니다. 전역 변수가 마음에 들지 않으면 guidata를 활용할 수 있습니다.

관련 문제