返回 2026-05-21
📝 其他

x² − 1 的平方根Square root of x² − 1

johndcook.com·2026-05-20

文章探讨了复数域中表达式 √(z² − 1) 的定义问题,指出其看似简单却存在多值性和分支选择等微妙之处。作者强调不能仅通过代数操作(如先平方再减一再开方)来定义该表达式,而必须考虑复变函数中的主值分支和解析性。最终结论是:在数学严谨性要求下,该平方根需要借助复对数或三角恒等式进行明确定义,而非直接运算。

John

我们该如何定义√(z² − 1)?你可以先对 z 平方,再减 1,然后取平方根。除此之外还能怎么做?!

这个问题其实比表面看起来更微妙。

当 x 是非负实数时,√x 被定义为平方等于 x 的非负实数;而当 x 是复数时,√x 是通过解析延拓将实轴上的平方根函数扩展到复平面上的一个函数。但我们无法将 √x 作为解析函数延拓到整个复平面 ℂ。因此必须选择一个“分支切割”的位置,通常的做法是沿负实轴进行切割。

使用主值分支

平方根函数的“主值分支”是指唯一能将 √x 从正实数解析延拓到 ℂ \ (−∞, 0] 的函数。

现在假设我们把 √x 理解为平方根函数的主值分支。那么 √(z² − 1) 是什么意思呢?它可能就是指我们在文章开头所说的:先计算 z² − 1,再应用(主值分支的)平方根函数。但如果这样做,就必须排除那些使得 z² − 1 为负值的 z。这意味着我们需要挖掉虚轴和区间 [−1, 1]。

这正是 Mathematica 在计算 Sqrt[z^2 - 1] 时所采用的方式。

ComplexPlot[Sqrt[z^2 - 1], {z, -2 - 2 I, 2 + 2 I}]

通过颜色的突变可以清晰地看出分支切割的存在。

另一种方法

现在我们换一种思路。把 √(z² − 1) 看作一个整体函数。不要像上面那样把它理解成一系列操作步骤(比如先平方 z 等),而是把它当作一个黑箱——输入 z,输出一个平方后等于 z² − 1 的复数。

这个函数在 z > 1 时有明确的定义,并且可以通过解析延拓将其推广到更大的复平面区域。这次我们不是通过扩展平方根函数来实现,而是直接对 √(z² − 1) 进行延拓。但和之前一样,我们仍无法将其解析地延拓到整个 ℂ,必须挖掉某些部分。一个常见的选择是挖掉区间 [−1, 1],这样就不再需要在虚轴上设置分支切割。

函数

以我们希望的方式(见[1])将 √(z² − 1) 进行了延拓。

Mathematica 代码

ComplexPlot[Exp[(1/2) (Log[z - 1 ] + Log[z + 1])], {z, -2 - 2 I, 2 + 2 I}]

显示我们的函数现在在虚轴上是连续的,尽管当你穿过 [−1, 1] 时仍然存在不连续性。

在前一篇文章中,我们使用了 √(z² − 1) 的这个解析延拓来消除某个恒等式中的分支切割。

相关文章

  • 三角函数复合表
  • sinh(arccosh(x))
  • 复制手绘图像
  • [1] 对数函数的主值分支在负实轴上有切割。为什么我们用对数定义的平方根函数没有在负轴上设置分支切割?

    首先,log 函数以及 Mathematica 中的 Log[] 函数在 (−∞, 1) 上并不是无定义的,只是在那里不连续。该函数仍有取值,按惯例取的是从上方趋近 z 时的极限值,即从第二象限趋近。

    其次,当分别从上方和下方趋近于小于 −1 的值 z 时,(log(z – 1) + log(z + 1))/2 的值会相差一个因子 2πi。但在取指数后这个因子就消失了。因此尽管其定义中包含的对数函数本身不解析,我们的函数 f(z) 却在 (−∞, 1) 上仍然是解析的。

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