createOptimProblem
Publicado por Milena (30 intervenciones) el 04/06/2020 00:59:11
Buenas tardes, necesito resolver la siguiente función:
por el algoritmo de Rosenbrock, y lo he usado antes y me funciona bien, pero con esta función no... Tengo lo siguiente:
Tengo las condiciones que el 1er valor debe ser mayor que 1, y el segundo y tercero mayor que cero
Y la función es:
Pero me da el siguiente error:
Error using sqpInterface
Objective function is undefined at initial point. Fmincon cannot continue.
Error in fmincon (line 833)
[X,FVAL,EXITFLAG,OUTPUT,LAMBDA,GRAD,HESSIAN] = sqpInterface(funfcn,X,full(A),full(B),full(Aeq),full(Beq), ...
Error in globalsearchnlp
Error in GlobalSearch/run (line 337)
globalsearchnlp(FUN,X0,A,B,Aeq,Beq,LB,UB,NONLCON,options,localOptions);
Error in Distri_Bivariadas (line 75)
[x,fval,exitflag,output,solutions]=run(gs,problema_MG);
Caused by:
Failure in initial call to fmincon with user-supplied problem structure.
Saben que pueda ser? Les agradezco mucho
por el algoritmo de Rosenbrock, y lo he usado antes y me funciona bien, pero con esta función no... Tengo lo siguiente:
1
2
3
4
5
datos1=[840;702;1510;646;1674;622;457;710;1191;553;4600;400;568;422;1830;792];
datos2=[1344;510;444;821;1276;2855;652;614;631;937;6399;799;765;503;3527;640];
Valores_Iniciales=[ 2 809.128866958163 1238.44626909083 628.007384447214 705.324267832213];
Tolerancia=1e-6;
Opciones=optimoptions(@fmincon,'Algorithm','sqp','MaxIterations',10000000,'StepTolerance',Tolerancia,'Display','off');
Tengo las condiciones que el 1er valor debe ser mayor que 1, y el segundo y tercero mayor que cero
1
2
3
4
5
6
7
8
9
10
11
12
13
Matriz_A=[-1 0 0 0 0;...
0 -1 0 0 0;...
0 0 -1 0 0];
Matriz_B=[-1;-0.01;-0.01];
Funcion=@(x)funcion(x(1),x(2),x(3),x(4),x(5),n_periodos,datos1,datos2);
problema=createOptimProblem('fmincon','objective',Funcion,'x0',Valores_Iniciales,...
'Aineq',Matriz_A,'bineq',Matriz_B,'options',Opciones);
gs=GlobalSearch; % Solución global
[x,fval,exitflag,output,solutions]=run(gs,problema);
parametros=solutions(1,1).X;
Y la función es:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function L = funcion(m , a1, a2, m1, m2, n, x, y)
L = 0;
for i_cic = 1:length(x)
C1=-((x(i_cic)-m1)/a1);
C2=m*C1;
C3=exp(C2);
D1=-((y(i_cic)-m2)/a2);
D2=m*D1;
D3=exp(D2);
E1=C3+D3;
E2=E1^(1/m);
E3=E1^((1/m)-2);
Operacion(i_cic)=C2+D2+log(E3)+log(m-1+E2)+E2;
end
L = L - log(-n*(log(a1)+log(a2))+sum(Operacion));
Pero me da el siguiente error:
Error using sqpInterface
Objective function is undefined at initial point. Fmincon cannot continue.
Error in fmincon (line 833)
[X,FVAL,EXITFLAG,OUTPUT,LAMBDA,GRAD,HESSIAN] = sqpInterface(funfcn,X,full(A),full(B),full(Aeq),full(Beq), ...
Error in globalsearchnlp
Error in GlobalSearch/run (line 337)
globalsearchnlp(FUN,X0,A,B,Aeq,Beq,LB,UB,NONLCON,options,localOptions);
Error in Distri_Bivariadas (line 75)
[x,fval,exitflag,output,solutions]=run(gs,problema_MG);
Caused by:
Failure in initial call to fmincon with user-supplied problem structure.
Saben que pueda ser? Les agradezco mucho
Valora esta pregunta
0