Linprog optimisation with slack variable. How do I formulate the matices?
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Manie Conradie
el 7 de Jul. de 2015
Respondida: Torsten
el 8 de Jul. de 2015
I am trying to do a basic linear fitting optimisation, but am not getting the results that I am expecting. I have generated data for x and y - x=linspace(0,1,50) and y = 4x-1. And need to use a slack variable.
My optimisation problem then becomes
min(a,b,s) s subject to -s <= a*x(i)+b-y(i) <= s
The code I am using to try and get a = 4 and b= -1 is:
% a b s
f = [0 ;0 ;1];
A1 = [ J ones(N,1)];
A2 = [-J ones(N,1)];
A = [A1 ;A2];
b1 = y;
b2 = -y;
b = [b1 ;b2];
[a b s] = linprog(f,A,b);
J has been defined as [x ones(50,1)]
Can anybody help me please?
Thanks in advance.
0 comentarios
Respuesta aceptada
Torsten
el 8 de Jul. de 2015
A1 = [x,ones(N,1),-ones(N,1)];
A2 = [-x,-ones(N,1),-ones(N,1)];
A = [A1;A2];
b = [y;-y];
f = [0;0;1];
linprog(f,A,b)
Best wishes
Torsten.
4 comentarios
Más respuestas (1)
Torsten
el 8 de Jul. de 2015
l_1-norm:
The problem can be formulated as
min: sum_i s_i
|a*x(i)+b-y(i)| <= s_i
or equivalently
min: sum_i s_i
-s_i <= a*x(i)+b-y(i) <= s_i
l_infinity norm:
The problem can be formulated as
min: s
|a*x(i)+b-y(i)| <= s
or equivalently
min: s
-s <= a*x(i)+b-y(i) <= s
Best wishes
Torsten.
0 comentarios
Ver también
Categorías
Más información sobre Solver Outputs and Iterative Display en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!