[线性代数]-5 转置-转换-向量空间R


《线性代数》学习笔记

本节再谈置换矩阵与转置矩阵,并介绍对称阵。之后便进入学习线代的关键所在:向量空间与子空间

1. 置换矩阵

1.1 置换矩阵回顾

所谓的置换矩阵 P,就是用来完成行交换的矩阵,更具体来讲,是行重新排列的单位矩阵。例如就是一个置换矩阵,只不过 对矩阵没影响。那么对于 n 阶矩阵来说,有多少个置换矩阵呢?答案是:n! 种,也就是将单位矩阵各行重新排列后所有可能的情况数量。

置换矩阵另一个优点就是可逆,因为置换矩阵各行还原后可以得到单位矩阵。而且对于置换矩阵 P,有𝑃𝑃𝑇= 𝐼 , 即𝑃−1= 𝑃𝑇P是置换矩阵,所以 P 的每个列向量中只有一个分量是 1,其余分量均为 0。而既然要求P·P−1= I,那就说明 P 中每一行的行向量与p−1中每一列的列向量的数量积为 1,意味着 P 中每一行的行向量与𝑃−1中每一列的列向量中分量 1 出现位置相同,沿对角线对称,所以𝑷−𝟏= 𝑷𝑻

\[
\begin{bmatrix}
0 & 0 & \textcolor{red}{1} & \cdots & \cdots \\
\cdots & \cdots & \cdots & \cdots & \cdots \\
\cdots & \cdots & \cdots & \cdots & \cdots \\
\end{bmatrix}
\begin{bmatrix}
0 & \cdots & \cdots \\
0 & \cdots & \cdots \\
\textcolor{red}{1} & \cdots & \cdots \\
\cdots & \cdots & \cdots \\
\cdots & \cdots & \cdots \\
\end{bmatrix}
=
\begin{bmatrix}
\textcolor{red}{1} & \cdots & \cdots \\
\cdots & \cdots & \cdots \\
\cdots & \cdots & \cdots \\
\end{bmatrix}
\]

1.2 置换矩阵使用

在讲消元法的时候,主元位置为 0是一件很让人头疼的事情,这时就需要置换矩阵P来完成行交换,确保消元过程顺利进行。上节课学习A = LU分解时,没有考虑要交换行的过程,如果想写出更普适的LU 分解式的话,必须把行交换情况考虑进去,即:PA = LU;先用行交换使得主元位置不为 0,行顺序正确。其后再用 LU分解。

2. 转置矩阵

2.1 转置矩阵回顾

$$  \begin{equation} A = \begin{bmatrix} 1 & 3 \\ 2 & 3 \\ 4 & 1 \\ \end{bmatrix} \quad A^T = \begin{bmatrix} 1 & 2 & 4 \\ 3 & 3 & 1 \\ \end{bmatrix} \end{equation}  $$

用符号来表示就是对 A 矩阵以及𝐴𝑇 矩阵中每一个元素,都有:(𝐴𝑇)𝑖𝑗 = A𝑗𝑖

2.2 对称矩阵

例如:\begin{bmatrix} 3 & 1 & 7\\ 1 & 2 & 9\\ 7 & 9 & 4 \\ \end{bmatrix} 

对称矩阵,就是主对角线两侧元素对应相等的矩阵。或者说,对矩阵A,如果有:A𝑇 = A ;那么矩阵 A就是一个对称矩阵。

如何得到对称矩阵呢?很简单,矩阵 A 与A𝑇相乘得到的方阵一定是对称矩阵,因为我们从对称矩阵的定义来看,取(𝐴𝑇𝐴)𝑇,根据转置的运算规律,可知,(AB)𝑇= 𝐵𝑇𝐴𝑇,所以有:


(𝐴𝑇𝐴)𝑇= 𝐴𝑇𝐴𝑇𝑇= 𝐴𝑇𝐴

所以任何的𝐴𝑇𝐴,转置仍然是其本身,故为对称矩阵


3. 向量空间与子空间

3.1 向量空间

首先明确“向量空间”的概念,它表示一整个空间的向量,但是要注意,不是任意向量的集合都能被称为向量空间。所谓的向量空间,必须满足一定规则,该空间对线性运算(相加,数乘)封闭。类似:v → 3v或 v,w → v+w运算,若得到的3v或者 v+w都仍然在此空间中,那么这个空间可称为向量空间

举个例子,𝑅2就是一个向量空间。其中的向量均为二维实向量。在𝑅2上就存线性组合:[3 2],[0 0],[𝜋 𝑒]均在𝑅2的实数二维向量空间中,对它们做线性运算,可以采用python绘制这个示意图:

