用matlab求秩亏方程组的表达式。
遇到一个方程组,他是秩亏。其表达式为Ax =B
x=[x1;x2;x3]
A = [1.36419563441007e+26,5.07811017101278e+24,-3.49869696967776e+25;5.31920810825436e+26,1.98003307699639e+25,-1.36419563441007e+26;1.98003307699639e+25,7.37051626146367e+23,-5.07811017101278e+24]
B = [-2.65345594209685e+20;-1.03462318791255e+21;-3.85130284922544e+19]
A是秩亏的。现在不想用lsqminnorm()求方程组的数值解,想得到方程组化简后的表达式,比如因为A的秩为1,最终想得到一个关于x1,x2,x3间关系的表达式。(比如最终化简后为ax1+bx2+cx3=d)
矩阵[A,b]秩为1表示A*x=b中的三个方程只有一个是独立的,因此任选一行的方程就可以构成ax1+bx2+cx3=d的形式。
代码:
A = [1.36419563441007e+26,5.07811017101278e+24,-3.49869696967776e+25;5.31920810825436e+26,1.98003307699639e+25,-1.36419563441007e+26;1.98003307699639e+25,7.37051626146367e+23,-5.07811017101278e+24]
B = [-2.65345594209685e+20;-1.03462318791255e+21;-3.85130284922544e+19];
r = rank([A,B])
a = A(1,:)/A(1,1)
b = B(1)/A(1,1)
结果:
r =
1
a =
1.0000 0.0372 -0.2565
b =
-1.9451e-06
方程为
x1 + 0.0372*x2 -0.2565*x3 = -1.9451e-06
十分感谢,那么如果矩阵[A,b]秩为2该怎么办呢,如何找到有无穷多个解的两个参数的表达式呢。