线性代数及矩阵论(九)

线性代数原文 MIT 18.06 线性代数笔记
矩阵论笔记来自 工程矩阵理论
综合线性代数 机器学习的数学基础
配合视频 线性代数 工程矩阵理论

二十九、相似矩阵和若尔当形

在本讲的开始,先接着上一讲来继续说一说正定矩阵。

  • 正定矩阵的逆矩阵有什么性质?我们将正定矩阵分解为 A = S Λ S − 1 A=S\Lambda S^{-1} A=SΛS1,引入其逆矩阵 A − 1 = S Λ − 1 S − 1 A^{-1}=S\Lambda^{-1}S^{-1} A1=SΛ1S1(正定矩阵的顺序主子式大于零,因此必可逆),我们知道正定矩阵的特征值均为正值,所以其逆矩阵的特征值也必为正值(即原矩阵特征值的倒数)所以,正定矩阵的逆矩阵也是正定的

  • 如果 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 Ax20。要保证模不为零,则需要 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 Ax2>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=M1AM时,成 A ,   B A,\ B A, B互为相似矩阵。

对于在对角化一讲(第二十二讲)中学过的式子 S − 1 A S = Λ S^{-1}AS=\Lambda S1AS=Λ,则有 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=M1AM=[1041][2112][1041]=[21156]

    我们来计算这几个矩阵的的特征值(利用迹与行列式的性质), λ Λ = 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=M1AM,第一个式子化为 A M M − 1 x = λ x AMM^{-1}x=\lambda x AMM1x=λx,接着两边同时左乘 M − 1 M^{-1} M1 M − 1 A M M − 1 x = λ M − 1 x M^{-1}AMM^{-1}x=\lambda M^{-1}x M1AMM1x=λM1x,进行适当的分组得 ( M − 1 A M ) M − 1 x = λ M − 1 x \left(M^{-1}AM\right)M^{-1}x=\lambda M^{-1}x (M1AM)M1x=λM1x B M − 1 x = λ M − 1 x BM^{-1}x=\lambda M^{-1}x BM1x=λM1x

B M − 1 x = λ M − 1 x BM^{-1}x=\lambda M^{-1}x BM1x=λM1x可以解读成矩阵 B B B与向量 M − 1 x M^{-1}x M1x之积等于 λ \lambda λ与向量 M − 1 x M^{-1}x M1x之积,也就是 B B B的特征值仍为 λ \lambda λ,而特征向量变为 M − 1 x M^{-1}x M1x

以上就是我们得到的一族特征值为 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} M1[4004]M=4M1EM=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], [5113], [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| λEA=λEB

  • 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 P1AP表达, 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 42=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=λi1λi1λ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=J1J2Jd。注意,对角线上方还有 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标准形:

  1. 写出 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(依据上面的规则)
  2. 根据 r ( A − λ E ) = r ( J − λ E ) r(A-\lambda E)=r(J-\lambda E) r(AλE)=r(JλE)排除其中不可能的形式

第三十讲:奇异值分解

本讲我们将一个矩阵分解为 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ΣV1,因为 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=[4343],我们需要找到:

  • 行空间 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σnVT,这个式子中 V V V即是 A T A A^TA ATA的特征向量矩阵而 Σ 2 \varSigma^2 Σ2是其特征值矩阵,因此 A A A的奇异值实际是 A T A 的 特 征 值 \sqrt{A^TA的特征值} ATA

同理,我们只想求 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=[4433][4343]=[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[11]=18[11],化为单位向量有 σ 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 12 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} [4343]=[u?u?u?u?][32 0018 ][2 12 12 12 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} [4343][4433]=[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=[018 ]=u2σ2=[01]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=[01]。(这个问题在本讲的官方笔记中有详细说明。)

最终,我们得到 [ 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} [4343]=[1001][32 0018 ][2 12 12 12 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.60,8], u1=5 1[21]

最终得到 [ 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]=[1221][125 000][0.80.60.60.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:R2R2,它可以将某向量投影在一条特定直线上。检查一下投影操作,如果我们将向量长度翻倍,则其投影也翻倍;两向量相加后做投影与两向量做投影再相加结果一致。所以投影操作是线性变换。

“坏”例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()

png

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:R3R1,这显然不是线性变换,比如如果我们将向量翻倍则其模翻倍,但如果我将向量翻倍取负,则其模依然翻倍。所以 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:R2R2,也就是将平面内一个向量映射为平面内另一个向量。检查可知,如果向量翻倍,则旋转后同样翻倍;两个向量先旋转后相加,与这两个向量先相加后旋转得到的结果一样。

所以从上面的例子我们知道,投影与旋转都是线性变换

例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=[1001],作用于平面上的向量 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:R3R2,则在 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 vR3, 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=3100+2010+4001,式子将向量 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:RnRm。我们需要两组基,一组用以表示输入向量,一组用以表示输出向量。令 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()

png

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=a11a21am1a12a22am2a1na2namn

最后我们介绍一种不一样的线性变换, 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} Ac1c2c3=[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:VU,如果 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

  1. 找一组抽象基 e 1 , e 2 , e 3 , ⋯   , e s e_1,e_2,e_3,\cdots,e_s e1,e2,e3,,es
  2. 搭起架子: ( 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
  3. 根据线性组合的思路观察求得矩阵 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 单射
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip
CSDN是中国最大的技术社区之一,提供了许多优质的技术教程和学习资料。其中包括了高等代数讲义和线性代数讲义。 高等代数讲义是一本涵盖了高等数学基础知识的教材。高等代数作为数学的一门重要分支,研究了向量空间、线性变换、矩阵论等内容。这本讲义通过规范的章节结构和详细的解释,帮助读者系统地掌握高等代数的基本概念和理论。它还提供了大量的习题和例题,帮助读者巩固所学的知识,并提供了答案和解析供参考。 线性代数讲义是一本介绍线性代数的教材。线性代数是数学中的一门重要学科,广泛应用于工程、科学以及经济学等领域。这本讲义从矩阵和向量开始,逐步介绍了线性代数的核心概念,如线性方程组、线性变换、特征值和特征向量等。通过清晰的图表和例子,读者可以更好地理解和运用线性代数的相关知识。该讲义还包含了一些应用实例和习题,帮助读者将所学的线性代数知识应用到实际问题中。 CSDN的高等代数讲义和线性代数讲义都是经过专业人员编写和校对的,并且提供了免费的电子版下载。它们为学习者提供了方便、简洁和系统的学习材料,有助于读者提升数学基础和解决实际问题的能力。无论是学生还是从业人员,都可以通过阅读这些讲义,有效地学习和应用高等代数和线性代数的相关知识。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_森罗万象

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值