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)); |