import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots(figsize=(16,9))
vector1 = np.array([3, 2])
vector2 = np.array([np.pi, np.e])

ax.quiver(0, 0, vector1[0], vector1[1], angles='xy', 
            scale_units='xy', scale=1, color='orange', label='(3,2)')
ax.quiver(0, 0, vector2[0], vector2[1], angles='xy', 
            scale_units='xy', scale=1, color='blue', label='(π,e)')
ax.set_xlim(0, 4)
ax.set_ylim(0, 4)
ax.text(vector1[0], vector1[1], '(3,2)', fontsize=16, ha='right')
ax.text(vector2[0], vector2[1], '(π,e)', fontsize=16, ha='left')
ax.text(0, 0, '(0,0)', fontsize=16, ha='right')
ax.grid(True)
plt.show()

很明显,𝑅2的向量空间可以构成一个平面,即是上图中的 xoy面。这个向量空间存在的关键在于上图中平面上任何向量都在𝑅2向量空间中。尤其是零向量。因为线性运算是“数乘”“相加”。任何向量乘上 0或者加上其反向向量后得到的都是零向量,所以它必然存在于所有向量空间中。

同样,推广到𝑅3空间,𝑅3中是三维的向量,每个分量均为实数。例如[3 2 0],这样的向量就在𝑅3空间中。再进行推广,𝑅𝑛空间中包括所有的n维向量,每个列向量有n个分量,且分量均为实数。再举一个不是向量空间的例子:还是𝑅2空间中,但是这次我们只取第一象限内的区域D:

很明显,这部分空间无法满足“线性组合仍在空间中”的要求,比如数乘运算时,随便取个负数,向量就跑到第三象限去,脱离 D空间范围内了。



3.2 子空间

上面的反例已经证明了。在向量空间里随便取其一部分,很可能得到的不是向量空间。那如果我们取向量空间的一部分,将其打乱,构成的有没有可能是向量空间呢?

答案是有的,这样还能构成向量空间的部分我们称之为子空间。还是以𝑅2为例:

如图, 整个坐标平面表示的就是原向量空间𝑅2,而这条穿过坐标原点的直线就是𝑅2的子空间之一。检验一下这条直线上的任意向量,它们的“数乘”,“相加”运算结果全部都仍在这条直线上。这就构成了一个子空间。而如果这条直线不过原点,那就单说零向量都不在这个空间中,就更别谈什么子空间了。

那𝑅2空间中,还有没有其他的子空间呢?既然我们这么强调零向量,那就让它单独成一个空间好了。记为 Z,其中只有一个零向量。它也是𝑅2的子空间之一。再稍稍推广一下,𝑅3的子空间就是如下三个:穿过原点的平面、穿过原点的直线、Z。


3.3 列空间简要介绍

上面介绍的子空间都是基于已知的图像来寻找的,接下来我们来通过具体的矩阵来构造出一个子空间,比如:列向量构造出的列空间。

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

A = np.array([[1, 3],
              [2, 3],
              [4, 1]])
col1 = A[:, 0]
col2 = A[:, 1]
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
coeff = np.linspace(-10, 10, 400)

x_vals = []
y_vals = []
z_vals = []
for c1 in coeff:
    for c2 in coeff:
        point = c1 * col1 + c2 * col2
        x_vals.append(point[0])
        y_vals.append(point[1])
        z_vals.append(point[2])
ax.scatter(x_vals, y_vals, z_vals, c='b', marker='.')
ax.quiver(0, 0, 0, col1[0], col1[1], col1[2], color='r')
ax.quiver(0, 0, 0, col2[0], col2[1], col2[2], color='g')
ax.legend()
plt.show()

两个向量 [1  2  4]与[3  3  1]以及它们的所有线性组合都在这个二维平面上,构成一个空间。这部分要好好理解,用教授的话说“𝑅3情况下还可以作图,但是更高维的类似于𝑅10情况怎么办?譬如求𝑅10空间中 5 个向量线性组合是什么样的?如果不共线,我们就可以类似地理解为一个十维空间中的五维平面之类的东西。”

这里还要注意列向量之间的性质,如果列向量之间就是共线的,那么其列空间就是一条过原点的直线。



这节算是结束了之前部分对基本运算和基本概念的介绍。介绍了向量空间和子空间,并由子空间引出了通过具体的列向量构成的空间—列空间。如何理解空间十分重要,本节中对低维的空间做了图,目的主要是便于我们理解“空间”这一概念。

2024-07-25






声明:ZY|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - [线性代数]-5 转置-转换-向量空间R