当前位置: 首页 > article >正文

矩阵论 •「线性变换」

线性变换

关于变换:在两个集合之间可以定义一个映射。当集合为数集时,我们称这个映射为“函数”;当集合为线性空间时,就称这个映射为“变换”(之所以叫变换,隐含了一种运动的思想)。“变换”实际上就是“函数”的一种花哨的说法,只是在线性代数中,变换主要考虑作用的是线性空间中的元素,而不是函数中的数字;线性空间中的元素可以简单理解为向量.

线性变换

定义:设 V V V 是一个线性空间, T T T V V V 到自身的一个映射,对于 V V V 中的任意元素 v ⃗ \vec{v} v 均存在唯一的 v ′ ⃗ ∈ V \vec{v'} \in V v V 与之对应,则称 T T T 为线性空间 V V V 上的一个变换,记为 T v ⃗ = v ′ ⃗ T\vec{v}=\vec{v'} Tv =v (注意:“到自身”限定了变换矩阵为方阵?)一个变换可以非常复杂,然而幸运的是,线性变换对变换进行了限定,是一种特殊的变换;向量的线性运算有加法和数量乘法,那么线性变换顾名思义,就是针对向量的线性运算的变换,它满足:
T ( x ⃗ + y ⃗ ) = T ( x ⃗ ) + T ( y ⃗ ) T ( k x ⃗ ) = k T ( x ⃗ ) \begin{align} T(\vec{x} + \vec{y}) &= T(\vec{x}) + T(\vec{y}) \\ T(k\vec{x}) &= kT(\vec{x}) \end{align} T(x +y )T(kx )=T(x )+T(y )=kT(x )
线性变换有一些性质和运算规律,在此做一些举例:

  • 线性变换把零元素仍变为零元素(原点固定)
  • 线性变换把线性相关的元素组仍变为线性相关的元素组,但线性无关的元素组经过线性变换不一定再是线性无关的(例如降维);
  • 线性变换的和 T 1 + T 2 : ∀ x ⃗ ∈ V , ( T 1 + T 2 ) x ⃗ = T 1 x ⃗ + T 2 x ⃗ T_1+T_2\text{:}\quad\forall \vec{x}\in V\text{,}\quad(T_1+T_2)\vec{x}=T_1\vec{x}+T_2\vec{x} T1+T2:x V,(T1+T2)x =T1x +T2x
  • 线性变换的数乘 k T : ∀ x ⃗ ∈ V , ( k T ) x ⃗ = k ( T x ⃗ ) kT:\quad\forall \vec{x}\in V\text{,}\quad(kT)\vec{x}=k(T\vec{x}) kT:x V,(kT)x =k(Tx )
  • 线性变换的乘积 T 1 T 2 : ∀ x ⃗ ∈ V , ( T 1 T 2 ) x ⃗ = T 1 ( T 2 x ⃗ ) T_1T_2:\quad\forall \vec{x}\in V\text{,}(T_1T_2)\vec{x}=T_1(T_2\vec{x}) T1T2:x V,(T1T2)x =T1(T2x )

通常,线性变换的乘积不满足交换律,且不是所有的变换都具有逆变换;这对应着矩阵的乘积和逆.

线性变换的矩阵表示 ⭐

线性空间是一个非常抽象的概念,线性空间中的元素可以多种多样。线性变换的矩阵表示目的在于:把一个线性空间上的线性变换(元素之间的映射),转化为了坐标之间的变换,并通过矩阵来描述这个变换。对任何线性空间,给定基后,我们对元素进行线性变换或线性运算时,只需用线性变换的矩阵右乘以元素的坐标“向量”即可。注意,实际上在这个变换的过程中,选择的描述这个线性空间 V V V 的基不变。这样的话我们就可以通过矩阵 + 坐标来描述一个线性变换作用于一个抽象向量的过程;每当我们看到一个矩阵时,也都可以理解为是对线性空间(中元素的坐标)的一个线性变换。线性变换的矩阵表示推导过程如下:

考虑线性空间 V V V 中的一个元素(向量) v ⃗ \vec{v} v ,显然该向量可以由 { v 1 ⃗ , v 2 ⃗ . . . , v n ⃗ } \{\vec{v_1},\vec{v_2}...,\vec{v_n}\} {v1 ,v2 ...,vn } 和坐标联合进行唯一线性表示,即:

v ⃗ = ∑ 1 n k i v i ⃗ = [ v 1 ⃗ , v 2 ⃗ . . . , v n ⃗ ] [ k 1 k 2 ⋮ k n ] \vec{v} = \sum_1^n k_i\vec{v_i} = \begin{bmatrix}\vec{v_1},\vec{v_2}...,\vec{v_n}\end{bmatrix} \begin{bmatrix}k_1 \\k_2 \\\vdots \\k_n\end{bmatrix} v =1nkivi =[v1 ,v2 ...,vn ] k1k2kn

要确定一个线性变换 T T T,乍看起来,似乎需要把线性空间 V V V 中所有向量在 T T T 下的象全部找出来才行,事实上不必如此。因为 T T T 是线性变换(变换前后线性组合系数不变),而 V V V 中任一向量都可由基向量唯一线性表示,所以只要能够确定出 V V V 的基向量的象(即确定基向量的运动),则 V V V 中任一向量的象也就完全确定了。即下面公式所描述的:

T v ⃗ = T ( k 1 v 1 ⃗ + k 2 v 2 ⃗ + ⋯ + k n v n ⃗ ) = [ T v 1 ⃗ , T v 2 ⃗ , ⋯   , T v n ⃗ ] [ k 1 k 2 ⋮ k n ] T\vec{v}= T(k_1\vec{v_1}+k_2\vec{v_2}+\cdots+k_n\vec{v_n})= \begin{bmatrix}T\vec{v_1},T\vec{v_2},\cdots,T\vec{v_n}\end{bmatrix} \begin{bmatrix}k_1\\k_2\\\vdots\\k_n\end{bmatrix} Tv =T(k1v1 +k2v2 ++knvn )=[Tv1 ,Tv2 ,,Tvn ] k1k2kn

其中考虑 T v i ⃗ T\vec{v_i} Tvi :线性变换限定在线性空间 V V V 到自身,因此每一个 T v i ⃗ T\vec{v_i} Tvi 都可以由基 v 1 ⃗ , v 2 ⃗ . . . , v n ⃗ \vec{v_1},\vec{v_2}...,\vec{v_n} v1 ,v2 ...,vn 进行唯一线性表示,因此可以写为矩阵形式

