大家好,又见面了,我是你们的朋友全栈君。
I. 映射(Mapping)
1. 单射(Injective)
函数f 是单射当且仅当若f(x) = f(y) 则 x = y。
例子: f(x) = x+5 从实数集\(R\)到\(R\)是个单射函数。
这个函数很容易被还原:f(3) = 8,即 已知 8 可以返回 3
2. 满射(Surjective)
函数 f(从集 A 到集 B)是满射当且仅当在 B 中的每个 y 存在至少一个在 A 中的 x 满足 f(x) = y, 就是说, f 是满射当且仅当 f(A) = B。
值域里的每个元素都至少有一个定义域元素与之对应。
例子:函数 f(x) = 2x 从自然数集\(N\)到非负偶数是个满射函数。
但 f(x) = 2x 从自然数集\(N\)到\(N\)不是满射,因为没有一个自然数\(N\)可以被这个函数映射到 3。
3. 双射(Bijective)
函数 f(从 A 集到 B 集)是双射,若每个 B 中的 y 都有唯一的一个(而没有另外一个) A 集中的 x 满足 f(x) = y
或者说:当单射和满射都成立时,f 是双射。
例子: 函数 \(f(x) = x^2\) 从正实数到正实数是单射,也是满射,所以它是双射。
但从实数集\(R\)就不是,因为f(2)=4,并且f(-2)=4
II. 同态&同构
对于向量空间\(V,W\),若有映射\(\Phi :V→W\)满足如下条件,则我们称\(\Phi\)为线性映射(linear mapping)(或者向量空间同态(vector space Homomorphism) 或 linear transform):
\[\forall{x,y}∈V, \lambda,\psi∈R:\Phi(\lambda x+\psi y)=\lambda \Phi(x) + \psi \Phi(y)\]
基于上面已经介绍了的映射的概念,我们现在可以更好地直观理解同态和同构的定义,它们分别如下:
- \(\Phi:V→W \,\,\, linear\): 同态 (Homomorphism)
- \(\Phi:V→W \,\,\, linear \,\, and \,\, injective\): 单一同态 (Monomorphism)
- \(\Phi:V→W \,\,\, linear \,\, and \,\, surjective\): 满同态 (Surjective Homomorphism)
- \(\Phi:V→W \,\,\, linear \,\, and \,\, bijective\): 同构 (Isomorphism)
- \(\Phi:V→V \,\,\, linear\): 自同态 (Endomorphism)
- \(\Phi:V→V \,\,\, linear \,\, and \,\, injective\): 单一自同态 (Monomorphic Endomorphism)
- \(\Phi:V→V \,\,\, linear \,\, and \,\, surjective\): 满自同态 (Surjective Endomorphism)
- \(\Phi:V→V \,\,\, linear \,\, and \,\, bijective\): 自同构 (Automorphism)
定理:两个维度是有限的向量空间\(V,W\),当且仅当二者的维度相同,即\(dim(V)=dim(W)\),\(V,W\)二者同构。
假设现在有三个向量空间分别为\(V,W,X\),那么它们有如下性质:
- 如果有线性映射\(\Phi:V→W\)和\(\Psi:W→X\),那么映射\(\Phi◦\Psi:V→X\)也是线性映射;
- 如果\(\Phi:V→W\)是同构(isomorphsim),那么\(\Phi^{-1}:V→W\)也是同构;
- 如果\(\Phi:V→W,\Psi:V→W\)都是线性映射,那么\(\Psi+\Phi\)和\(\lambda\Phi,\lambda∈R\)也都是线性的。
1. 线性映射的矩阵表示
坐标(Coordinates) 的定义:
假设向量空间\(V\)的顺序基(ordered bases)为\(B=(b_1,…,b_n)\),那么\(V\)中任意一个向量\(x\)可由顺序基线性组合表示,即
\(x=α_1b_1+…+α_nb_n\)\(。此时矢量\)\(\alpha=[α_1,…,α_n]^{T}∈R^n\)则是\(x\)在向量空间\(V\)上以\(B\)为基的坐标。
变换矩阵(Transform Matrix) 的定义:
假设向量空间\(V∈R^n,W∈R^m\)的顺序基分别为\(B=(b_1,…,b_n),C=(c_1,…,c_m)\)。对于映射\(\Psi:V→W\),有
\[\Phi(b_j)=α_{1j}c_1+…+α_{mj}c_m=\sum_{i=1}^mα_{ij}c_i\]
则我们称\(A_{\Phi}(i,j)=α_{ij}\)为映射\(\Phi\)的变换矩阵。
所以向量空间\(V\)中的坐标矢量\(x\)与\(W\)中的坐标矢量\(y\)有如下变换关系:\(y=A_{\Phi}x\)
2. 基变换(Basis Change)
定义:
假设向量空间\(V\)的顺序基有两个,分别是\(B=(b_1,…,b_n),\tilde{B}=(\tilde{b_1},…,\tilde{b_n})\),向量空间\(W\)也有两个顺序基,分别为\(C=(c_1,…,c_n),\tilde{C}=(\tilde{c_1},…,\tilde{c_n})\)。\(A_{\Phi}\)是映射\(\Phi:V→W\)关于顺序基\(B,C\)的变换矩阵,\(\tilde{A_{\Phi}}\)是映射\(\Phi:V→W\)关于顺序基\(\tilde{B},\tilde{C}\)的变换矩阵,两个变换矩阵的关系如下:
\[\tilde{A_{\Phi}}$=T^{-1}A_{\Phi}S\]
其中\(S∈R^{n×n}\)表示向量空间\(V\)从基\(\tilde{B}\)到基\(B\)的恒等映射\(id_V\)的变换矩阵,\(T∈R^{m×m}\)表示向量空间\(W\)基于基\(\tilde{C}\)到基\(C\)的恒等映射\(id_W\)的变换矩阵,
3. 核(kernel)与象(Image)
先看定义:
-
核(Kernel/null space):
假设有映射\(\Phi:V→W\),核(kernel)为:
\[ker(\Phi)=\Phi^{-1}(0_w)=\{v∈V:\Phi(v)=0_w\}\]
什么意思呢?就是说经过映射后,\(V\)中的一些值被映射到\(W\)的零点(如下图示),而\(V\)这些值组成的集合(即左边橘黄色部分)就称为kernel。
- 象(Image/Range)
\[Im(\Phi)=\Phi(V)=\{w∈W|\exists v∈V:\Phi(v)=w\}\]
怎么理解象呢?就是说整个向量空间\(V\)在经过映射后在向量空间\(W\)上得到的集合,也就是右边黄色部分。
为方便理解,可以把kenel粗略地理解成定义域,Image理解成值域。
另外需要注意的有如下推论:
- 始终有\(\Phi(0_V)=0_W\),即\(0_V∈ker(\Phi)\)
- \(Im(\Phi),Ker(\Phi)\)分别是\(W,V\)的子空间
- 当且仅当\(Ker(\Phi)=\{0\}\)时,\(\Phi\)是单射。
Rank-Nullity Theorem(秩-零定理):对于映射\(\Phi:V→W\)始终满足如下等式:
\[dim(Ker(\Phi))+dim(Im(\Phi))=dim(V)\]
如果用matrix来说的话,假设A是一个n*n的matrix,则:\(rank(A)+nullity(A)=n\)
再通俗点说就是对A进行初等变换后得到的echelon form(行阶梯形式),不为0的行数加上全部为0的行数等于这个矩阵的行数。当然因为一般的matrix的row rank和column rank相等,所以变成column echelon form之后用列来计数也是一样的。
III. 仿射空间(Affine Spaces)
前面提到的映射都是经过零点的,下面介绍的仿射空间是偏离原点的空间。
1. 仿射子空间(Affine Subspaces)
定义:
假设\(V\)为向量空间,\(x_0∈V\), \(U\subseteq{V}\)为子空间,则子集
\[ \begin{align} L&=x_0+U=\{x_0+u: u∈U\} \notag \\ &=\{v∈V|\exists{u∈U}:v=x_0+u\}\subseteq{V} \notag \end{align} \]
称为向量空间\(V\)的 仿射子空间(affine subspace) 或 linear manifold。\(U\)称为Direction (Space),\(x_0\)称为support point
2. 仿射映射(Affine Mappings)
参考资料
MARSGGBO♥原创
2018-12-16
转载于:https://www.cnblogs.com/marsggbo/p/10129075.html
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/142048.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...