仿射变换
仿射变换 (Affine transformation),又称为仿射映射,是指在几何中,对一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间 1
有向量 x,以及有线性变换矩阵 A,以及平移向量 b。则有仿射变换:
y=Ax+b
假设该映射是一个 Rn→Rm 的映射,则其中的矩阵 A 是一个 m×n 的矩阵,b 是一个 m 维向量。
仿射函数
若上面的映射是一个 Rn→R 的映射,则我们称 y=Ax+b 是一个仿射函数,形如:
y=[a1⋯an]×x1⋮xn+b
仿射变换保留了:
- 点之间的
共线性
:在同一条直线上的三个或更多的点(称为共线点)在变换后依然在同一条直线上(共线);
- 直线的
平行性
:两条或以上的平行直线,在变换后依然平行;
- 集合的
凸性
:凸集合变换后依然是凸集合。并且,最初的 极值点
被映射到变换后的极值点集;
- 平行线段的长度的比例:两条由点 p1,p2,p3,p4 定义的平行线段,p1p2 与 p3p4 的长度的比例等于 f(p1)f(p2) 与 f(p3)f(p4) 的长度的比例;
仿射变换为 可逆
当且仅当 A 为可逆的。
如果函数 f:Rn→Rm 是仿射映射,对于任意的 x,y∈Rn,α,β∈R 且 α+β=1,存在
f(αx+βy)=αf(x)+βf(y)这里突然要求 α+β=1,我觉得不太自然。
关于
α+β=1 的解释
我们知道线性系统是具有 可加性
,齐次性
的,即
可加性L(v+w)齐次性L(nv)=L(v)+L(w)=nL(v)可是对于平移运算并不满足上述两个性质
f(v+w)(v+w)+b=f(v)v+b+f(w)w+bf(αx)αx+b=αf(x)α(x+b)所以要求对输入组合进行加权,而权和为 1
f(αv+βw)αv+βw+b=α(f(v))α(v+b)+βf(w)β(w+b)=αv+βw+(α+β)b
^beaa3f
线性和仿射变换的区别
可能有地方将类似于 y=kx+b 的式子也称为线性函数,可是从上面可知,该式子称其是仿射函数更为准确,而严格的线性应为 y=kx。
而区别是过原点与否的区别:

在 MindFlow 实习中曾经看到过对于 单纯形的采样,即在 R2 上的三角形皆可以由仿射变换来达成,所有的平行四边形也可以,但是一般四边形不可以。

可以构建一个仿射变换,使得可以转换。
我们的目的是寻找这样的一个映射,使得左边可以转换到右边,即:
[xy]↦A[xy]+b
显然,先讨论平移量更为方便,即为变换后三角形中任意一点坐标,这里取 (x1,y1)

然后变基,将基向量转换为三角形两条边。
即:
[x2−x1y2−y1x3−x1y3−y1]
于是可得到仿射映射:
[xy]↦[x2−x1y2−y1x3−x1y3−y1][xy]+[x1x1]