圆函数与双曲函数的互逆关系解析Couth and uncouth function pairs
John D. Cook探讨圆函数(三角函数)和双曲函数虽然本身不可逆,但可以通过限制定义域来构造有效的反函数对。文章详细分析了正弦、余弦、正切与反正弦、反余弦、反正切之间的关系,以及双曲正弦、双曲余弦与其反函数之间的对应关系。通过这种'不礼貌的函数对'(couth and uncouth function pairs),数学家能够在保持函数性质的同时获得可逆性,这是数学建模中的重要技巧。
John
“你无法总是得到你想要的东西,但有时你会得到你需要的东西。”——滚石乐队
圆函数和双曲函数不可逆,但我们仍强行求其反函数。这些函数将定义域中的多个点映射到值域中的一个点,而我们通过将值域中的一个点反向映射回定义域中的某个点来求其反函数。通常这种做法符合预期,但有时并非如此。
在前一篇文章中我说过:
可以通过将一个函数应用于 iz 再乘以一个依赖于 foo 的常数 c,从而将每个三角函数“foo”与其双曲对应函数“fooh”联系起来:sin 和 tan 对应的 c = i,cos 和 sec 对应的 c = 1,csc 和 cot 对应的 c = −i。
用符号表示为:
c·foo(z) = fooh(iz)
假设 foo 和 fooh 是可逆的(忽略其他复杂性),我们来解方程 foo(z) = w,得到:
i·foo⁻¹(w) = fooh⁻¹(cw)
或者使用反函数的“arc”命名法:
i·arcfoo(w) = arcfooh(cw)
当上述简单计算在有限个点之外都成立时,我们称这对函数 (foo, fooh) 是“couth”;否则称其为“uncouth”。这两个术语由 Robert Corless 及其合作者在论文 [1] 中提出。
一对函数 (foo, fooh) 是否为“couth”不仅取决于 foo 和 fooh 本身,还取决于 arcfoo 和 arcfooh 的具体定义方式。
在 Python 的 NumPy 库中,(sin, sinh) 和 (tan, tanh) 是“couth”对,而 (cos, cosh) 是“uncouth”对。
NumPy 没有定义倒数函数 sec、sech、csc、csch、cot 和 coth。我过去觉得这很烦人,但现在我开始认为这样设计是明智的——因为这些函数会带来问题。例如,可能存在两种合理的方式来定义这些函数,其中一种形成“couth”对,另一种则形成“uncouth”对。
例如,应该如何定义 cot 和 coth?对于以下定义,不会产生分歧:
cot = lambda x: 1/tan(x)但在实际应用中至少存在两种常见的 coth 定义:
arccot = lambda z: 0.5*pi - arctan(z)
arccot = lambda z: arctan(1/z).这两种定义各有优势,但前者是“uncouth”,后者是“couth”。可以验证,在 z = 1 处两者一致,但在 z = −1 处不一致。
采用如下定义时,(cos, cosh) 和 (sec, sech) 是“uncouth”对,其余均为“couth”对。
from numpy import *
csc = lambda x: 1/sin(x)
sec = lambda x: 1/cos(x)
cot = lambda x: 1/tan(x)
csch = lambda x: 1/sinh(x)
sech = lambda x: 1/cosh(x)
coth = lambda x: 1/tanh(x)
arccot = lambda z: arctan(1/z)
arcsec = lambda z: arccos(1/z)
arccsc = lambda z: arcsin(1/z)
arccoth = lambda z: arctanh(1/z)
arcsech = lambda z: arccosh(1/z)
arccsch = lambda z: arcsinh(1/z)[1] “根据 Abramowitz 和 Stegun”或 arccoth 未必一定是“uncouth”。Robert M. Corless 等人,ACM SIGSAM Bulletin,第 34 卷第 2 期,第 58–65 页,https://doi.org/10.1145/362001.362023
需要完整排版与评论请前往来源站点阅读。