类似A=【1 2 3;4 5 6;7 8 9;】,X=【d1;d2;1;】,B=【1;2;d3】。不要用solve,几千个未知量不现实。
这个很容易的,把矩阵分块就行
AX = B变成
A = [A11, A12; A21, A22];
X = [X1; X2];
B = [B1; B2];
按照题主的意思,X1和B2作为未知量,有
A11 * X1 + A12 * X2 = B1 (1)
A21 * X1 + A22 * X2 = B2 (2)
先可以由(1)得到X1:
X1 = A11 \ ( B1 - A12 * X2);
然后由(2)求B2
B2 = A21 * X1 + A22 * X2;
例子就按题主的来吧,我把A改成正定的!
A = [3,1,1; 0,3,1; 1,1,4];
A11 = A(1:2, 1:2);
A12 = A(1:2, 3:end);
A21 = A(3:end, 1:2);
A22 = A(3:end, 3:end);
X2 = [1];
B1 = [1;2];
% 要求的未知量
X1 = A11 \ ( B1 - A12*X2)
B2 = A21*X1 + A22*X2
最后得到结果为
X1 =
-0.111111111111111
0.333333333333333
B2 =
4.222222222222222