文章目录
二十九、相似矩阵和若尔当形
在本讲的开始,先接着上一讲来继续说一说正定矩阵。
-
正定矩阵的逆矩阵有什么性质?我们将正定矩阵分解为 A = S Λ S − 1 A=S\Lambda S^{-1} A=SΛS−1,引入其逆矩阵 A − 1 = S Λ − 1 S − 1 A^{-1}=S\Lambda^{-1}S^{-1} A−1=SΛ−1S−1,我们知道正定矩阵的特征值均为正值,所以其逆矩阵的特征值也必为正值(即原矩阵特征值的倒数)所以,正定矩阵的逆矩阵也是正定的。
-
如果 A , B A,\ B A, B均为正定矩阵,那么 A + B A+B A+B呢?我们可以从判定 x T ( A + B ) x x^T(A+B)x xT(A+B)x入手,根据条件有 x T A x > 0 , x T B x > 0 x^TAx>0,\ x^TBx>0 xTAx>0, xTBx>0,将两式相加即得到 x T ( A + B ) x > 0 x^T(A+B)x>0 xT(A+B)x>0。所以正定矩阵之和也是正定矩阵。
-
再来看有 m × n m\times n m×n矩阵 A A A,则 A T A A^TA ATA具有什么性质?我们在投影部分经常使用 A T A A^TA ATA,这个运算会得到一个对称矩阵,这个形式的运算用数字打比方就像是一个平方,用向量打比方就像是向量的长度平方,而对于矩阵,有 A T A A^TA ATA正定:在式子两边分别乘向量及其转置得到 x T A T A x x^TA^TAx xTATAx,分组得到 ( A x ) T ( A x ) (Ax)^T(Ax) (Ax)T(Ax),相当于得到了向量 A x Ax Ax的长度平方,则 ∣ A x ∣ 2 ≥ 0 |Ax|^2\geq0 ∣Ax∣2≥0。要保证模不为零,则需要 A x Ax Ax的零空间中仅有零向量,即 A A A的各列线性无关( r a n k ( A ) = n rank(A)=n rank(A)=n)即可保证 ∣ A x ∣ 2 > 0 |Ax|^2>0 ∣Ax∣2>0, A T A A^TA ATA正定。
-
另外,在矩阵数值计算中,正定矩阵消元不需要进行“行交换”操作,也不必担心主元过小或为零,正定矩阵具有良好的计算性质。
接下来进入本讲的正题。
1.相似矩阵
一组相似矩阵表示的是同样的线性变换,就像是对一个人从不同的角度(即基不同)拍照,照片是不一样的,但实际上都是在拍用一个人
先列出定义:矩阵 A , B A,\ B A, B对于某矩阵 M M M满足 B = M − 1 A M B=M^{-1}AM B=M−1AM时,成 A , B A,\ B A, B互为相似矩阵。
对于在对角化一讲(第二十二讲)中学过的式子 S − 1 A S = Λ S^{-1}AS=\Lambda S−1AS=Λ,则有 A A A相似于 Λ \Lambda Λ。
-
举个例子, A = [ 2 1 1 2 ] A=\begin{bmatrix}2&1\\1&2\end{bmatrix} A=[2112],容易通过其特征值得到相应的对角矩阵 Λ = [ 3 0 0 1 ] \Lambda=\begin{bmatrix}3&0\\0&1\end{bmatrix} Λ=[3001],取 M = [ 1 4 0 1 ] M=\begin{bmatrix}1&4\\0&1\end{bmatrix} M=[1041],则 B = M − 1 A M = [ 1 − 4 0 1 ] [ 2 1 1 2 ] [ 1 4 0 1 ] = [ − 2 − 15 1 6 ] B=M^{-1}AM=\begin{bmatrix}1&-4\\0&1\end{bmatrix}\begin{bmatrix}2&1\\1&2\end{bmatrix}\begin{bmatrix}1&4\\0&1\end{bmatrix}=\begin{bmatrix}-2&-15\\1&6\end{bmatrix} B=M−1AM=[10−41][2112][1041]=[−21−156]。
我们来计算这几个矩阵的的特征值(利用迹与行列式的性质), λ Λ = 3 , 1 \lambda_{\Lambda}=3,\ 1 λΛ=3, 1、 λ A = 3 , 1 \lambda_A=3,\ 1 λA=3, 1、 λ B = 3 , 1 \lambda_B=3,\ 1 λB=3, 1。
所以,相似矩阵有相同的特征值。
- 继续上面的例子,特征值为 3 , 1 3,\ 1 3, 1的这一族矩阵都是相似矩阵,如 [ 3 7 0 1 ] \begin{bmatrix}3&7\\0&1\end{bmatrix} [3071]、 [ 1 7 0 3 ] \begin{bmatrix}1&7\\0&3\end{bmatrix} [1073],其中最特殊的就是 Λ \Lambda Λ。
现在我们来证明这个性质,有 A x = λ x , B = M − 1 A M Ax=\lambda x,\ B=M^{-1}AM Ax=λx, B=M−1AM,第一个式子化为 A M M − 1 x = λ x AMM^{-1}x=\lambda x AMM−1x=λx,接着两边同时左乘 M − 1 M^{-1} M−1得 M − 1 A M M − 1 x = λ M − 1 x M^{-1}AMM^{-1}x=\lambda M^{-1}x M−1AMM−1x=λM−1x,进行适当的分组得 ( M − 1 A M ) M − 1 x = λ M − 1 x \left(M^{-1}AM\right)M^{-1}x=\lambda M^{-1}x (M−1AM)M−1x=λM−1x即 B M − 1 x = λ M − 1 x BM^{-1}x=\lambda M^{-1}x BM−1x=λM−1x。
B M − 1 x = λ M − 1 x BM^{-1}x=\lambda M^{-1}x BM−1x=λM−1x可以解读成矩阵 B B B与向量 M − 1 x M^{-1}x M−1x之积等于 λ \lambda λ与向量 M − 1 x M^{-1}x M−1x之积,也就是 B B B的特征值仍为 λ \lambda λ,而特征向量变为 M − 1 x M^{-1}x M−1x。
以上就是我们得到的一族特征值为 3 , 1 3,\ 1 3, 1的矩阵,它们具有相同的特征值。接下来看特征值重复时的情形。
- 特征值重复可能会导致特征向量短缺,来看一个例子,设 λ 1 = λ 2 = 4 \lambda_1=\lambda_2=4 λ1=λ2=4,写出具有这种特征值的矩阵中的两个 [ 4 0 0 4 ] \begin{bmatrix}4&0\\0&4\end{bmatrix} [4004], [ 4 1 0 4 ] \begin{bmatrix}4&1\\0&4\end{bmatrix} [4014]。其实,具有这种特征值的矩阵可以分为两族,第一族仅有一个矩阵 [ 4 0 0 4 ] \begin{bmatrix}4&0\\0&4\end{bmatrix} [4004],它只与自己相似(因为 M − 1 [ 4 0 0 4 ] M = 4 M − 1 E M = 4 E = [ 4 0 0 4 ] M^{-1}\begin{bmatrix}4&0\\0&4\end{bmatrix}M=4M^{-1}EM=4E=\begin{bmatrix}4&0\\0&4\end{bmatrix} M−1[4004]M=4M−1EM=4E=[4004],所以无论 M M M如何取值该对角矩阵都只与自己相似);另一族就是剩下的诸如 [ 4 1 0 4 ] \begin{bmatrix}4&1\\0&4\end{bmatrix} [4014]的矩阵,它们都是相似的。在这个“大家族”中, [ 4 1 0 4 ] \begin{bmatrix}4&1\\0&4\end{bmatrix} [4014]是“最好”的一个矩阵,称为若尔当形。
若尔当形在过去是线性代数的核心知识,但现在不是了(现在是下一讲的奇异值分解),因为它并不容易计算。
- 继续上面的例子,我们再写出几个这一族的矩阵
[
4
1
0
4
]
,
[
5
1
−
1
3
]
,
[
4
0
17
4
]
\begin{bmatrix}4&1\\0&4\end{bmatrix},\ \begin{bmatrix}5&1\\-1&3\end{bmatrix},\ \begin{bmatrix}4&0\\17&4\end{bmatrix}
[4014], [5−113], [41704],我们总是可以构造出一个满足
t
r
a
c
e
(
A
)
=
8
,
∣
A
∣
=
16
trace(A)=8,\ |A|=16
trace(A)=8, ∣A∣=16的矩阵,这个矩阵总是在这一个“家族”中。
矩阵 A A A和 B B B相似有如下性质
-
∣ λ E − A ∣ = ∣ λ E − B ∣ |\lambda E-A|=|\lambda E-B| ∣λE−A∣=∣λE−B∣
-
r ( A ) = r ( B ) r(A)=r(B) r(A)=r(B)
-
A A A和 B B B有相同的特征值
-
∣ A ∣ = ∣ B ∣ = 特 征 值 之 积 |A|=|B|=特征值之积 ∣A∣=∣B∣=特征值之积
-
t r a ( A ) = t r a ( B ) = 特 征 值 之 和 tra(A)=tra(B)=特征值之和 tra(A)=tra(B)=特征值之和
-
矩阵特征值只有可能是化零多项式的零点,但化零多项式的零点不一定是特征值
-
化零多项式的解可以用 P − 1 A P P^{-1}AP P−1AP表达, A A A是对角阵,对角线元素是化零多项式的零点,每个零点个数不定
-
化零多项式无重根(代数重度不确定) ⇒ \Rightarrow ⇒ 最小多项式无重根(最小多项式能整除化零多项式) ⇒ \Rightarrow ⇒ 矩阵可对角化
-
J o r d a n Jordan Jordan块可以写成 J = λ E k + N J=\lambda E_k+N J=λEk+N,即 N N N矩阵(幂零矩阵)和数量矩阵(对角阵)
-
对于方阵 A A A和方阵 B B B,若 ∣ A ∣ ≠ 0 |A|{\neq}0 ∣A∣=0,那么 A B AB AB和 B A BA BA相似
2.若尔当形
再来看一个更加“糟糕”的矩阵:
-
矩阵 [ 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 ] \begin{bmatrix}0&1&0&0\\0&0&1&0\\0&0&0&0\\0&0&0&0\end{bmatrix} ⎣⎢⎢⎡0000100001000000⎦⎥⎥⎤,其特征值为四个零。很明显矩阵的秩为 2 2 2,所以其零空间的维数为 4 − 2 = 2 4-2=2 4−2=2,即该矩阵有两个特征向量。
-
另一个例子, [ 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 ] \begin{bmatrix}0&1&0&0\\0&0&0&0\\0&0&0&1\\0&0&0&0\end{bmatrix} ⎣⎢⎢⎡0000100000000010⎦⎥⎥⎤,从特征向量的数目看来这两个矩阵是相似的,其实不然。
若尔当认为第一个矩阵是由一个 3 × 3 3\times 3 3×3的块与一个 1 × 1 1\times 1 1×1的块组成的 [ 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 ] \left[\begin{array}{ccc|c}0&1&0&0\\0&0&1&0\\0&0&0&0\\\hline0&0&0&0\end{array}\right] ⎣⎢⎢⎡0000100001000000⎦⎥⎥⎤,而第二个矩阵是由两个 2 × 2 2\times 2 2×2矩阵组成的 [ 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 ] \left[\begin{array}{cc|cc}0&1&0&0\\0&0&0&0\\\hline0&0&0&1\\0&0&0&0\end{array}\right] ⎣⎢⎢⎡0000100000000010⎦⎥⎥⎤,这些分块被称为若尔当块。
若尔当块的定义型为 J i = [ λ i 1 ⋯ λ i 1 ⋯ λ i ⋯ ⋮ ⋮ ⋮ ⋱ λ i ] J_i=\begin{bmatrix}\lambda_i&1&&\cdots&\\&\lambda_i&1&\cdots&\\&&\lambda_i&\cdots&\\\vdots&\vdots&\vdots&\ddots&\\&&&&\lambda_i\end{bmatrix} Ji=⎣⎢⎢⎢⎢⎢⎡λi⋮1λi⋮1λi⋮⋯⋯⋯⋱λi⎦⎥⎥⎥⎥⎥⎤,它的对角线上只为同一个数,仅有一个特征向量。
所以,每一个矩阵 A A A都相似于一个若尔当矩阵,型为 J = [ J 1 J 2 ⋱ J d ] J=\left[\begin{array}{c|c|c|c}J_1&&&\\\hline&J_2&&\\\hline&&\ddots&\\\hline&&&J_d\end{array}\right] J=⎣⎢⎢⎡J1J2⋱Jd⎦⎥⎥⎤。注意,对角线上方还有 1 1 1。若尔当块的个数即为矩阵特征值的个数。
在矩阵为“好矩阵”的情况下, n n n阶矩阵将有 n n n个不同的特征值,那么它可以对角化,所以它的若尔当矩阵就是 Λ \Lambda Λ,共 n n n个特征向量,有 n n n个若尔当块。
- 特征多项式的因式数目 n n n确定 J o r d a n Jordan Jordan标准型由 n n n个子 J o r d a n Jordan Jordan矩阵构成
- 每个代数重数 k k k确定这 n n n个子 J o r d a n Jordan Jordan矩阵的阶数
- 每个子 J o r d a n Jordan Jordan矩阵的对角元是特征值,最小多项式确定每个子 J o r d a n Jordan Jordan矩阵中的所有 J o r d a n Jordan Jordan块必有的且最高的阶数(这里说子 J o r d a n Jordan Jordan矩阵是因为只确定了对角线元素,而不能确定 J o r d a n Jordan Jordan块的形式,因为不同的 J o r d a n Jordan Jordan块可能有同一个对角线值,因此可以理解为 同 一 个 对 角 线 元 素 = 同 一 个 子 J o r d a n 矩 阵 ≠ 同 一 个 J o r d a n 块 同一个对角线元素 = 同一个子Jordan矩阵 \ne 同一个Jordan块 同一个对角线元素=同一个子Jordan矩阵=同一个Jordan块)
任意矩阵 A A A都一定相似于唯一的 J o r d a n Jordan Jordan标准形(忽略 J o r d a n Jordan Jordan块的次序),对于给定的矩阵 A A A可以尝试以下方法寻找它对应的 J o r d a n Jordan Jordan标准形:
- 写出 A A A的特征多项式,确定 J o r d a n Jordan Jordan标准形的可能形式 J 1 , J 2 , J 3 , ⋯ , J s J_1,J_2,J_3,\cdots,J_s J1,J2,J3,⋯,Js(依据上面的规则)
- 根据 r ( A − λ E ) = r ( J − λ E ) r(A-\lambda E)=r(J-\lambda E) r(A−λE)=r(J−λE)排除其中不可能的形式
若尔当标准型的一些求法
Jordan 链及计算Jordan 标准型的算法
第三十讲:奇异值分解
本讲我们将一个矩阵分解为 A = U Σ V T A=U\varSigma V^T A=UΣVT,分解的因子分别为正交矩阵、对角矩阵、正交矩阵,与前面几讲的分解不同的是,这两个正交矩阵通常是不同的,而且这个式子可以对任意矩阵使用,不仅限于方阵、可对角化的方阵等。
-
在正定一讲中(第二十八讲)我们知道一个正定矩阵**(正定矩阵概念不同,部分教材定义正定二次型的矩阵称为正定矩阵**)可以分解为 A = Q Λ Q T A=Q\Lambda Q^T A=QΛQT的形式,由于 A A A对称性其特征向量是正交的,且其 Λ \Lambda Λ矩阵中的元素皆为正,这就是正定矩阵的奇异值分解。在这种特殊的分解中,我们只需要一个正交矩阵 Q Q Q就可以使等式成立。
-
在对角化一讲中(第二十二讲),我们知道可对角化的矩阵能够分解为 A = S Λ S T A=S\Lambda S^T A=SΛST的形式,其中 S S S的列向量由 A A A的特征向量组成,但 S S S并不是正交矩阵,所以这不是我们希望得到的奇异值分解。
我们现在要做的是,在 A A A的列空间中找到一组特殊的正交基 v 1 , v 2 , ⋯ , v r v_1,v_2,\cdots,v_r v1,v2,⋯,vr,这组基在 A A A的作用下可以转换为 A A A的行空间中的一组正交基 u 1 , u 2 , ⋯ , u r u_1,u_2,\cdots,u_r u1,u2,⋯,ur。
用矩阵语言描述为 A [ v 1 v 2 ⋯ v r ] = [ σ 1 u 1 σ 2 u 2 ⋯ σ r u r ] = [ u 1 u 2 ⋯ u r ] [ σ 1 σ 2 ⋱ σ n ] A\Bigg[v_1\ v_2\ \cdots\ v_r\Bigg]=\Bigg[\sigma_1u_1\ \sigma_2u_2\ \cdots\ \sigma_ru_r\Bigg]=\Bigg[u_1\ u_2\ \cdots\ u_r\Bigg]\begin{bmatrix}\sigma_1&&&\\&\sigma_2&&\\&&\ddots&\\&&&\sigma_n\end{bmatrix} A[v1 v2 ⋯ vr]=[σ1u1 σ2u2 ⋯ σrur]=[u1 u2 ⋯ ur]⎣⎢⎢⎡σ1σ2⋱σn⎦⎥⎥⎤,即 A v 1 = σ 1 u 1 , A v 2 = σ 2 u 2 , ⋯ , A v r = σ r u r Av_1=\sigma_1u_1,\ Av_2=\sigma_2u_2,\cdots,Av_r=\sigma_ru_r Av1=σ1u1, Av2=σ2u2,⋯,Avr=σrur,这些 σ \sigma σ是缩放因子,表示在转换过程中有拉伸或压缩。而 A A A的左零空间和零空间将体现在 σ \sigma σ的零值中。
另外,如果算上左零、零空间,我们同样可以对左零、零空间取标准正交基,然后写为 A [ v 1 v 2 ⋯ v r v r + 1 ⋯ v m ] = [ u 1 u 2 ⋯ u r u r + 1 ⋯ u n ] [ σ 1 ⋱ σ r [ 0 ] ] A\Bigg[v_1\ v_2\ \cdots\ v_r\ v_{r+1}\ \cdots\ v_m\Bigg]=\Bigg[u_1\ u_2\ \cdots\ u_r\ u_{r+1}\ \cdots \ u_n\Bigg]\left[\begin{array}{c c c|c}\sigma_1&&&\\&\ddots&&\\&&\sigma_r&\\\hline&&&\begin{bmatrix}0\end{bmatrix}\end{array}\right] A[v1 v2 ⋯ vr vr+1 ⋯ vm]=[u1 u2 ⋯ ur ur+1 ⋯ un]⎣⎢⎢⎡σ1⋱σr[0]⎦⎥⎥⎤,此时 U U U是 m × m m\times m m×m正交矩阵, Σ \varSigma Σ是 m × n m\times n m×n对角矩阵, V T V^T VT是 n × n n\times n n×n正交矩阵。
最终可以写为 A V = U Σ AV=U\varSigma AV=UΣ,可以看出这十分类似对角化的公式,矩阵 A A A被转化为对角矩阵 Σ \varSigma Σ,我们也注意到 U , V U,\ V U, V是两组不同的正交基。(在正定的情况下, U , V U,\ V U, V都变成了 Q Q Q。)进一步可以写作 A = U Σ V − 1 A=U\varSigma V^{-1} A=UΣV−1,因为 V V V是标准正交矩阵所以可以写为 A = U Σ V T A=U\varSigma V^T A=UΣVT
计算一个例子, A = [ 4 4 − 3 3 ] A=\begin{bmatrix}4&4\\-3&3\end{bmatrix} A=[4−343],我们需要找到:
- 行空间 R 2 \mathbb{R}^2 R2的标准正交基 v 1 , v 2 v_1,v_2 v1,v2;
- 列空间 R 2 \mathbb{R}^2 R2的标准正交基 u 1 , u 2 u_1,u_2 u1,u2;
- σ 1 > 0 , σ 2 > 0 \sigma_1>0, \sigma_2>0 σ1>0,σ2>0。
在 A = U Σ V T A=U\varSigma V^T A=UΣVT中有两个标准正交矩阵需要求解,我们希望一次只解一个,如何先将 U U U消去来求 V V V?
这个技巧会经常出现在长方形矩阵中:求 A T A A^TA ATA,这是一个对称正定矩阵(至少是半正定矩阵),于是有 A T A = V Σ T U T U Σ V T A^TA=V\varSigma^TU^TU\varSigma V^T ATA=VΣTUTUΣVT,由于 U U U是标准正交矩阵,所以 U T U = E U^TU=E UTU=E,而 Σ T Σ \varSigma^T\varSigma ΣTΣ是对角线元素为 σ 2 \sigma^2 σ2的对角矩阵。
现在有 A T A = V [ σ 1 σ 2 ⋱ σ n ] V T A^TA=V\begin{bmatrix}\sigma_1&&&\\&\sigma_2&&\\&&\ddots&\\&&&\sigma_n\end{bmatrix}V^T ATA=V⎣⎢⎢⎡σ1σ2⋱σn⎦⎥⎥⎤VT,这个式子中 V V V即是 A T A A^TA ATA的特征向量矩阵而 Σ 2 \varSigma^2 Σ2是其特征值矩阵。
同理,我们只想求 U U U时,用 A A T AA^T AAT消掉 V V V即可。
我们来计算 A T A = [ 4 − 3 4 3 ] [ 4 4 − 3 3 ] = [ 25 7 7 25 ] A^TA=\begin{bmatrix}4&-3\\4&3\end{bmatrix}\begin{bmatrix}4&4\\-3&3\end{bmatrix}=\begin{bmatrix}25&7\\7&25\end{bmatrix} ATA=[44−33][4−343]=[257725],对于简单的矩阵可以直接观察得到特征向量 A T A [ 1 1 ] = 32 [ 1 1 ] , A T A [ 1 − 1 ] = 18 [ 1 − 1 ] A^TA\begin{bmatrix}1\\1\end{bmatrix}=32\begin{bmatrix}1\\1\end{bmatrix},\ A^TA\begin{bmatrix}1\\-1\end{bmatrix}=18\begin{bmatrix}1\\-1\end{bmatrix} ATA[11]=32[11], ATA[1−1]=18[1−1],化为单位向量有 σ 1 = 32 , v 1 = [ 1 2 1 2 ] , σ 2 = 18 , v 2 = [ 1 2 − 1 2 ] \sigma_1=32,\ v_1=\begin{bmatrix}\frac{1}{\sqrt{2}}\\\frac{1}{\sqrt{2}}\end{bmatrix},\ \sigma_2=18,\ v_2=\begin{bmatrix}\frac{1}{\sqrt{2}}\\-\frac{1}{\sqrt{2}}\end{bmatrix} σ1=32, v1=[2 12 1], σ2=18, v2=[2 1−2 1]。
到目前为止,我们得到 [ 4 4 − 3 3 ] = [ u ? u ? u ? u ? ] [ 32 0 0 18 ] [ 1 2 1 2 1 2 − 1 2 ] \begin{bmatrix}4&4\\-3&3\end{bmatrix}=\begin{bmatrix}u_?&u_?\\u_?&u_?\end{bmatrix}\begin{bmatrix}\sqrt{32}&0\\0&\sqrt{18}\end{bmatrix}\begin{bmatrix}\frac{1}{\sqrt{2}}&\frac{1}{\sqrt{2}}\\\frac{1}{\sqrt{2}}&-\frac{1}{\sqrt{2}}\end{bmatrix} [4−343]=[u?u?u?u?][32 0018 ][2 12 12 1−2 1],接下来继续求解 U U U。
A A T = U Σ V T V Σ T U T = U Σ 2 U T AA^T=U\varSigma V^TV\varSigma^TU^T=U\varSigma^2U^T AAT=UΣVTVΣTUT=UΣ2UT,求出 A A T AA^T AAT的特征向量即可得到 U U U, [ 4 4 − 3 3 ] [ 4 − 3 4 3 ] = [ 32 0 0 18 ] \begin{bmatrix}4&4\\-3&3\end{bmatrix}\begin{bmatrix}4&-3\\4&3\end{bmatrix}=\begin{bmatrix}32&0\\0&18\end{bmatrix} [4−343][44−33]=[320018],观察得 A A T [ 1 0 ] = 32 [ 1 0 ] , A A T [ 0 1 ] = 18 [ 0 1 ] AA^T\begin{bmatrix}1\\0\end{bmatrix}=32\begin{bmatrix}1\\0\end{bmatrix},\ AA^T\begin{bmatrix}0\\1\end{bmatrix}=18\begin{bmatrix}0\\1\end{bmatrix} AAT[10]=32[10], AAT[01]=18[01]。但是我们不能直接使用这一组特征向量,因为式子 A V = U Σ AV=U\varSigma AV=UΣ明确告诉我们,一旦 V V V确定下来, U U U也必须取能够满足该式的向量,所以此处 A v 2 = [ 0 − 18 ] = u 2 σ 2 = [ 0 − 1 ] 18 Av_2=\begin{bmatrix}0\\-\sqrt{18}\end{bmatrix}=u_2\sigma_2=\begin{bmatrix}0\\-1\end{bmatrix}\sqrt{18} Av2=[0−18 ]=u2σ2=[0−1]18 ,则 u 1 = [ 1 0 ] , u 2 = [ 0 − 1 ] u_1=\begin{bmatrix}1\\0\end{bmatrix},\ u_2=\begin{bmatrix}0\\-1\end{bmatrix} u1=[10], u2=[0−1]。(这个问题在本讲的官方笔记中有详细说明。)
最终,我们得到 [ 4 4 − 3 3 ] = [ 1 0 0 − 1 ] [ 32 0 0 18 ] [ 1 2 1 2 1 2 − 1 2 ] \begin{bmatrix}4&4\\-3&3\end{bmatrix}=\begin{bmatrix}1&0\\0&-1\end{bmatrix}\begin{bmatrix}\sqrt{32}&0\\0&\sqrt{18}\end{bmatrix}\begin{bmatrix}\frac{1}{\sqrt{2}}&\frac{1}{\sqrt{2}}\\\frac{1}{\sqrt{2}}&-\frac{1}{\sqrt{2}}\end{bmatrix} [4−343]=[100−1][32 0018 ][2 12 12 1−2 1]。
再做一个例子, A = [ 4 3 8 6 ] A=\begin{bmatrix}4&3\\8&6\end{bmatrix} A=[4836],这是个秩一矩阵,有零空间。 A A A的行空间为 [ 4 3 ] \begin{bmatrix}4\\3\end{bmatrix} [43]的倍数, A A A的列空间为 [ 4 8 ] \begin{bmatrix}4\\8\end{bmatrix} [48]的倍数。
- 标准化向量得 v 1 = [ 0.8 0.6 ] , u 1 = 1 5 [ 1 2 ] v_1=\begin{bmatrix}0.8\\0.6\end{bmatrix},\ u_1=\frac{1}{\sqrt{5}}\begin{bmatrix}1\\2\end{bmatrix} v1=[0.80.6], u1=5 1[12]。
- A T A = [ 4 8 3 6 ] [ 4 3 8 6 ] = [ 80 60 60 45 ] A^TA=\begin{bmatrix}4&8\\3&6\end{bmatrix}\begin{bmatrix}4&3\\8&6\end{bmatrix}=\begin{bmatrix}80&60\\60&45\end{bmatrix} ATA=[4386][4836]=[80606045],由于 A A A是秩一矩阵,则 A T A A^TA ATA也不满秩,所以必有特征值 0 0 0,则另特征值一个由迹可知为 125 125 125
- 继续求零空间的特征向量,有 v 2 = [ 0.6 − 0 , 8 ] , u 1 = 1 5 [ 2 − 1 ] v_2=\begin{bmatrix}0.6\\-0,8\end{bmatrix},\ u_1=\frac{1}{\sqrt{5}}\begin{bmatrix}2\\-1\end{bmatrix} v2=[0.6−0,8], u1=5 1[2−1]
最终得到 [ 4 3 8 6 ] = [ 1 2 ‾ 2 − 1 ‾ ] [ 125 0 0 0 ‾ ] [ 0.8 0.6 0.6 ‾ − 0.8 ‾ ] \begin{bmatrix}4&3\\8&6\end{bmatrix}=\begin{bmatrix}1&\underline {2}\\2&\underline{-1}\end{bmatrix}\begin{bmatrix}\sqrt{125}&0\\0&\underline{0}\end{bmatrix}\begin{bmatrix}0.8&0.6\\\underline{0.6}&\underline{-0.8}\end{bmatrix} [4836]=[122−1][125 000][0.80.60.6−0.8],其中下划线部分都是与零空间相关的部分。
- v 1 , ⋯ , v r v_1,\ \cdots,\ v_r v1, ⋯, vr是行空间的标准正交基;
- u 1 , ⋯ , u r u_1,\ \cdots,\ u_r u1, ⋯, ur是列空间的标准正交基;
- v r + 1 , ⋯ , v n v_{r+1},\ \cdots,\ v_n vr+1, ⋯, vn是零空间的标准正交基;
- u r + 1 , ⋯ , u m u_{r+1},\ \cdots,\ u_m ur+1, ⋯, um是左零空间的标准正交基。
通过将矩阵写为 A v i = σ i u i Av_i=\sigma_iu_i Avi=σiui形式,将矩阵对角化,向量 u , v u,\ v u, v之间没有耦合, A A A乘以每个 v v v都能得到一个相应的 u u u。
第三十一讲:线性变换及对应矩阵
如何判断一个操作是不是线性变换?线性变换需满足以下两个要求:
T ( v + w ) = T ( v ) + T ( w ) T ( c v ) = c T ( v ) T(v+w)=T(v)+T(w)\\ T(cv)=cT(v) T(v+w)=T(v)+T(w)T(cv)=cT(v)
即变换 T T T需要同时满足加法和数乘不变的性质。将两个性质合成一个式子为: T ( c v + d w ) = c T ( v ) + d T ( w ) T(cv+dw)=cT(v)+dT(w) T(cv+dw)=cT(v)+dT(w)
例1,二维空间中的投影操作, T : R 2 → R 2 T: \mathbb{R}^2\to\mathbb{R}^2 T:R2→R2,它可以将某向量投影在一条特定直线上。检查一下投影操作,如果我们将向量长度翻倍,则其投影也翻倍;两向量相加后做投影与两向量做投影再相加结果一致。所以投影操作是线性变换。
“坏”例1,二维空间的平移操作,即平面平移:
%matplotlib inline
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
fig = plt.figure()
sp1 = plt.subplot(221)
vectors_1 = np.array([[0,0,3,2],])
X_1, Y_1, U_1, V_1 = zip(*vectors_1)
plt.axhline(y=0, c='black')
plt.axvline(x=0, c='black')
sp1.quiver(X_1, Y_1, U_1, V_1, angles='xy', scale_units='xy', scale=1)
sp1.set_xlim(0, 10)
sp1.set_ylim(0, 5)
sp1.set_xlabel("before shifted")
sp2 = plt.subplot(222)
vector_2 = np.array([[0,0,3,2],
[3,2,2,0],
[0,0,5,2],
[0,0,10,4]])
X_2,Y_2,U_2,V_2 = zip(*vector_2)
plt.axhline(y=0, c='black')
plt.axvline(x=0, c='black')
sp2.quiver(X_2, Y_2, U_2, V_2, angles='xy', scale_units='xy', scale=1)
sp2.set_xlim(0, 10)
sp2.set_ylim(0, 5)
sp2.set_xlabel("shifted by horizontal 2 then double")
sp3 = plt.subplot(223)
vectors_1 = np.array([[0,0,6,4],])
X_1, Y_1, U_1, V_1 = zip(*vectors_1)
plt.axhline(y=0, c='black')
plt.axvline(x=0, c='black')
sp3.quiver(X_1, Y_1, U_1, V_1, angles='xy', scale_units='xy', scale=1)
sp3.set_xlim(0, 10)
sp3.set_ylim(0, 5)
sp3.set_xlabel("double the vector")
sp4 = plt.subplot(224)
vector_2 = np.array([[0,0,6,4],
[6,4,2,0],
[0,0,8,4]])
X_2,Y_2,U_2,V_2 = zip(*vector_2)
plt.axhline(y=0, c='black')
plt.axvline(x=0, c='black')
sp4.quiver(X_2, Y_2, U_2, V_2, angles='xy', scale_units='xy', scale=1)
sp4.set_xlim(0, 10)
sp4.set_ylim(0, 5)
sp4.set_xlabel("doubled vector shifted by horizontal 2")
plt.subplots_adjust(hspace=0.33)
plt.draw()
plt.close(fig)
比如,上图中向量长度翻倍,再做平移,明显与向量平移后再翻倍的结果不一致。
有时我们也可以用一个简单的特例判断线性变换,检查 T ( 0 ) = ? 0 T(0)\stackrel{?}{=}0 T(0)=?0。零向量平移后结果并不为零。
所以平面平移操作并不是线性变换。
“坏”例2,求模运算, T ( v ) = ∥ v ∥ , T : R 3 → R 1 T(v)=\|v\|,\ T:\mathbb{R}^3\to\mathbb{R}^1 T(v)=∥v∥, T:R3→R1,这显然不是线性变换,比如如果我们将向量翻倍则其模翻倍,但如果我将向量翻倍取负,则其模依然翻倍。所以 T ( − v ) ≠ − T ( v ) T(-v)\neq -T(v) T(−v)=−T(v)
例2,旋转 4 5 ∘ 45^\circ 45∘操作, T : R 2 → R 2 T:\mathbb{R}^2\to\mathbb{R}^2 T:R2→R2,也就是将平面内一个向量映射为平面内另一个向量。检查可知,如果向量翻倍,则旋转后同样翻倍;两个向量先旋转后相加,与这两个向量先相加后旋转得到的结果一样。
所以从上面的例子我们知道,投影与旋转都是线性变换。
例3,矩阵乘以向量, T ( v ) = A v T(v)=Av T(v)=Av,这也是一个(一系列)线性变换,不同的矩阵代表不同的线性变换。根据矩阵的运算法则有 A ( v + w ) = A ( v ) + A ( w ) , A ( c v ) = c A v A(v+w)=A(v)+A(w),\ A(cv)=cAv A(v+w)=A(v)+A(w), A(cv)=cAv。比如取 A = [ 1 0 0 − 1 ] A=\begin{bmatrix}1&0\\0&-1\end{bmatrix} A=[100−1],作用于平面上的向量 v v v,会导致 v v v的 x x x分量不变,而 y y y分量取反,也就是图像沿 x x x轴翻转。
线性变换的核心,就是该变换使用的相应的矩阵。
比如我们需要做一个线性变换,将一个三维向量降至二维, T : R 3 → R 2 T:\mathbb{R}^3\to\mathbb{R}^2 T:R3→R2,则在 T ( v ) = A v T(v)=Av T(v)=Av中, v ∈ R 3 , T ( v ) ∈ R 2 v\in\mathbb{R}^3,\ T(v)\in\mathbb{R}^2 v∈R3, T(v)∈R2,所以 A A A应当是一个 2 × 3 2\times 3 2×3矩阵。
如果我们希望知道线性变换 T T T对整个输入空间 R n \mathbb{R}^n Rn的影响,我们可以找到空间的一组基 v 1 , v 2 , ⋯ , v n v_1,\ v_2,\ \cdots,\ v_n v1, v2, ⋯, vn,检查 T T T对每一个基的影响 T ( v 1 ) , T ( v 2 ) , ⋯ , T ( v n ) T(v_1),\ T(v_2),\ \cdots,\ T(v_n) T(v1), T(v2), ⋯, T(vn),由于输入空间中的任意向量都满足:
v = c 1 v 1 + c 2 v 2 + ⋯ + c n v n (1) v=c_1v_1+c_2v_2+\cdots+c_nv_n\tag{1} v=c1v1+c2v2+⋯+cnvn(1)
所以我们可以根据 T ( v ) T(v) T(v)推出线性变换 T T T对空间内任意向量的影响,得到:
T ( v ) = c 1 T ( v 1 ) + c 2 T ( v 2 ) + ⋯ + c n T ( v n ) (2) T(v)=c_1T(v_1)+c_2T(v_2)+\cdots+c_nT(v_n)\tag{2} T(v)=c1T(v1)+c2T(v2)+⋯+cnT(vn)(2)
现在我们需要考虑,如何把一个与坐标无关的线性变换变成一个与坐标有关的矩阵呢?
在 1 1 1式中, c 1 , c 2 , ⋯ , c n c_1,c_2,\cdots,c_n c1,c2,⋯,cn就是向量 v v v在基 v 1 , v 2 , ⋯ , v n v_1,v_2,\cdots,v_n v1,v2,⋯,vn上的坐标,比如分解向量 v = [ 3 2 4 ] = 3 [ 1 0 0 ] + 2 [ 0 1 0 ] + 4 [ 0 0 1 ] v=\begin{bmatrix}3\\2\\4\end{bmatrix}=3\begin{bmatrix}1\\0\\0\end{bmatrix}+2\begin{bmatrix}0\\1\\0\end{bmatrix}+4\begin{bmatrix}0\\0\\1\end{bmatrix} v=⎣⎡324⎦⎤=3⎣⎡100⎦⎤+2⎣⎡010⎦⎤+4⎣⎡001⎦⎤,式子将向量 v v v分解在一组标准正交基 [ 1 0 0 ] , [ 0 1 0 ] , [ 0 0 1 ] \begin{bmatrix}1\\0\\0\end{bmatrix},\begin{bmatrix}0\\1\\0\end{bmatrix},\begin{bmatrix}0\\0\\1\end{bmatrix} ⎣⎡100⎦⎤,⎣⎡010⎦⎤,⎣⎡001⎦⎤上。当然,我们也可以选用矩阵的特征向量作为基向量,基的选择是多种多样的。
我们打算构造一个矩阵 A A A用以表示线性变换 T : R n → R m T:\mathbb{R}^n\to\mathbb{R}^m T:Rn→Rm。我们需要两组基,一组用以表示输入向量,一组用以表示输出向量。令 v 1 , v 2 , ⋯ , v n v_1,v_2,\cdots,v_n v1,v2,⋯,vn为输入向量的基,这些向量来自 R n \mathbb{R}^n Rn; w 1 , w 2 , ⋯ , w m w_1,w_2,\cdots,w_m w1,w2,⋯,wm作为输出向量的基,这些向量来自 R m \mathbb{R}^m Rm。
我们用二维空间的投影矩阵作为例子:
fig = plt.figure()
vectors_1 = np.array([[0, 0, 3, 2],
[0, 0, -2, 3]])
X_1, Y_1, U_1, V_1 = zip(*vectors_1)
plt.axis('equal')
plt.axhline(y=0, c='black')
plt.axvline(x=0, c='black')
plt.quiver(X_1, Y_1, U_1, V_1, angles='xy', scale_units='xy', scale=1)
plt.plot([-6, 12], [-4, 8])
plt.annotate('$v_1=w_1$', xy=(1.5, 1), xytext=(10, -20), textcoords='offset points', size=14, arrowprops=dict(arrowstyle="->"))
plt.annotate('$v_2=w_2$', xy=(-1, 1.5), xytext=(-60, -20), textcoords='offset points', size=14, arrowprops=dict(arrowstyle="->"))
plt.annotate('project line', xy=(4.5, 3), xytext=(-90, 10), textcoords='offset points', size=14, arrowprops=dict(arrowstyle="->"))
ax = plt.gca()
ax.set_xlim(-5, 5)
ax.set_ylim(-4, 4)
ax.set_xlabel("Project Example")
plt.draw()
plt.close(fig)
从图中可以看到,设输入向量的基为 v 1 , v 2 v_1,v_2 v1,v2, v 1 v_1 v1就在投影上,而 v 2 v_2 v2垂直于投影方向,输出向量的基为 w 1 , w 2 w_1,w_2 w1,w2,而 v 1 = w 1 , v 2 = w 2 v_1=w_1,v_2=w_2 v1=w1,v2=w2。那么如果输入向量为 v = c 1 v 1 + c 2 v 2 v=c_1v_1+c_2v_2 v=c1v1+c2v2,则输出向量为 T ( v ) = c 1 v 1 T(v)=c_1v_1 T(v)=c1v1,也就是线性变换去掉了法线方向的分量,输入坐标为 ( c 1 , c 2 ) (c_1,c_2) (c1,c2),输出坐标变为 ( c 1 , 0 ) (c_1,0) (c1,0)。
找出这个矩阵并不困难, A v = w Av=w Av=w,则有 [ 1 0 0 0 ] [ c 1 c 2 ] = [ c 1 0 ] \begin{bmatrix}1&0\\0&0\end{bmatrix}\begin{bmatrix}c_1\\c_2\end{bmatrix}=\begin{bmatrix}c_1\\0\end{bmatrix} [1000][c1c2]=[c10]。
本例中我们选取的基极为特殊,一个沿投影方向,另一个沿投影法线方向,其实这两个向量都是投影矩阵的特征向量,所以我们得到的线性变换矩阵是一个对角矩阵,这是一组很好的基。
所以,如果我们选取投影矩阵的特征向量作为基,则得到的线性变换矩阵将是一个包含投影矩阵特征值的对角矩阵。
继续这个例子,我们不再选取特征向量作为基,而使用标准基 v 1 = [ 1 0 ] , v 2 = [ 0 1 ] v_1=\begin{bmatrix}1\\0\end{bmatrix},v_2=\begin{bmatrix}0\\1\end{bmatrix} v1=[10],v2=[01],我们继续使用相同的基作为输出空间的基,即 v 1 = w 1 , v 2 = w 2 v_1=w_1,v_2=w_2 v1=w1,v2=w2。此时投影矩阵为 P = a a T a T a = [ 1 2 1 2 1 2 1 2 ] P=\frac{aa^T}{a^Ta}=\begin{bmatrix}\frac{1}{2}&\frac{1}{2}\\\frac{1}{2}&\frac{1}{2}\end{bmatrix} P=aTaaaT=[21212121],这个矩阵明显没有上一个矩阵“好”,不过这个矩阵也是一个不错的对称矩阵。
总结通用的计算线性变换矩阵 A A A的方法:
- 确定输入空间的基 v 1 , v 2 , ⋯ , v n v_1,v_2,\cdots,v_n v1,v2,⋯,vn,确定输出空间的基 w 1 , w 2 , ⋯ , w m w_1,w_2,\cdots,w_m w1,w2,⋯,wm;
- 计算 T ( v 1 ) = a 11 w 1 + a 21 w 2 + ⋯ + a m 1 w m T(v_1)=a_{11}w_1+a_{21}w_2+\cdots+a_{m1}w_m T(v1)=a11w1+a21w2+⋯+am1wm,求出的系数 a i 1 a_{i1} ai1就是矩阵 A A A的第一列;
- 继续计算 T ( v 2 ) = a 12 w 1 + a 22 w 2 + ⋯ + a m 2 w m T(v_2)=a_{12}w_1+a_{22}w_2+\cdots+a_{m2}w_m T(v2)=a12w1+a22w2+⋯+am2wm,求出的系数 a i 2 a_{i2} ai2就是矩阵 A A A的第二列;
- 以此类推计算剩余向量直到 v n v_n vn;
- 最终得到矩阵 A = [ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a m 1 a m 2 ⋯ a m n ] A=\left[\begin{array}{c|c|c|c}a_{11}&a_{12}&\cdots&a_{1n}\\a_{21}&a_{22}&\cdots&a_{2n}\\\vdots&\vdots&\ddots&\vdots\\a_{m1}&a_{m2}&\cdots&a_{mn}\\\end{array}\right] A=⎣⎢⎢⎢⎡a11a21⋮am1a12a22⋮am2⋯⋯⋱⋯a1na2n⋮amn⎦⎥⎥⎥⎤。
最后我们介绍一种不一样的线性变换, T = d d x T=\frac{\mathrm{d}}{\mathrm{d}x} T=dxd:
-
设输入为 c 1 + c 2 x + c 3 x 3 c_1+c_2x+c_3x^3 c1+c2x+c3x3,基为 1 , x , x 2 1,x,x^2 1,x,x2;
-
则输出为导数: c 2 + 2 c 3 x c_2+2c_3x c2+2c3x,基为 1 , x 1,x 1,x;
所以我们需要求一个从三维输入空间到二维输出空间的线性变换,目的是求导。求导运算其实是线性变换,因此我们只要知道少量函数的求导法则(如 sin x , cos x , e x \sin x, \cos x, e^x sinx,cosx,ex),就能求出它们的线性组合的导数。
有 A [ c 1 c 2 c 3 ] = [ c 2 2 c 3 ] A\begin{bmatrix}c_1\\c_2\\c_3\end{bmatrix}=\begin{bmatrix}c_2\\2c_3\end{bmatrix} A⎣⎡c1c2c3⎦⎤=[c22c3],从输入输出的空间维数可知, A A A是一个 2 × 3 2\times 3 2×3矩阵, A = [ 0 1 0 0 0 2 ] A=\begin{bmatrix}0&1&0\\0&0&2\end{bmatrix} A=[001002]。
最后,矩阵的逆相当于对应线性变换的逆运算,矩阵的乘积相当于线性变换的乘积,实际上矩阵乘法也源于线性变换。
矩阵乘积的秩-从线性变换的角度理解
线性变换的值域和核
对于线性映射
f
:
V
→
U
f:V\rightarrow U
f:V→U,如果
V
V
V的基已经确定为
α
1
,
α
2
,
α
3
,
⋯
,
α
s
\alpha_1,\alpha_2,\alpha_3,\cdots,\alpha_s
α1,α2,α3,⋯,αs,且这些基在
U
U
U中的像
β
1
,
β
2
,
β
3
,
⋯
,
β
s
\beta_1,\beta_2,\beta_3,\cdots,\beta_s
β1,β2,β3,⋯,βs也确定,那么线性映射
f
f
f也已经可以确定,根据基的唯一表示性质即可说明
线性变换
f
f
f
⟺
\iff
⟺ 代表此变换的矩阵
A
A
A,只要找到线性变换对应的矩阵,其他都很好解决
线性变换的核子空间 K ( f ) K(f) K(f) ⟺ \iff ⟺ 矩阵 A A A的零空间
线性变换的值域空间
R
(
f
)
R(f)
R(f)
⟺
\iff
⟺ 矩阵
A
A
A的列空间,矩阵
A
A
A列满秩
⟺
\iff
⟺ 矩阵
A
A
A的零空间只有零向量
⟺
\iff
⟺
K
(
f
)
=
{
0
}
K(f)=\{0\}
K(f)={0}
⟺
\iff
⟺
f
f
f是单射
矩阵
A
A
A列满秩
⟺
\iff
⟺ 矩阵
A
A
A的零空间只有零向量
⟺
\iff
⟺
K
(
f
)
=
{
0
}
K(f)=\{0\}
K(f)={0}
⟺
\iff
⟺
f
f
f是单射
⇒
\Rightarrow
⇒
r
(
A
B
)
=
r
(
B
)
,
即
f
是
秩
恒
等
映
射
r(AB)=r(B),即f是秩恒等映射
r(AB)=r(B),即f是秩恒等映射
线性变换把线性空间变换为线性空间,这两个空间的关系是,变换后的空间维度不会增加,只可能减小( r ( A B ) ≤ r ( A ) , r ( B ) r(AB)\le r(A),r(B) r(AB)≤r(A),r(B))。矩阵的秩越大,认为矩阵包含的信息量越多,例如 0 0 0秩矩阵是零矩阵,无任何信息。满秩矩阵,列向量组是基,包含信息最多,因为基可以表示空间任意向量。 行满秩矩阵,列向量组的极大无关组是基,包含信息也最多,但其包含冗余信息,因为除了基向量外,还有其它向量,这些向量就是冗余向量。从信息量角度看,线性变换可能会损失矩阵的信息,因为秩变小了,所以是有损变换。只有变换矩阵的列向量组是无关组时,才是无损变换(秩恒等映射)。再从一个角度看,矩阵 A A A是列满秩时,是无损变换,若此时矩阵 A m × n A_{m \times n} Am×n的行数 m m m大于等于列数 n n n,矩阵 B n × m B_{n \times m} Bn×m列向量维度是 n n n ,变换后矩阵 C = A B C=AB C=AB列向量维度是 m m m,维度提高了。所以线性变换只有升维变换才有可能保持秩不变,信息量不减小,降维变换可能会损失信息
寻找线性变换 f f f对应的矩阵 A A A:
- 找一组抽象基 e 1 , e 2 , e 3 , ⋯ , e s e_1,e_2,e_3,\cdots,e_s e1,e2,e3,⋯,es
- 搭起架子: ( f ( e 1 ) , f ( e 2 ) , f ( e 3 ) , ⋯ , f ( e s ) ) = ( e 1 , e 2 , e 3 , ⋯ , e s ) A (f(e_1),f(e_2),f(e_3),\cdots,f(e_s))=(e_1,e_2,e_3,\cdots,e_s)A (f(e1),f(e2),f(e3),⋯,f(es))=(e1,e2,e3,⋯,es)A
- 根据线性组合的思路观察求得矩阵
A
A
A
求得 A A A列向量组的极大线性无关组后,对应到 R ( f ) = L ( f ( e 1 ) , f ( e 2 ) , f ( e 3 ) , ⋯ , f ( e s ) ) R(f)=L(f(e_1),f(e_2),f(e_3),\cdots,f(e_s)) R(f)=L(f(e1),f(e2),f(e3),⋯,f(es))中找到 V V V基向量对应的像即可表示出值域的基(例如假设求得的极大线性无关组为 A A A的 c o l 1 , c o l 2 col_1,col_2 col1,col2,那么值域就是 f ( e 1 ) , f ( e 2 ) f(e_1),f(e_2) f(e1),f(e2),这里的 e 1 , e 2 e_1,e_2 e1,e2都是抽象的向量,不一定指的是一组数字向量),得到 A A A的基础解系也可以表示出核子空间的基。实际上求得的 A A A的极大线性无关组或基础解系就是值域 R ( f ) R(f) R(f)和核子空间 K ( f ) K(f) K(f)的坐标表示
- 等距变换保持内积不变,长度不变(模),距离也不变。前两者在工程矩阵理论中已经证明。下面说明距离不变:
d ( α , β ) = 定 义 ∣ ∣ α − β ∣ ∣ = 定 义 < α − β , α − β > = 等 距 变 换 定 义 : 变 换 前 后 内 积 不 变 < f ( α − β ) , f ( α − β ) > = 定 义 ∣ ∣ f ( α − β ) ) ∣ ∣ = 线 性 变 换 的 性 质 : 可 加 性 ∣ ∣ f ( α ) − f ( β ) ) ∣ ∣ = 定 义 d ( f ( α ) , f ( β ) ) d(\alpha,\beta)\stackrel{定义}{=}||\alpha -\beta||\overset{定义}{=}\sqrt{<\alpha-\beta,\alpha-\beta>}\overset{等距变换定义:变换前后内积不变}{=}\sqrt{<f(\alpha-\beta),f(\alpha-\beta)>}\overset{定义}{=}||f(\alpha-\beta))||\overset{线性变换的性质:可加性}{=}||f(\alpha)-f(\beta))||\overset{定义}{=}d(f(\alpha),f(\beta)) d(α,β)=定义∣∣α−β∣∣=定义<α−β,α−β> =等距变换定义:变换前后内积不变<f(α−β),f(α−β)> =定义∣∣f(α−β))∣∣=线性变换的性质:可加性∣∣f(α)−f(β))∣∣=定义d(f(α),f(β)) - 等距变换都是可逆变换,其逆变换也是等距变换,对于有限维空间上的可逆变换(例如等距变换),满射 ⟺ \iff ⟺ 单射