笔者是一名软件工程专硕的研一小菜鸡,若是文章中出现纰漏,请不吝赐教。
本篇笔记仅供交流学习,如需转载请注明出处。
一、线性变换的定义
百度百科关于线性变换的定义如下:
线性映射( linear mapping)是从一个向量空间V到另一个向量空间W的映射且保持加法运算和数量乘法运算,而线性变换(linear transformation)是线性空间V到其自身的线性映射。
这里的意思是线性映射是由向量空间 V → W V \rightarrow W V→W 的映射,而线性变换是线性映射的一个特例,是由线性空间 V V V到其自身的映射。
维基百科关于线性映射的定义如下:
In mathematics, and more specifically in linear algebra, a linear map (also called a linear mapping, linear transformation, vector space homomorphism, or in some contexts linear function) is a mapping V → W \displaystyle V\to W V→W between two vector spaces that preserves the operations of vector addition and scalar multiplication.
大体翻译一下:在数学中,更具体地说是在线性代数中,线性映射(也被称为线性变换、向量空间同态,或者在某些情况下也被叫做线性函数)是一种 V → W \displaystyle V\to W V→W的映射,这种映射保留了向量加法和标量乘法运算。
从维基百科的定义来看,可以不用区分线性映射和线性变换。
二、如何判断是否为线性变换
你可以将线性变换理解为一个特殊的函数,这个可以使得 V → W \displaystyle V\to W V→W,并且满足以下条件:
T ( x + y ) = T ( x ) + T ( y ) T ( a x ) = a T ( x ) (1) \begin{array}{l} \mathbf{T}(\mathbf{x}+\mathbf{y})=\mathbf{T}(\mathbf{x})+\mathbf{T}(\mathbf{y}) \\ \mathbf{T}(a \mathbf{x})=a \mathbf{T}(\mathbf{x}) \end{array}\tag{1} T(x+y)=T(x)+T(y)T(ax)=aT(x)(1)
其中 x , y ∈ V x,y \in V x,y∈V, a ∈ R a \in R a∈R
识别给定函数 f ( x ) f(x) f(x)是否为线性变换非常简单,只需要查看 f ( x ) f(x) f(x)中的每一项是否都是 x x x与一个数的乘积,如果是, f f f则是线性变换。
举个例子:
f ( x , y , z ) = ( 3 x − y , 3 z , 0 , z − 2 x ) (2) \mathbf{f}(x, y, z)=(3 x-y, 3 z, 0, z-2 x)\tag{2} f(x,y,z)=(3x−y,3z,0,z−2x)(2)
便是一个线性变换,而
g ( x , y , z ) = ( 3 x − y , 3 z + 2 , 0 , z − 2 x ) h ( x , y , z ) = ( 3 x − y , 3 x z , 0 , z − 2 x ) (3) \mathbf{g}(x, y, z)=(3 x-y, 3 z+2,0, z-2 x) \\ \mathbf{h}(x, y, z)=(3 x-y, 3 x z, 0, z-2 x) \tag{3} g(x,y,z)=(3x−y,3z+2,0,z−2x)h(x,y,z)=(3x−y,3xz,0,z−2x)(3)
这两个都不是线性变换。因为在函数 g g g中,第二个分量为 3 z + 2 3z+2 3z+2, 2 2 2是一个常数,并不包含输入向量 ( x , y , z ) (x,y,z) (x,y,z)中的任何分量,也可以换种解释方法,按照 ( 1 ) (1) (1)中的第二个公式,应有 T ( 0 ) = 0 \mathbf{T}(\mathbf{0})=\mathbf{0} T(0)=0,而 g ( 0 , 0 , 0 ) = ( 0 , 2 , 0 , 0 ) g(0,0,0)=(0,2,0,0) g(0,0,0)=(0,2,0,0)与上式矛盾。在函数 h h h中,很明显含有一个非线性分量 3 x z 3xz 3xz,因此也不是一个线性变换。
三、线性变换的直观解释
本篇文章最重要的部分终于来了,废话不多说,直接进入正题。
变换本质上是函数,其接受一个输入,然后输出对应的结果。之所以叫变换,是因为从几何的角度我们可以用运动的方式来理解变换,如旋转、伸缩、投影或几者叠加等操作。下面通过一个动图来演示一下。
那如何理解线性呢?其在几何直观上必须满足以下条件:
- 变换前是直线,变换后依然是直线
- 原点保持固定不动
也就是说,你应该把线性变换看作是“保持坐标网格平行并等距分布”的变换。
1、一点不太直观的东西
以前上线性代数课的时候老师肯定告诉过你,可以将下面这个式子
f ( x , y ) = ( 3 x − y , 2 x ) (4) \mathbf{f}(x, y)=(3 x-y, 2 x) \tag{4} f(x,