me gustaría resolver la siguiente ecuación de programación cuadrática utilizando la función IPOP de kernlab:Solución de programación cuadrática utilizando R
min 0.5*x'*H*x + f'*x
subject to: A*x <= b
Aeq*x = beq
LB <= x <= UB
donde en nuestra matriz 3x3 ejemplo H, f es 3x1, A es 2x3, b es 2x1 , LB y UB son ambos 3x1.
editar 1 Mi código R es:
library(kernlab)
H <- rbind(c(1,0,0),c(0,1,0),c(0,0,1))
f = rbind(0,0,0)
A = rbind(c(1,1,1), c(-1,-1,-1))
b = rbind(4.26, -1.73)
LB = rbind(0,0,0)
UB = rbind(100,100,100)
> ipop(f,H,A,b,LB,UB,0)
Error in crossprod(r, q) : non-conformable arguments
Sé por Matlab que es algo como esto:
H = eye(3);
f = [0,0,0];
nsamples=3;
eps = (sqrt(nsamples)-1)/sqrt(nsamples);
A=ones(1,nsamples);
A(2,:)=-ones(1,nsamples);
b=[nsamples*(eps+1); nsamples*(eps-1)];
Aeq = [];
beq = [];
LB = zeros(nsamples,1);
UB = ones(nsamples,1).*1000;
[beta,FVAL,EXITFLAG] = quadprog(H,f,A,b,Aeq,beq,LB,UB);
y la respuesta es un vector de 3x1 es igual a [0.57 , 0,57,0.57];
Sin embargo, cuando lo intento en R, utilizando la función de IPOP de kernlab biblioteca IPOP (f, H, A, B, LB, UB, 0)) y estoy frente Error en crossprod (r, q): argumentos no conformables
agradezco cualquier comentario
Por favor, publique el código R que utilizó, incluso donde define 'f',' H', 'A',' b', 'LB', y' UB'. – Max
¿No debería ser movido al foro R? –
@Max, he agregado algunos códigos R – user702846