16 lines
		
	
	
		
			305 B
		
	
	
	
		
			Matlab
		
	
	
		
		
			
		
	
	
			16 lines
		
	
	
		
			305 B
		
	
	
	
		
			Matlab
		
	
	
|  | function [delta lambda] = solveCQP(B, A, At, g, h)
 | ||
|  | 
 | ||
|  | n = size(B,1); | ||
|  | p = size(A,2); | ||
|  | 
 | ||
|  | % form the KKT matrix system | ||
|  | G = [B A; At zeros(p,p)]; | ||
|  | rhs = -[g; h]; | ||
|  | 
 | ||
|  | % solve with LDL | ||
|  | [L D] = ldl(G); | ||
|  | approx_error = norm(G - L*D*L'); %% verify error | ||
|  | sol = L'\(D\(L\rhs)); | ||
|  | 
 | ||
|  | delta = sol(1:n); | ||
|  | lambda = sol(n+1:size(sol)); |