线性变换的核心是映射到 0 的向量集。这是一个简单的想法,你会在每一本线性代数教科书中找到这个想法。
cokernel是内核的对偶,但在教科书中很少提及。有时存在 cokernel 的想法,但没有给出这个名称。
自由度和约束
考虑内核和辅助内核的一种方法是,内核代表自由度,辅助内核代表约束。
假设您有一个线性变换T : V → W并且您想要求解方程Tx = b 。如果x是一个解且Tk = 0,则x + k也是一个解。您可以自由地将T的内核元素添加到解决方案中 [1]。
如果c是W的元素,但不在T的图像中,则根据定义, Tx = c无解。为了使Tx = b有解,向量b在W的子空间中不得具有与T的图像互补的任何分量。这个互补的空间就是 cokernel。如果Tx = b想要有解,则向量b在 cokernel 中不得有任何分量。
如果W是内积空间,我们可以将 cokernel 定义为T的图像的正交补。
核心定义
您还可能会看到定义为商空间W / image( T ) 的 cokernel。这与T的图像的补集不是同一个空间。前者是W的子集,后者是一个新空间。然而,这两个空间是同构的。这是一个小小的伏笔:cokernel 最一般的想法只支持同构。
您还可能会看到定义为T伴随的核的 cokernel。这表明“cokernel”这个名称的来源:运算符的对偶内核是运算符的对偶内核。
内核和焦内核尺寸
我上面提到了定义 cokernel 有多种方法。它们并不都定义相同的空间,但它们定义同构空间。由于同构空间具有相同的维度,因此所有 cokernel 的定义都给出了具有相同维度的空间。
有几个与核和焦核的尺寸相关的大定理。这些通常包含在线性代数教科书中,即使是那些不使用术语“cokernel”的教科书。例如,可以在不明确提及 cokernel 的情况下陈述秩无效定理,但它等效于以下内容。
对于线性算子T : V → W ,
暗淡V – 暗淡W = 暗淡ker T – 暗淡焦化器T 。
当V或W是有限维时,两边都有明确的定义。否则,当左侧未定义时,右侧可能被定义。例如,令V和W都是整个复平面上的解析函数空间,令T为求二阶导数的算子。那么左边是 ∞ − ∞ 但右边是 2:核是az + b形式的所有函数,并且 cokernel 是 0,因为每个解析函数都有一个反导数。
顺便说一下,右侧是线性算子索引的定义。
充分的通用性
到目前为止,这篇文章已经在线性代数的背景下讨论了核和辅核。但是我们可以在结构较少的上下文(例如组)或结构较多(例如 Sobolev 空间)的上下文中定义内核和辅助内核。最一般的定义是范畴论。
范畴论使得 cokernel 中的“co”变得显而易见。 cokernel will 是 kernel 的对偶,就像类别中的每个事物都与其 co- 事物相关一样:只需转动所有箭头即可。这使得 cokernel 的定义变得更容易,但也使得 kernel 的定义变得更困难。
我们不能简单地将内核定义为“映射到 0 的东西”,因为类别无法查看对象内部。我们只能根据对象如何与其类别中的其他对象交互来谈论对象。没有直接的方法来定义 0,更不用说映射到 0 的东西了。但是我们可以定义一些行为类似于 0(初始对象)的东西,以及行为类似于映射到 0(零态射)的东西,如果我们正在工作的类别包含这样的东西;并非所有类别都如此。
有关所有繁琐的详细信息,请参阅有关kernel和cokernel的 nLab 文章。
相关帖子
[1] 与其称之为核自由度,不如称之为核自由度的维数更有意义。
Kernel 和 Cokernel帖子首次出现在John D. Cook上。
原文: https://www.johndcook.com/blog/2025/04/19/kernel-and-cokernel/