그래서 다음 코드를 사용하여 내 함수를 최적화 :MATLAB에서 fmincon를 실행하는 문제
function [fval, z, Z, x] = fCarterFunction
%Searches parameter space for the best values given the model and LSE
A = [];
b = [];
Aeq = [];
beq =[];
options = optimset('Display','iter', 'Algorithm', 'interior-point');
options.MaxFunEvals = 100000;
options.MaxIter = 100000;
[pOPT, fval] = fmincon(@(p)fRSS(p),[.01 .01 .01],A, b, Aeq, beq, 0, 1, [], options);
z = pOPT(1);
Z = pOPT(2);
x = pOPT(3);
end
이 문제는 내 기능에이를 실행할 때 다음과 같은 반환한다는 것입니다 :
Warning: Length of lower bounds is < length(x); filling in missing lower bounds with - Inf.
> In checkbounds at 34
In fmincon at 332
In fCarterFunction at 12
In RunRSSfunc at 1
In run at 64
Warning: Length of upper bounds is < length(x); filling in missing upper bounds with +Inf.
> In checkbounds at 48
In fmincon at 332
In fCarterFunction at 12
In RunRSSfunc at 1
In run at 64
내가 이해할 수없는 것은 이전 데이터 집합에 대해이 문제를 실행했지만 아무런 문제가 없다는 것입니다. 자, matlab은 내 상한과 하한을 대체하고 있습니다. 누구든지이 문제를 해결하는 방법을 알고 있습니까? 실제로 데이터를 반복하는 다른 함수를보고 최소 사각 기법을 통해 시뮬레이션을 실제와 비교하는 경우 알려 주시기 바랍니다. 감사! @grantnz는 시도를 지적 하듯이
제한하려는 값에 따라 [0 -Inf -Inf], [1 Inf Inf] 또는 [0 0 0], [1 1 1] 중 하나 여야합니다. – grantnz
당신이 경고를 보지 못했을 때 더 많은 정보 (코드)를 볼 수있어서 재미있다 –
코드는 정확히 동일했다. 나는 데이터 세트를 바꾸기 만했다. – cwdaniels