type
status
date
slug
summary
tags
category
icon
password
Property
如何判断一个操作是不是线性变换?
线性变换需满足以下两个要求:
变换需要同时满足加法和数乘不变的性质,将两个性质合成一个式子为:
例1,二维空间中的投影操作, ,它可以将某向量投影在一条特定直线上。如果将向量长度翻倍,则其投影也翻倍;两向量相加后做投影与两向量做投影再相加结果一致。所以投影操作是线性变换。
“坏”例1,二维空间的平移操作,即平面平移:
比如,上图中向量长度翻倍,再做平移,明显与向量平移后再翻倍的结果不一致。
有时我们也可以用一个简单的特例判断线性变换,检查 。零向量平移后结果并不为零。
所以平面平移操作并不是线性变换。
“坏”例2,求模运算, ,这显然不是线性变换,比如如果将向量翻倍则其模翻倍,但如果我将向量翻倍取负,则其模依然翻倍。所以
例2,旋转 操作, ,也就是将平面内一个向量映射为平面内另一个向量。检查可知,如果向量翻倍,则旋转后同样翻倍;两个向量先旋转后相加,与这两个向量先相加后旋转得到的结果一样。
所以从上面的例子我们知道,投影与旋转都是线性变换。
例3,矩阵乘以向量, ,这也是一个(一系列)线性变换,不同的矩阵代表不同的线性变换。根据矩阵的运算法则有 。比如取 ,作用于平面上的向量 ,会导致 的 分量不变,而 分量取反,也就是图像沿 轴翻转。
线性变换的核心,就是该变换使用的相应的矩阵。
比如需要做一个线性变换,将一个三维向量降至二维, ,则在 中, ,所以 应当是一个 矩阵。
如果希望知道线性变换 对整个输入空间 的影响,可以找到空间的一组基 ,检查 对每一个基的影响 ,由于输入空间中的任意向量都满足:
(1)
所以可以根据推出线性变换对空间内任意向量的影响,得到:
(2)
现在我们需要考虑,如何把一个与坐标无关的线性变换变成一个与坐标有关的矩阵呢?
在 式中, 就是向量 在基 上的坐标,比如分解向量
式子将向量 分解在一组标准正交基 上。当然,也可以选用矩阵的特征向量作为基向量,基的选择是多种多样的。
构造一个矩阵 用以表示线性变换 。需要两组基,一组用以表示输入向量,一组用以表示输出向量。令 为输入向量的基,这些向量来自 ; 作为输出向量的基,这些向量来自 。
用二维空间的投影矩阵作为例子:
从图中可以看到,设输入向量的基为 , 就在投影上,而 垂直于投影方向,输出向量的基为 ,而 。那么如果输入向量为 ,则输出向量为 ,也就是线性变换去掉了法线方向的分量,输入坐标为 ,输出坐标变为 。
找出这个矩阵并不困难, ,则有 。
本例中我们选取的基极为特殊,一个沿投影方向,另一个沿投影法线方向,其实这两个向量都是投影矩阵的特征向量,所以我们得到的线性变换矩阵是一个对角矩阵,这是一组很好的基。
所以,如果我们选取投影矩阵的特征向量作为基,则得到的线性变换矩阵将是一个包含投影矩阵特征值的对角矩阵。
继续这个例子,我们不再选取特征向量作为基,而使用标准基 ,我们继续使用相同的基作为输出空间的基,即 。此时投影矩阵为 ,这个矩阵明显没有上一个矩阵“好”,不过这个矩阵也是一个不错的对称矩阵。
总结通用的计算线性变换矩阵 的方法:
- 确定输入空间的基 ,确定输出空间的基
- 计算 ,求出的系数 就是矩阵 的第一列
- 继续计算 ,求出的系数 就是矩阵 的第二列
- 以此类推计算剩余向量直到 ;
- 最终得到矩阵
介绍一种不一样的线性变换, :
- 设输入为 ,基为 ;
- 则输出为导数: ,基为 ;
所以需要求一个从三维输入空间到二维输出空间的线性变换,目的是求导。求导运算其实是线性变换,因此我们只要知道少量函数的求导法则(如 ),就能求出它们的线性组合的导数。
有 ,从输入输出的空间维数可知, 是一个 矩阵, 。
最后,矩阵的逆相当于对应线性变换的逆运算,矩阵的乘积相当于线性变换的乘积,实际上矩阵乘法也源于线性变换。