[ T v 1 ⃗ , T v 2 ⃗ , ⋯   , T v n ⃗ ] = [ v 1 ⃗ , v 2 ⃗ , ⋯   , v n ⃗ ] [ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ a n 1 a n 2 ⋯ a n n ] = [ v 1 ⃗ , v 2 ⃗ , ⋯   , v n ⃗ ] A \begin{bmatrix}T\vec{v_1},T\vec{v_2},\cdots,T\vec{v_n}\end{bmatrix} = \begin{bmatrix}\vec{v_1},\vec{v_2},\cdots,\vec{v_n}\end{bmatrix} \begin{bmatrix}a_{_{11}}a_{_{12}}\cdots a_{_{1n}}\\a_{_{21}}a_{_{22}}\cdots a_{_{2n}}\\\vdots \\a_{_{n1}}a_{_{n2}}\cdots a_{_{nn}}\end{bmatrix}= \begin{bmatrix}\vec{v_1},\vec{v_2},\cdots,\vec{v_n}\end{bmatrix} A [Tv1 ,Tv2 ,,Tvn ]=[v1 ,v2 ,,vn ] a11a12a1na21a22a2nan1an2ann =[v1 ,v2 ,,vn ]A
矩阵 A A A 称为线性变换 T T T 在基 { v 1 ⃗ , v 2 ⃗ . . . , v n ⃗ } \{\vec{v_1},\vec{v_2}...,\vec{v_n}\} {v1 ,v2 ...,vn } 下的矩阵。考虑线性变换后的向量 T v ⃗ T\vec{v} Tv :因此向量 T v ⃗ T\vec{v} Tv 利用原坐标 [ k 1 , k 2 , ⋯   , k n ] T [k_1,k_2,\cdots,k_n]^{T} [k1,k2,,kn]T 表示就为:
T v ⃗ = [ v 1 ⃗ , v 2 ⃗ , ⋯   , v n ⃗ ] A [ k 1 k 2 ⋮ k n ] T\vec{v} = \begin{bmatrix}\vec{v_1},\vec{v_2},\cdots,\vec{v_n}\end{bmatrix}A \begin{bmatrix}k_1\\k_2\\\vdots\\k_n\end{bmatrix} Tv =[v1 ,v2 ,,vn ]A k1k2kn
于是向量 T v ⃗ T\vec{v} Tv 在基 v 1 ⃗ , v 2 ⃗ . . . , v n ⃗ \vec{v_1},\vec{v_2}...,\vec{v_n} v1 ,v2 ...,vn 下的新的坐标为:
[ k 1 ′ k 2 ′ ⋮ k n ′ ] = A [ k 1 k 2 ⋮ k n ] \begin{bmatrix}k_1'\\k_2'\\\vdots\\k_n'\end{bmatrix} = A \begin{bmatrix}k_1\\k_2\\\vdots\\k_n\end{bmatrix} k1k2kn =A k1k2kn
综上我们证明了,对任何线性空间,选定线性空间的基后,我们对线性空间中的元素进行线性变换或线性运算时,只需用线性变换的矩阵右乘元素的坐标“向量”,即可得到线性变换后的元素(向量)的新坐标。因此可以把一个线性空间中针对元素的线性变换(向量之间的映射),转化为元素坐标之间的变换,并通过矩阵来描述这个变换。故在后面的内容中着重研究矩阵和坐标“向量”。可以证明:选定一个基后,一个线性变换和代表它的矩阵一一对应;注意根据上面推导,实际上在这个变换的过程中,选择的描述线性空间 V V V 的原始的基 v 1 ⃗ , v 2 ⃗ . . . , v n ⃗ \vec{v_1},\vec{v_2}...,\vec{v_n} v1 ,v2 ...,vn 不变。接下来要研究的是,如果我们看见了一个线性变换,那么这个线性变换的矩阵 A A A 应该如何求?

线性变换矩阵的计算 ⭐

矩阵和坐标是绑定在一起的术语。根据上面的推导过程,一个变换后的向量的新的坐标应该等于矩阵 A A A 乘以该向量变换前的坐标,考虑所有基向量变换后新的坐标和变换前坐标的关系,可以列一个 n 元方程组,从而应该可以计算出变换矩阵。以二维空间中的旋转这一线性变换为例,第一步选定标准单位正交基描述这个二维线性空间,如果逆时针旋转 θ \theta θ 角,则两个基向量的坐标有如下变换:
[ 1 0 ] → [ c o s θ s i n θ ] , [ 0 1 ] → [ − s i n θ c o s θ ] \begin{bmatrix} 1 \\ 0 \end{bmatrix} \rightarrow \begin{bmatrix} cos\theta \\ sin\theta \end{bmatrix} \quad , \quad \begin{bmatrix} 0 \\ 1 \end{bmatrix} \rightarrow \begin{bmatrix} -sin\theta \\ cos\theta \end{bmatrix} [10][cosθsinθ],[01][sinθcosθ]
方程组的矩阵形式则为:
[ c o s θ − s i n θ s i n θ c o s θ ] = A [ 1 0 0 1 ] \begin{bmatrix} cos\theta & -sin\theta \\ sin\theta & cos\theta \end{bmatrix} =A \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} [cosθsinθsinθcosθ]=A[1001]

