雅可比椭圆函数sn 和 cn 类似于三角函数正弦和余弦。它们出现在非线性振荡和保形映射等应用中。遗憾的是, 定义这些函数有多个约定。这篇文章的目的是为了消除围绕这些不同的公约的混淆。
上面的图像是函数 sn [1] 的图解。
模数、参数和模块角度
雅比函数采用两个输入。我们通常认为雅比函数是其第一个输入的函数, 第二个输入被固定。第二个输入是一个 “拨号”, 你可以改变他们的行为。
有几种方法可以指定此拨号。我开始使用单词 “拨号” 而不是 “参数”, 因为在这个上下文参数具有技术意义, 一种描述表盘的方法。除了 “参数” 之外, 您还可以根据其模数或模块角度来描述雅可比函数。这篇文章将是一个罗塞塔石头的排序, 显示如何每一种描述雅可比椭圆函数的方法是相关的。
参数 m是 [0, 1] 中的实数。互补参数为m‘ = 1 m。阿布拉默茨和 Stegun, 例如, 写的雅各比函数 sn 和 cn 作为 sn ( u |m) 和 cn ( u |m). 它们还使用m1 = 而不是m ‘ 来表示互补参数。
模数 k是m的平方根。这将是更容易记住, 如果m站在模数, 但这不是常规的。相反, m为参数, k为模数。互补模量 k‘ 是互补参数的平方根。
模块化角度α由m = sin²α定义。
请注意, 随着参数m转到零, 模数k和模块化角度α也是如此。当这些三中的任何一个变为零时, 雅可比函数 sn 和 cn 收敛到其对应的正弦和余弦。因此, 无论您的表盘是参数、模数或模块角度, sn 收敛到正弦和 cn 收敛到余弦, 当您将表盘朝向零。
当参数m转到 1, 模数k, 但模块化角度α转到π/2。所以, 如果你的表盘是参数或模数, 它会转到1。但如果你认为你的表盘是模块化角度, 它会转到π/2。在任何一种情况下, 当您将拨盘向右转动时, sn 收敛到双曲正割, cn 收敛到常量函数1。
季度期间
除了参数、模数和模块化角度外, 您还可以看到以k和k为术语描述的雅可比函数。这些都被称为季度周期的好理由。当您沿实际轴移动时, sn 和 cn 的函数有句点 4 K , 或者在复杂平面的任意位置水平移动。他们也有期间 4 iK‘。也就是说, 当您移动距离 4 K ‘ 垂直 [2] 时, 函数会重复。
季度周期是模数的函数。沿实际轴的季度期间K是
函数K( m) 被称为 “第一类的完整椭圆积分”。
振幅
到目前为止, 我们专注于对雅可比函数的第二个输入, 以及用于指定它的三约定。
有两个约定指定第一个参数, 无论是作为φ还是u
johndcook.com/jacobi_amplitude.svg
角度φ称为振幅。(是的, 这是一个角度, 但它被称为振幅。
当我们上面说, 雅比函数有周期 4 K, 这是从变量u。请注意, 当φ = π/2, u = K。
数学中的雅比椭圆函数
Mathematica 使用u约定为第一个参数和第二个参数的参数约定。
Mathematica 函数 JacobiSN[u, m]
用参数u和参数m计算函数 sn。在 & S 的表示法中, sn ( u |m)。
同样, JacobiCN[u, m]
使用参数u和参数m计算函数 cn。在 & S 的表示法中, cn ( u |m)。
在这一点上, 我们还没有谈到雅可比函数 dn, 但它是在 Mathematica 中实现的 JacobiDN[u, m]
。
以u为函数求解振幅φ的函数 JacobiAmplitude[um m]
。
从参数m计算季度周期K的函数是 EllipticK[m]
。
Python 中的雅比椭圆函数
SciPy 库具有一个 Python 函数, 它一次计算四个数学函数。函数 scipy.special.ellipj
采用两个参数, u和m, 就像 Mathematica, 并返回 sn (u |m), cn (u |m), dn ( u |m) 和振幅φ (u, m)。
函数K( m) 是在 Python 中实现的 scipy.special.ellipk
。
相关职位
[1] 该图解是使用 JacobiSN[0.5, z]
和 ComplexPlot
这里描述的功能。
[2] 严格说来, 4 iK‘ 是一个时期。它是 cn 的最小垂直周期, 但 2 iK ‘ 是 sn 的最小垂直周期。