Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- k = 0
- tinit = 1.0
- y = 1.5
- e = 0.1
- A = [0.4873 -0.8732;
- 0.6072 0.7946;
- 0.9880 -0.1546;
- -0.2142 -0.9768;
- -0.9871 -0.1601;
- 0.9124 0.4093]
- b = [1;
- 1;
- 1;
- 1;
- 1;
- 1]
- c = [1;
- -1]
- x0 = [0, 0]
- V = [0.1562 0.9127 1.0338 0.8086 -1.3895 -0.8782;
- -1.0580 -0.6358 0.1386 0.6406 2.3203 -0.8311]
- [m, n] = size(A)
- t = tinit
- %t*c'*x - sum(log(b-A*x))
- %t*c + (A')*(1./(b-A*x))
- %((diag(1./(b-A*x))*A)')*(diag(1./(b-A*x))*A)
- %cvx_begin
- %cT = c'
- %variable x(n)
- %minimize cT*x
- %subject to
- % A*x <= b
- %cvx_end
- xk = x0
- %temp = xk
- cT = c'
- while m/t >= e
- k
- cvx_begin
- variable x(n)
- minimize t*cT*x - sum(log(b-A*x))
- cvx_end
- %temp = xk
- xk = [xk;x']
- %xk = temp
- k = k + 1
- t = y*t
- end
- m/t
- xk
- t*cT*xk(2) - sum(log(b-A*xk(2)))
- %function [f,g,H] = objective_barrier(t,x,A,b,c);
- %[m,n] = size(A);
- %d = A*x - b; D = diag(1./d);
- %f = t*c’*x - log(-d’)*ones(m,1);
- %g = t*c - A’*D*ones(m,1);
- %H = A’*D^2*A;
- figure(1)
- %set(gcf,'position',[10,10,560,540])
- %fill(V(1,:), V(2,:), 'r')
- %grid on
- %axis([-2.5 2 -1.5 3])
- %xticks(-2.5:0.5:2)
- %yticks(-1.5:0.5:3)
- %axis equal
- x1 = -2.5:0.01:2.0
- x2 = -1.5:0.01:3.0
- [X1,X2] = meshgrid(x1,x2);
- Z = arrayfun(@fbar,X1,X2)
- v = [-0.6,0.12,0.24]
- contour(X1,X2,Z,v)
- function y = fbar(x1,x2)
- A = [0.4873 -0.8732;
- 0.6072 0.7946;
- 0.9880 -0.1546;
- -0.2142 -0.9768;
- -0.9871 -0.1601;
- 0.9124 0.4093];
- b = [1;
- 1;
- 1;
- 1;
- 1;
- 1];
- if sum(b-A*[x1;x2]<0) == 0
- y = -sum(log(b-A*[x1;x2]));
- else
- y = NaN;
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement