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