Advertisement

仿射变换(affine transformation)

阅读量:

仿射变换(affine transformation)

多面体编译(polyhedral compilation)会使用到仿射变换(affine transformation)的知识,这里介绍下仿射变换的数学原理。

线性变换:

对于变换 ff 是一个线性变换,则对于任意向量 w⃗\vec{w} 和 v⃗\vec{v} 满足:

  1. f(w⃗+v⃗)=f(w⃗)+f(v⃗)f(\vec{w}+\vec{v})=f(\vec{w})+f(\vec{v})
  2. f(kv⃗)=kf(v⃗)f(k\vec{v})=kf(\vec{v})

其中 kk 为标量。

例如,f(v⃗)=<3v1−2v2,4v2>f(\vec{v})=<3v_1-2v_2, 4v_2> 是一个线性变换,而 f(v⃗)=<3v1−2v2,4v1v2>f(\vec{v})=<3v_1-2v_2, 4v_1v_2> 则不是线性变换。

线性变换还可以写成一个矩阵乘以输入向量的形式。例如:f(v⃗)=<3v1−2v2,4v2>f(\vec{v})=<3v_1-2v_2, 4v_2> 可以写成:
v_2

仿射变换:

非正式地,一个仿射变换就是一个线性变换加一个常量。

正式地,一个仿射变换 ff 可以表示为:f(v⃗)=Mv⃗+c⃗f(\vec{v})=M\vec{v}+\vec{c}。其中,MM 是一个线性变换的矩阵,c⃗\vec{c} 是一个常量向量。

例如,下面这是一个仿射变换:
2

可见,线性变换肯定是一个仿射变换,而仿射变换只在其常量向量阵为零时才为线性变换。

全部评论 (0)

还没有任何评论哟~