📄 solveequalities.m
字号:
function [x_equ,H,A_equ,b_equ] = solveequalities(F_struc,K,unitary)
%SOLVEEQUALITIES Internal function remove equality constraints
% Author Johan L鰂berg
% $Id: solveequalities.m,v 1.4 2005/07/20 08:31:20 joloef Exp $
% Extract the inequalities
A_equ = F_struc(1:K.f,2:end);
b_equ = -F_struc(1:K.f,1);
if nargin<3
unitary = 1;
end
if ~unitary
% Just use a crappy basis derived from A
[L,U,P] = lu(A_equ');
n = max(find(diag(U)));
[i,j] = find(P');
H1 = A_equ(:,i(1:n));
H2 = A_equ(:,i(n+1:end));
x_equ = P'*(L'\(U'\b_equ));
% FIX : use L and U stupid!
H = P'*[-H1\H2;eye(size(H2,2))];
else
% Use unitary basis
try
[Q,R] = qr(full(A_equ)');
catch
[Q,R] = qr(A_equ'); % Ouch, that big!
end
n = max(find(sum(abs(R),2)));
Q1 = Q(:,1:n);
R = R(1:n,:);
x_equ = Q1*(R'\b_equ);
H = Q(:,n+1:end); % New basis
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -