返回 2026-05-20
⚙️ 工程

近似马尔可夫方程Approximating Markov’s equation

johndcook.com·2026-05-19

文章探讨了马尔可夫数(满足 x² + y² + z² = 3xyz 的整数解)的研究方法,重点介绍了唐·扎吉尔(Don Zagier)通过引入近似方程 x² + y² + z² = 3xyz + 4/9 来分析马尔可夫数的策略。该方程等价于函数 f(t) = arccosh(3t/2) 满足 f(x) + f(y) = f(z),揭示了马尔可夫数与双曲余弦反函数之间的深层联系。作者指出这一变换简化了对马尔可夫数分布的理解,并强调其数学构造的精妙性。

John

马尔可夫数是满足以下方程的整数解:

x² + y² + z² = 3xyz。

关于马尔可夫数的维基百科文章提到,唐·扎吉尔通过研究近似方程

x² + y² + z² = 3xyz + 4/9

来研究马尔可夫数,该方程等价于

f(x) + f(y) = f(z)

其中 f(t) 定义为 arccosh(3t/2)。我不太清楚这两个方程为何等价,因此写下这篇帖子来说明它们确实是等价的。

示例

在证明扎吉尔的两个方程等价之前,我们先看一个例子,说明他的第二个方程的解如何逼近马尔可夫方程的解。

以下代码验证 (5, 13, 194) 是马尔可夫方程的一个解。

x, y, z = 5, 13, 194
assert(x**2 + y**2 + z**2 == 3*x*y*z)

沿用上述的 x 和 y,我们来计算扎吉尔第二个方程中的 z 值,看它是否接近上面的 z。

from math import cosh, acosh

f = lambda t: acosh(3*t/2)
g = lambda t: cosh(t)*2/3
z = g(f(x) + f(y))
print(z)

得到 z = 194.0023,这与上面马尔可夫三元组中的 z 值非常接近。

应用奥斯本法则(Osborn’s rule)

现在假设

f(x) + f(y) = f(z)

展开后为

arccosh(3x/2) + arccosh(3y/2) = arccosh(3z/2)。

两边同时取 cosh 似乎是合理的。那么,cosh 的和是否有恒等式?也许你记得余弦和的公式:

cos(a + b) = cos(a)cos(b) − sin(a)sin(b)。

而奥斯本法则指出对应的双曲恒等式为

cosh(a + b) = cosh(a)cosh(b) − sinh(a)sinh(b)。

奥斯本法则还说,与熟知的恒等式

sin²(a) + cos²(a) = 1

对应的双曲恒等式是

sinh²(a) = cosh²(a) − 1。

利用这两个双曲恒等式,我们可以推导出 [1]

cosh(arccosh(a) + arccosh(b)) = ab + √(a² − 1)√(b² − 1)。

详细推导

上面推导出的恒等式正是我们化简为常规代数运算所需的工具。

arccosh(3x/2) + arccosh(3y/2) = arccosh(3z/2)

(3x/2)(3y/2) + √((3x/2)² − 1)√((3y/2)² − 1) = 3z/2

化简后即得扎吉尔的方程

x² + y² + z² = 3xyz + 4/9。

相关帖子

  • 素数与杂草
  • sinh(arccosh(x))
  • 三条路径交汇
  • [1] 该恒等式至少在 x > 1 且 y > 1 时成立,这对本文已足够。更一般的论证会因分支切割问题而变得复杂。

    需要完整排版与评论请前往来源站点阅读。