An error message using fmincon
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
ektor
am 25 Mai 2019
Kommentiert: ektor
am 26 Mai 2019
Dear all,
I minimize this function.
g=randn(1000,1);
u=randn(1000,1);
ff = @(x) sum( ( g(2:end)- x(1)- x(2)*(g(1:end-1)-x(1)) - u(2:end)*x(3) ).^2 );
xx = fmincon(ff,[0.1 0.2 0.3],[],[],[],[],[],[],@unitdisk3,options);
where
function [c,ceq] = unitdisk3(x)
c = [ x(2)-0.999; -x(2)-0.999 ;- x(3) +0.001 ];
ceq = [];
end
but I get this error message
Error using vertcat
Dimensions of arrays being concatenated are not consistent.
Error in unitdisk3 (line 2)
c = [ x(2)-0.999; -x(2)-0.999 ;- x(3) +0.001 ];
Error in fmincon (line 633)
[ctmp,ceqtmp] = feval(confcn{3},X,varargin{:});
Caused by:
Failure in initial nonlinear constraint function evaluation. FMINCON cannot
continue.
Any ideas why?
0 Kommentare
Akzeptierte Antwort
Sulaymon Eshkabilov
am 26 Mai 2019
Hi Ektor,
You have done a good work except for two small flaws, but crucial ones. Here are the corrected scripts:
function [c,ceq] = unitdisk3(x)
c = [ x(1)-0.999, -x(2)-0.999 , - x(3) +0.001 ];
ceq = [];
end
g=randn(1000,1);
u=randn(1000,1);
options = optimoptions('fmincon','Display','off', 'Algorithm', 'active-set');
ff = @(x) sum((g(2:end)- x(1)- x(2)*(g(1:end-1)-x(1)) - u(2:end)*x(3)).^2);
xx = fmincon(ff,[0.1 0.2 0.3],[],[],[],[],[],[],@unitdisk3,options);
Good luck.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Surrogate Optimization finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!