
附带测试matlab代码
A = [0.8 0.25 0.18 0.1; 0.1 0.7 0.12 0.4; 0.1 0.05 0.7 0.2];
beta = [0.68 0.40 0.80 0.5; 0.15 0.34 0.35 0.4; 0.45 0.70 0.30 0.5; 1 1 1 1];
y = A*beta;
% For convenience, I use the same y as input.
%---------------------Method One-------------------
AThreeInverse = inv(A(:,1:3));
tmp = -A(:,4);
AInverse1 = [AThreeInverse,tmp];
yTmp = [y; 1 1 1 1];
final1 = AInverse1*yTmp;
errors = final1 - beta(1:3,:);
disp(errors);
%-------------------Method Two---------------------
% This method seems bullshit.
AInverse2 = pinv(A);
final2 = AInverse2*y;
errors = final2(1:3,:) - beta(1:3,:);
disp(errors);
这个问题的简化版本就是,已知A和y2,求beta2. 其中beta2也是4x4的方阵,且最后一行为1.