Dattorro Convex Optimization of Eternity II

From Wikimization

(Difference between revisions)
Jump to: navigation, search
(Undo revision 862 by Dattorro (Talk))
Line 1: Line 1:
-
 
+
<pre>
 +
%%% Theorem of the Alternative.
 +
clear all
 +
clc
 +
load E_small
 +
%load E_full
 +
[m n] = size(E);
 +
found=[];
 +
cvx_quiet('true')
 +
for i=1:n
 +
inconclusive = true;
 +
cvx_begin
 +
variable a(n+1,1);
 +
a(1:n) >= 0;
 +
-E(:,i) == [E t]*a;
 +
cvx_end
 +
if strcmp(cvx_status,'Solved') || strcmp(cvx_status,'Solved/Inaccurate')
 +
problem_solved = 1;
 +
inconclusive = false;
 +
else
 +
cvx_begin
 +
variable z(m,1);
 +
t'*z == 0;
 +
E(:,i)'*z == 1;
 +
E'*z >= 0;
 +
cvx_end
 +
if strcmp(cvx_status,'Solved') || strcmp(cvx_status,'Solved/Inaccurate')
 +
problem_solved = 2;
 +
inconclusive = false;
 +
end
 +
end
 +
fprintf('%6d/%6d',i,n);
 +
if inconclusive, fprintf(' numeric failure\n'), else fprintf(' problem %d solved\n',problem_solved), end
 +
end
 +
</pre>

Revision as of 20:22, 19 March 2009

%%% Theorem of the Alternative.
clear all
clc
load E_small         
%load E_full          
[m n] = size(E);
found=[];
cvx_quiet('true')
for i=1:n
    inconclusive = true;
    cvx_begin
       variable a(n+1,1);
       a(1:n) >= 0;
       -E(:,i) == [E t]*a;
    cvx_end   
    if strcmp(cvx_status,'Solved') || strcmp(cvx_status,'Solved/Inaccurate')  
        problem_solved = 1;
        inconclusive = false;
    else   
        cvx_begin
           variable z(m,1);
           t'*z == 0;
           E(:,i)'*z == 1;
           E'*z >= 0;
        cvx_end
        if strcmp(cvx_status,'Solved') || strcmp(cvx_status,'Solved/Inaccurate')  
            problem_solved = 2;
            inconclusive = false;
        end
    end
    fprintf('%6d/%6d',i,n);
    if inconclusive, fprintf('   numeric   failure\n'), else fprintf('   problem %d solved\n',problem_solved), end
end
Personal tools