等式两边同时右乘 I − 1 I^{-1} I1,解得线性变换矩阵 A A A 为:
A = [ c o s θ − s i n θ s i n θ c o s θ ] A = \begin{bmatrix} cos\theta & -sin\theta \\ sin\theta & cos\theta \end{bmatrix} A=[cosθsinθsinθcosθ]
因此,我们就知道了线性变换作用下,一个线性变换后的向量新的坐标 x ′ = A x \boldsymbol{x'} = A\boldsymbol{x} x=Ax;而要想知道这个向量本身,只需用坐标和初始时选定且不变的描述这个二维线性空间的基(在这里是标准单位正交基)做线性组合即可.

线性变换及矩阵的值域和核

T T T 是线性空间 V n V^n Vn 上的一个线性变换:

  • C ( T ) = { T v ⃗   ∣   v ⃗ ∈ V n } C(T) = \{T\vec{v} \ |\ \vec{v} \in V^n\} C(T)={Tv   v Vn} 为线性变换 T T T 的值域;
  • N ( T ) = { v ⃗   ∣   T v ⃗ = 0 ⃗ ,   v ⃗ ∈ V n } N(T)=\{\vec{v} \ |\ T\vec{v}=\vec{0},\ \vec{v} \in V^n\} N(T)={v   Tv =0 , v Vn} 称为线性变换 T T T 的核;

因为选定基后,一个线性变换可以唯一地由一个矩阵来描述(反过来也成立,即一一对应),我们不妨用矩阵 A A A 来代替线性变换 T T T,那么我们称:

  • C ( A ) = { A x   ∣   x ∈ R n } C(A) = \{A\boldsymbol{x} \ |\ \boldsymbol{x} \in R^n\} C(A)={Ax  xRn} 为矩阵 A A A值域,也称为矩阵 A A A 的列空间(Column Space); d i m ( C ( A ) ) dim(C(A)) dim(C(A)) 也称为矩阵 A A A
  • N ( A ) = { x   ∣   A x = 0 ,   x ∈ R n } N(A)=\{\boldsymbol{x} \ |\ A\boldsymbol{x}=\boldsymbol{0},\ \boldsymbol{x} \in R^n\} N(A)={x  Ax=0, xRn} 称为矩阵 A A A,也称为矩阵 A A A 的零空间(Null Space); d i m ( N ( A ) ) dim(N(A)) dim(N(A)) 称为矩阵 A A A零度

关于列空间 C ( A ) C(A) C(A)、零空间 N ( A ) N(A) N(A) 下节也会详细涉及。线性代数基本定理:列空间 C ( A ) C(A) C(A) 的维数 + 零空间 N ( A ) N(A) N(A) 的维数 = 矩阵 A A A 的列数,即 d i m ( C ( A ) ) + d i m ( N ( A ) ) = n dim(C(A)) + dim(N(A)) = n dim(C(A))+dim(N(A))=n,注意到列空间的维数也就是矩阵 A A A 的秩 r ( A ) r(A) r(A)

线性变换中的相似矩阵

一个线性变换和代表它的矩阵一一对应吗?不是的,前提是首先要为这个线性空间选定一个基。因此,两个矩阵即使不同,但也有可能表示的是同一个线性变换!表示同一个线性变换的矩阵,我们称之为互为相似的矩阵。「相似矩阵」定义:设 A , B A,B A,B 是两个 n 阶矩阵,如果存在一个 n n n 阶非奇异(满秩)矩阵 P P P,使得 B = P − 1 A P B = P^{-1}AP B=P1AP,则称 A A A 相似于 B B B,记为 A ∼ B A\sim B AB.

🤣定理1 n n n 阶方阵 A A A B B B 相似的充要条件 A A A B B B 为同一线性变换在不同基下的矩阵。这一定理就是说,互为相似的矩阵,实际上代表同一个线性变换;只是由于选择描述线性空间的基不同,导致矩阵的形式不同🤣定理2:设同一个线性变换 T T T 在两个基 { v 1 ⃗ , v 2 ⃗ , ⋯   , v n ⃗ } \{\vec{v_1},\vec{v_2},\cdots,\vec{v_n}\} {v1 ,v2 ,,vn } { v 1 ′ ⃗ , v 2 ′ ⃗ , ⋯   , v n ′ ⃗ } \{\vec{v_1'},\vec{v_2'},\cdots,\vec{v_n'}\} {v1 ,v2 ,,vn } 的矩阵分别为 A A A B B B,且 [ v 1 ′ ⃗ , v 2 ′ ⃗ , ⋯   , v n ′ ⃗ ] = [ v 1 ⃗ , v 2 ⃗ , ⋯   , v n ⃗ ] C [\vec{v_1'},\vec{v_2'},\cdots,\vec{v_n'}] = [\vec{v_1},\vec{v_2},\cdots,\vec{v_n}]C [v1 ,v2 ,,vn ]=[v1 ,v2 ,,vn ]C ,则: B = C − 1 A C B = C^{-1}AC B=C1AC,即 A A A B B B 互为相似矩阵。证明如下:首先根据线性变换的矩阵表示,有
T [ v 1 ⃗ , v 2 ⃗ , ⋯   , v n ⃗ ] = [ v 1 ⃗ , v 2 ⃗ , ⋯   , v n ⃗ ] A T [ v 1 ′ ⃗ , v 2 ′ ⃗ , ⋯   , v n ′ ⃗ ] = [ v 1 ′ ⃗ , v 2 ′ ⃗ , ⋯   , v n ′ ⃗ ] B T[\vec{v_1},\vec{v_2},\cdots,\vec{v_n}] = [\vec{v_1},\vec{v_2},\cdots,\vec{v_n}]A \\ T[\vec{v_1'},\vec{v_2'},\cdots,\vec{v_n'}]=[\vec{v_1'},\vec{v_2'},\cdots,\vec{v_n'}]B \\ T[v1 ,v2 ,,vn ]=[v1 ,v2 ,,vn ]AT[v1 ,v2 ,,vn ]=[v1 ,v2 ,,vn ]B
结合条件,有:
T [ v 1 ′ ⃗ , v 2 ′ ⃗ , ⋯   , v n ′ ⃗ ] = [ v 1 ′ ⃗ , v 2 ′ ⃗ , ⋯   , v n ′ ⃗ ] B = [ v 1 ⃗ , v 2 ⃗ , ⋯   , v n ⃗ ] C B T [ v 1 ′ ⃗ , v 2 ′ ⃗ , ⋯   , v n ′ ⃗ ] = T [ v 1 ⃗ , v 2 ⃗ , ⋯   , v n ⃗ ] C = [ v 1 ⃗ , v 2 ⃗ , ⋯   , v n ⃗ ] A C T[\vec{v_1'},\vec{v_2'},\cdots,\vec{v_n'}] = [\vec{v_1'},\vec{v_2'},\cdots,\vec{v_n'}]B = [\vec{v_1},\vec{v_2},\cdots,\vec{v_n}]CB \\ T[\vec{v_1'},\vec{v_2'},\cdots,\vec{v_n'}] = T[\vec{v_1},\vec{v_2},\cdots,\vec{v_n}]C = [\vec{v_1},\vec{v_2},\cdots,\vec{v_n}]AC \\ T[v1 ,v2 ,,vn ]=[v1 ,v2 ,,vn ]B=[v1 ,v2 ,,vn ]CBT[v1 ,v2 ,,vn ]=T[v1 ,v2 ,,vn ]C=[v1 ,v2 ,,vn ]AC
所以:
C B = A C , 即  B = C − 1 A C CB = AC, 即\ B = C^{-1}AC CB=AC, B=C1AC


http://www.kler.cn/a/383673.html

相关文章:

  • C++之vector类的模拟实现
  • 初识Mysql数据库
  • 妙趣横生:Python 动画程序的实现与多样化拓展
  • leetcode:杨辉三角
  • hive切换表底层文件类型以及分隔符
  • 细说STM32单片机USART中断收发RTC实时时间并改善其鲁棒性的另一种方法
  • Linux系列-进程的状态
  • 动态规划理论基础和习题【力扣】【算法学习day.25】
  • apache poi 实现下拉框联动校验
  • MySQL表转移数据的三种方式
  • 【Python进阶】Python中的网络爬虫策略:高效数据抓取与解析
  • 数据库优化指南:如何将基本功能运用到极致?
  • Qt(程序打包)
  • ubuntu 异常 断电 日志 查看
  • 半导体设备行业,多单收购
  • 微信小程序大学生闲置物品交易平台+ssm(lw+演示+源码+运行)
  • 势不可挡 创新引领 | 生信科技SOLIDWORKS 2025新品发布会·苏州站精彩回顾
  • vue实现websocket实时短消息通知
  • 完全背包模板总结
  • 设计者模式之策略模式
  • 《构建一个具备从后端数据库获取数据并再前端显示的内容页面:前后端实现解析》
  • 集中管理用户名和密码,定期修改密码快捷方便
  • 参数跟丢了之JS生成器和包装器
  • PostgreSQL核心揭秘(三)-元组结构
  • 【科普】conda、virtualenv, venv分别是什么?它们之间有什么区别?
  • 讲讲RabbitMQ 性能优化