MATLAB与线性代数--矩阵的秩

预备知识

如果一个向量线性独立于另外一些向量组,那意味着这一向量不能写成它们的线性组合,简单例子如下:

>> u = [1;-1];
>> v = [3;-4];
>> w = [5,-6];

研究这些向量,我们可以看出:

 2u + v = w

因此w线性相关于uv,此时w可以写成uv的线性组合。另一例子:

u = [2;0;0];
v = [;-1;0];
w = [0;0;7];

就构成线性独立组,这是因为这些向量中没有一个可以写成另外两个的线性组合。
再看矩阵:

A =
     0     1     0     2
     0     2     0     4

很明显,矩阵的第二行是第一行的两倍。因此只有一行是独立的,矩阵的秩为1。

>> rank(A)
ans =
     1

再看一个例子:

B =
     1     2     3
     3     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)时方程有解。
  1. 如果矩阵的秩r等于方程未知数的个数,那么方程有唯一解。

  2. 如果秩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.2292
    3.1458
发布了84 篇原创文章 · 获赞 18 · 访问量 5805

猜你喜欢

转载自blog.csdn.net/qq_44486550/article/details/105080486