Matlab - fmincon con restricción no lineal y parámetros

 
Vista:

fmincon con restricción no lineal y parámetros

Publicado por javiera dlc (4 intervenciones) el 09/08/2017 15:58:58
Hola, tengo un problema de optimización donde uso fmincon que tiene restricciones no lineales y parámetros. Además es una iteración de varios periodos. Mi problema está en que la función objetivo tiene un vector de variables q, pero en las restricciones no lineales hay otra variable w. Entonces, tengo que obtener un vector con las variables q y w, pero, lo tengo escrito todo como matriz, entonces no se como decirle a fmincon que tiene que optimizar las variables q y además la variable w.

Esta es mi función objetivo:
1
2
3
4
function I= objfunmalo(q,E,D,fc,vpasaj,alpha,rw2,v)
R = (E.*q - (D.*q.^2)./2 - q.*(fc - vpasaj + (exp(alpha*sum(q,2)./rw2))*v));
I=-sum(R,2);
end

Esta son mis restricciones:
1
2
3
4
5
6
function [c,ceq] = mycon(q3aux,E,D,D11,fc,vpasaj,lf2,alpha,rw2,v,v111)
q=q3aux(1:24);
w=q3aux(25);
c=[];
ceq = E - D.*q - D11.*q - fc + vpasaj - lf2 - (exp(alpha*sum(q,2)./rw2))*v - ((exp(alpha*sum(q,2)./rw2))*alpha./rw2)*(q.*v111) - w;
end

Este es el main:
1
2
3
4
5
6
7
8
9
10
11
12
13
options.MaxIter = 10000;
options.MaxFunEvals = 100000;
Qpu = [];
for ii=1:8760;
    for i=50
    q0= ones(1,25);
    lb= zeros(1,25);
    q=q3aux(1:24);
    w=q3aux(25);
    [q33,fval] = fmincon(@(q)objfunmalo(q,E(ii,:),D(ii,:),fc(ii,:),vpasaj(ii,:),alpha,rw2,v),q0,[],[],[],[],lb,[],@(q3aux)mycon(q3aux,E(ii,:),D(ii,:),D11(ii,:),fc(ii,:),vpasaj(ii,:),lf2(ii,:),alpha,rw2,v,v111(ii,:)),options);
    Qpu = [Qpu;q33];
    end
end

No se como poner que me optimice el q y el w, dado que los q son 24 diferentes por periodo ii y el w es el mismo para las 24 ecuaciones de cada periodo, pero cambia por los periodos ii.
Además me aparece ''Index exceeds matrix dimensions''.

Gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JESUS DAVID ARIZA ROYETH
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

fmincon con restricción no lineal y parámetros

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 09/08/2017 17:34:54
te recomiendo plantear la función objetivo en términos de error cuadrático medio donde puedas asignarle una preponderancia a cada función que quieres optimizar

con los códigos que colocas ahí hay variables que no están definididas como q3aux, E , etc
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

fmincon con restricción no lineal y parámetros

Publicado por javiera dlc (4 intervenciones) el 09/08/2017 22:31:03
Es que todas las variables que aparecen son parámetros ya definidos. Los que quiero encontrar son los q, que es un vector de (8760,24 ) y el w que es de (8760,1).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar