Definition. 对偶数 [dual-number]

$\gdef\R{\mathbf{R}}$ $\gdef\C{\mathbf{C}}$

一种通俗的讲法是, 认为对偶数 $R[x]/(x^2)$ 可以作为复数 $\R[x]/(x^2+1)$ 的类比. 如果有读者能轻率地暂时忽略 $R[x]/(x^2)$ 这种结构的存在性, 或者说接受了下面的 $d$ 的定义

$$ \exists ~ d \in R\smallsetminus\{0\}, ~ d^2 = 0 $$

不能接受也很正常, 因为这轻易就会导致某个经典逻辑中的 矛盾. 相比之下满足 $x^2 = -1$ 的 $x$ 对于大众而言要更容易接受的多, 甚至对于三次方程是 必须品. 为此我们需要下面的准备工作.

无论是单纯接受这个 公理 还是认可该公理存在的舞台 $\mathcal{E}$, 其实都会导致完全相同的结果, 那就是 $\mathcal{E}$ 当中一般函数的性质发生了变化, 让所有的函数都变得光滑. 与之相对的, 这样的好性质所要求的代价是, $\mathcal{E}$ 当中不能使用经典逻辑中的选择公理、排中律、反证法等命题.

Backlinks

Exegesis. Complex step 微分法 [complex-step]

$\gdef\quads#1{\quad #1 \quad}$ $\gdef\spaces#1{~ #1 ~}$

Mathworks 的创始人 Cleve Moler 约 60 年 1 前提出了借用虚数单位 $i$ 的数值微分, 相关文献称为 complex step 微分法 2. 考虑光滑函数 $f(x)$, 其在 $x=a$ 处可表为关于 $X$ 的 Taylor 级数 3 $f(a) + f'(a)(X-a) + \text{etc.}$, 注意

$$ f(a+i h) \spaces= f(a) + i h f'(a) - \frac{h^2}{2!}f''(a) - \frac{ih^3}{3!}f'''(a) + \cdots $$

这个其实就是将 Taylor 级数的每一项完全展开, 在 后续 的计算中也会继续用到. 如此便有 $$ \frac{\partial f}{\partial x} \spaces= \frac{\Im f(x+ih)}{h} + \mathcal{O}(h^2) \quads\implies \frac{\partial f}{\partial x} \quads\approx \frac{\Im f(x+ih)}{h} $$

这个方法最初被设计用于处理数值微分问题, 但稍加思考就能发现, 该过程也适用于符号微分. 与前一个问题所改进的结果的精度不同, 用于 符号微分 时, 所取得的优势是更精简的中间表达式和非递归的计算过程.

1

即 1967 年. 不过这个名字要等到 1998 年, William Squire 和 George Trapp 才正式提出.

2

按方法的内容来说, “complex step 微分” 可以翻译为 “复步微分”.

3

习惯上 会混淆 $x$ 与 $X$, 这里做出区分.

Exegesis. 复步微分法 对数值微分误差的修正 [synthetic-differential-000C]

$\gdef\C{\mathbf{C}}$ $\gdef\quads#1{\quad #1 \quad}$ $\gdef\eqq{\quads=}$

选取同样的 $h=10^{-5}$, 以下计算表明 Moler 的方法 相比 此处 基于有限差分的数值微分方法能够很好的避免精度损失.

$$ \frac{\Im(1 + 10^{-5}i)^{2}}{10^{-5}} \eqq \frac{\Im(\square + 2 \times 10^{- 5}i)}{10^{- 5}} \eqq 2 $$

实际上此处 $h$ 的选取, 只要其非零, 从而带有 $i$ 的项不消失, 就不会影响到最终的结果. 换言之, 这个方法从根本上来说, 是无关于 $h \in \R\smallsetminus\{0\}$ 和 $i$ 的, 只是在数值计算时借由复数算术和复函数值可以免去一些幂零结构的讨论. 一旦意识到这一点, 我们便可以将 复步微分法

$$ \frac{\partial f}{\partial x} \quads\approx \frac{\Im f(x+ih)}{h} $$

中的近似 “$\approx$” 修正为严格等于 “$=$”, 这只需要将 $\{z \in \C : z^2 = -1\}$ 替换为 $D = \{x \in R : x^2 = 0\}$, 问题就来到了如何构造这样的 $R$ 使得 $D$ 中有非零的元素, 这样的结构实际上会 动摇 经典逻辑中对于排中律的看法.

Exegesis. 矩阵表示 [synthetic-differential-000D]

$\gdef\quads#1{\quad #1 \quad}$ $\gdef\str#1{{\footnotesize #1}}$ $\gdef\C{\mathbf{C}}$ $\gdef\spaces#1{~ #1 ~}$

这样一来, 我们所说的 “将近似修正为严格等于” 就可以精确表示为

$$ \frac{\partial f}{\partial x} \quads= f(x+\varepsilon) ~ \str{中} ~ \varepsilon ~ \str{项的系数} $$

复步微分法 的来源是完全解析的, 但其得到的微分方法却能代数地刻画. 正如我们可以考虑复数的 $z = a+b\sqrt{-1} \in \C$ 矩阵表示

$$ A \spaces= \begin{pmatrix} a & -b \\ b & ~~~a \\ \end{pmatrix} ,\quad \det A \spaces= (a+b\sqrt{-1})(a-b\sqrt{-1}) $$

我们也可以构造 对偶数 $a + b \varepsilon \in R$ 的矩阵表示, 并自动得到微分运算的加法和乘法规则, 这可以被简单地视为 Moler 方法的矩阵版本.

$$ A \spaces= \begin{pmatrix} a & a' \\ 0 & a \\ \end{pmatrix} ,\quad \det A \spaces= (a+b\varepsilon)(a-b\varepsilon) $$