线性变换

接上一篇线性变换(中)

上一篇博客中我写了一些常见的线性变换。实际上,我们可以用一个矩阵AA来表示线性变换TT

根据线性变换的性质,T(a1v1+a2v2++anvn)=a1T(v1)+a2T(v2)++anT(vn)T(a_1v_1+a_2v_2+\cdots+a_nv_n)=a_1T(v_1)+a_2T(v_2)+\cdots+a_nT(v_n)

你连矩阵AA都不用知道,只需要知道向量v1v_1vnv_n线性变换后的值,就可以计算出任意向量vv经过线性变换后的值。也就是,你可以自己定义线性变换。

就以平面向量为例,设e1=[10],e2=[01]e_1=\begin{bmatrix}1\\0\end{bmatrix},e_2=\begin{bmatrix}0\\1\end{bmatrix}

假如我已知T(e1)=[572],T(e2)=[380]T(e_1)=\begin{bmatrix}5\\-7\\2\end{bmatrix},T(e_2)=\begin{bmatrix}-3\\8\\0\end{bmatrix}

因为x=[x1x2]=[x10]+[0x2]=x1e1+x2e2x=\begin{bmatrix}x_1\\x_2\end{bmatrix}=\begin{bmatrix}x_1\\0\end{bmatrix}+\begin{bmatrix}0\\x_2\end{bmatrix}=x_1e_1+x_2e_2

所以T(x)=x1T(e1)+x2T(e2)=[5x13x27x1+8x22x1+0x2]T(x)=x_1T(e_1)+x_2T(e_2)=\begin{bmatrix}5x_1-3x_2\\-7x_1+8x_2\\2x_1+0x_2\end{bmatrix}

其实,根据变换TT,线性变换的矩阵也可以求出来。

我们举一个更一般的例子:设eje_jnn阶单位矩阵的第jj列。

已知T(ej)=vjT(e_j)=v_j,是一个mm维向量

那么对于任意nn维向量x=[x1x2xn]x=\begin{bmatrix}x_1\\x_2\\\vdots\\x_n\end{bmatrix}

T(x)=x1T(e1)+x2T(e2)++xnT(en)T(x)=x_1T(e_1)+x_2T(e_2)+\cdots+x_nT(e_n)

=[v1v2vn][x1x2xn]=\begin{bmatrix}v_1&v_2&\cdots&v_n\end{bmatrix}\begin{bmatrix}x_1\\x_2\\\vdots\\x_n\end{bmatrix}

=[v1v2vn]x=\begin{bmatrix}v_1&v_2&\cdots&v_n\end{bmatrix}x

而且,[v1v2vn]\begin{bmatrix}v_1&v_2&\cdots&v_n\end{bmatrix}正是一个m×nm\times n的矩阵。所以,[v1v2vn]\begin{bmatrix}v_1&v_2&\cdots&v_n\end{bmatrix}就是我们需要的矩阵AA

利用这个方法,可以求出上一章中的所有线性变换的矩阵。

  1. 拉伸/压缩变换

e1=[10],e2=[01]e_1=\begin{bmatrix}1\\0\end{bmatrix},e_2=\begin{bmatrix}0\\1\end{bmatrix}

那么T(e1)=v1=[k0],T(e2)=v2=[0k]T(e_1)=v_1=\begin{bmatrix}k\\0\end{bmatrix},T(e_2)=v_2=\begin{bmatrix}0\\k\end{bmatrix}

所以A=[v1v2]=[k00k]A=\begin{bmatrix}v_1&v_2\end{bmatrix}=\begin{bmatrix}k&0\\0&k\end{bmatrix}

  1. 对称变换

我就以关于xx轴对称来举例。

T(e1)=[10],T(e2)=[01]T(e_1)=\begin{bmatrix}1\\0\end{bmatrix},T(e_2)=\begin{bmatrix}0\\-1\end{bmatrix}

所以A=[T(e1)T(e2)]=[1001]A=\begin{bmatrix}T(e_1)&T(e_2)\end{bmatrix}=\begin{bmatrix}1&0\\0&-1\end{bmatrix}

  1. 旋转变换

首先,逆时针旋转π2\dfrac\pi2弧度后

T(e1)=[01],T(e2)=[10]T(e_1)=\begin{bmatrix}0\\1\end{bmatrix},T(e_2)=\begin{bmatrix}-1\\0\end{bmatrix}

所以A=[0110]A=\begin{bmatrix}0&-1\\1&0\end{bmatrix}

那旋转任意角度怎么计算呢?

假设向量逆时针旋转θ\theta弧度

那么T(e1)=[cosθsinθ]T(e_1)=\begin{bmatrix}\cos\theta\\\sin\theta\end{bmatrix}

T(e2)=[sinθcosθ]T(e_2)=\begin{bmatrix}-\sin\theta\\\cos\theta\end{bmatrix}

所以,矩阵A=[cosθsinθsinθcosθ]A=\begin{bmatrix}\cos\theta&-\sin\theta\\\sin\theta&\cos\theta\end{bmatrix}

所以,将一个向量逆时针旋转任意角θ\theta,就是乘矩阵[cosθsinθsinθcosθ]\begin{bmatrix}\cos\theta&-\sin\theta\\\sin\theta&\cos\theta\end{bmatrix}

这个矩阵你基本上是不可能一眼就看出来的。

  1. 剪切变换

T(e1)=[10],T(e2)=[k1]T(e_1)=\begin{bmatrix}1\\0\end{bmatrix},T(e_2)=\begin{bmatrix}k\\1\end{bmatrix}(见下图)

【线性代数6】线性变换(下)

所以矩阵A=[1k01]A=\begin{bmatrix}1&k\\0&1\end{bmatrix}

同理,垂直剪切变换就是A=[10k1]A=\begin{bmatrix}1&0\\k&1\end{bmatrix}

自此,特殊的线性变换问题就解决了。

相关文章:

  • 2021-12-10
  • 2021-10-28
  • 2021-12-04
  • 2021-11-04
  • 2021-11-04
猜你喜欢
  • 2021-10-13
  • 2021-05-28
  • 2021-09-29
  • 2021-10-10
  • 2022-01-18
  • 2021-04-19
  • 2022-01-03
相关资源
相似解决方案