MATLAB与线性代数--矩阵的秩
预备知识
如果一个向量线性独立于另外一些向量组,那意味着这一向量不能写成它们的线性组合,简单例子如下:
>> u = [1;-1];
>> v = [3;-4];
>> w = [5,-6];
研究这些向量,我们可以看出:
2u + v = w
因此w
线性相关于u
和v
,此时w
可以写成u
和v
的线性组合。另一例子:
u = [2;0;0];
v = [;-1;0];
w = [0;0;7];
就构成线性独立组,这是因为这些向量中没有一个可以写成另外两个的线性组合。
再看矩阵:
A =0 1 0 20 2 0 4
很明显,矩阵的第二行是第一行的两倍。因此只有一行是独立的,矩阵的秩为1。
>> rank(A)
ans =1
再看一个例子:
B =1 2 33 0 9-1 2 -3
第三列数第一列的三倍,因此,这两列线性相关,另外两列线性独立,到此我们得知有两个显现独立列
>> rank(B)
ans =2
升华
现在我们来看一下带有n
个未知量的m
个线性方程组:
Ax = b
把b
连结在A
上构成增广矩阵:
[A b]
解的情况:
- 无解:
rank(A)
不等于rank(A b)
时方程无解 - 有解:当且仅当
rank(A) = rank(A b)
时方程有解。
-
如果矩阵的秩r等于方程未知数的个数,那么方程有唯一解。
-
如果秩
r
小于n
,那么方程有无数解。
接下来一个例子我们来解方程组:
假设有一个方程组
矩阵的系数是:
我们还有:
因此增广矩阵是:
第一步在MATLAB
输入这些矩阵:
>> A = [1 -2 1;3 4 5; -2 1 7];
>> b = [12;20;11];
接着我们创建增广矩阵:
>> C = [A b];
现在我们看一下A
的秩:
>> rank(A)
ans =3
C
的秩:
>> rank(C)
ans =3
由于秩相同,因此解存在,这里有三个未知量,r = 3
,所以有唯一解,我们用左除求解:
>> x = A\b
x =4.3958-2.22923.1458
发布评论