主变量与特解
例子
A
=
[
1
2
2
2
2
4
6
8
3
6
8
10
]
A= \left[ \begin{matrix} 1 & 2 & 2&2 \\ 2 & 4 & 6&8 \\ 3 & 6 & 8&10 \end{matrix} \right]
A=⎣⎡1232462682810⎦⎤
我们发现
- 行并不是独立的
- 列也不是独立的
执行消元:
B
=
[
1
2
2
2
0
0
2
4
0
0
2
4
]
B= \left[ \begin{matrix} 1 & 2 & 2&2 \\ 0 & 0 & 2&4 \\ 0 & 0 & 2&4 \end{matrix} \right]
B=⎣⎡100200222244⎦⎤
这时我们发现第二行第二列元素是零,同时第三列也是,行变换并不能是我们找到非零的 pivot,于是我们忽略这个点,向后寻找:
U
=
[
1
2
2
2
0
0
2
4
0
0
0
0
]
U= \left[ \begin{matrix} 1 & 2 & 2&2 \\ 0 & 0 & 2&4 \\ 0 & 0 & 0&0 \end{matrix} \right]
U=⎣⎡100200220240⎦⎤
这时我们就找到了我们的U矩阵(Uper something
秩(rank)
在上面,我们在消元中只发现了两个pivot,于是,我们就说这个矩阵A的秩是
2
2
2
同时,我们给U中含有
p
i
v
o
t
pivot
pivot 的列 一个 新的名字
"
p
i
v
o
t
c
o
l
u
m
n
"
"pivot column"
"pivotcolumn",其他没有
p
i
v
o
t
pivot
pivot 的列 叫做
"
f
r
e
e
c
o
l
u
m
n
"
"free column"
"freecolumn" ,而我们在消元求解的时候,采取这样的步骤:
- 给 f r e e c o l u m n free column freecolumn 所对应的x,一个赋值为1,其他赋值为0(其实是可以随便赋值的,只是这样方便找到所有的解空间)
- 使用剩下的方程和解 解出剩下的 x
- 重复1,2步骤直至所有 f r e e c o l u m n free column freecolumn都取过一次一为止
- 把所有求出的解作线性组合
在上面那个特别的例子中,我们可以分别求出两个特解(特解就是 每次使用一个为1,其他全0的
"
f
r
e
e
c
o
l
u
m
n
"
"free column"
"freecolumn"求出的解)为:
x
1
=
[
−
2
1
0
0
]
x_1= \left[ \begin{matrix} -2\\1\\0\\0 \end{matrix} \right]
x1=⎣⎢⎢⎡−2100⎦⎥⎥⎤
和
x
2
=
[
2
0
−
2
1
]
x_2= \left[ \begin{matrix} 2\\0\\-2\\1 \end{matrix} \right]
x2=⎣⎢⎢⎡20−21⎦⎥⎥⎤
有了这两个特解,我们取他们的线性组合,即为最终要求的零向量:
x
=
c
x
1
+
d
x
2
x= cx_1 + dx_2
x=cx1+dx2
结论:
- 对于一个 m × n m×n m×n 秩为 r r r 的矩阵来说,一共有 n − r n - r n−r 个free变量
R矩阵
matlab中有一个更简单的命令叫做
r
r
e
f
rref
rref,我们来看一看R是干什么 的
还是从一个例子入手
这是我们取A的转置作为初始矩阵
这时候做一个行变换,把二、三行互换,我们得到下面的样子
这时候就得到了传说中的
U
矩
阵
U矩阵
U矩阵,但是这时候,我们还能布恩那个再修剪一下呢, 当然是可以的
我们把pivot 都变成1, 然后给 free column取 1
这样我们就得到了 R矩阵
这时候我们可以看到 R是由 I 和 F
组成的