跳到主要内容
Sandbox Physics
旋转黑洞与玻色云

可复现地求出束缚云的增长率

Sandbox Physics ·

云的复频率是一个连分数的零点,这个连分数由三项递推关系构成。用这种办法找到的零点,要过三关才可信:把连分数加深,它不动;它是基态,不是泛音;它能复现已发表的表格。我们的程序三关都过了,与Dolan 2007年给出的最大增长率相差不到0.3%,Lab里的增长曲线就由它算出。

打开黑洞超辐射Lab

本章接着守恒能流、物理单位与第一次增长估算往下讲,需要复数、微分方程的级数解和一点Python。

什么样的频率算束缚态

被困住的云要同时满足两个边界条件。在视界处它只能往里掉,这和散射波一样。在远处它必须衰减,不能向外辐射,即 R∝eqrR\propto e^{qr},其中

q=−μ2−ω2,Re q<0.q=-\sqrt{\mu^2-\omega^2},\qquad \mathrm{Re}\,q<0 .

两个条件只有在某些特殊的复数 ω\omega 上才能同时成立。实部是云的振荡频率,虚部 ωI\omega_I 是增长率,云增长时为正。

Dolan把解写成两端行为都已正确的因子乘一个幂级数:

R=(r−r+)−iσ(r−r−)iσ+χ−1eqr∑n=0∞an(r−r+r−r−)n,R=(r-r_+)^{-i\sigma}(r-r_-)^{i\sigma+\chi-1}e^{qr}\sum_{n=0}^{\infty}a_n\left(\frac{r-r_+}{r-r_-}\right)^n,

其中 σ=2r+(ω−mΩH)/(r+−r−)\sigma=2r_+(\omega-m\Omega_H)/(r_+-r_-),χ=(μ2−2ω2)/q\chi=(\mu^2-2\omega^2)/q。级数变量在视界处为0,在无穷远处趋于1。Dolan,《克尔时空中有质量克莱因—戈尔登场的不稳定性》第III节式(33)—(34)

从递推关系到连分数

把级数代入径向方程,得到三项递推:

αnan+1+βnan+γnan−1=0,\alpha_na_{n+1}+\beta_na_n+\gamma_na_{n-1}=0,

αn\alpha_n、βn\beta_n、γn\gamma_n 都是 nn 的二次式,系数取决于 ω\omega、aa、μ\mu、mm 和角向本征值 Λ\Lambda。级数在 r→∞r\to\infty 处收敛,只对递推的最小解成立,而最小解存在的条件恰好是

β0−α0γ1β1−α1γ2β2−⋯=0.\beta_0-\frac{\alpha_0\gamma_1}{\beta_1-\dfrac{\alpha_1\gamma_2}{\beta_2-\cdots}}=0 .

Dolan,第III节式(35)—(36)与式(47)—(48) 这就是Leaver方法,最早用来算黑洞的振铃。

写程序时有两个细节。第一,Λ\Lambda 要用复数的扁球参数 c2=a2(ω2−μ2)c^2=a^2(\omega^2-\mu^2) 来算,而不是 a2ω2a^2\omega^2;我们的程序在勒让德基底上取 24×2424\times24 矩阵求本征值。第二,连分数从有限深度 NN 往回算到 n=0n=0,NN 是个数值参数,必须检验。

def continued_fraction(omega, a, mu, l=1, m=1, depth=4000):
    c0, c1, c2, c3, c4 = _recurrence_coefficients(omega, a, mu, l, m)
    n = np.arange(depth + 1, dtype=float)
    alpha = n * n + (c0 + 1) * n + c0
    beta = -2 * n * n + (c1 + 2) * n + c3
    gamma = n * n + (c2 - 3) * n + c4
    tail = 0j
    for k in range(depth, 0, -1):
        tail = alpha[k - 1] * gamma[k] / (beta[k] - tail)
    return (beta[0] - tail) / beta[0]

完整文件见kerr_bound_states.py。

找零点

Dolan在复平面上求连分数绝对值的最小值。我们改用复数割线迭代,从上一章的类氢频率出发。Brito、Cardoso、Pani,《超辐射》第5.6.2节式(5.27)相邻能级相隔约 μ3\mu^3,所以每一步都限制在这个间距的5%以内。不加限制,一大步就可能跳到别的能级上。

例题1。 a=0.99a=0.99、α=0.1\alpha=0.1 时,类氢初值是 Mω=0.099875+1.59×10−11iM\omega=0.099875+1.59\times10^{-11}i。迭代收敛到 MωI=7.389×10−12M\omega_I=7.389\times10^{-12}。实部几乎不动,虚部减了一半。

收敛:把连分数加深

α≥0.1\alpha\ge0.1 时深度取3000,更小时取6000。检验办法是把深度乘以四再解一次,看结果变多少。

表 3.1 深度乘以四时 MωIM\omega_I 的相对变化。
自转耦合相对变化
0.990.990.050.051.2×10−41.2\times10^{-4}
0.990.990.420.428×10−128\times10^{-12}
0.70.70.190.191.1×10−91.1\times10^{-9}
0.50.50.100.106.1×10−96.1\times10^{-9}
0.20.20.700.704.7×10−134.7\times10^{-13}

小耦合收敛最慢。云的峰值在 r=4/α2r=4/\alpha^2 附近,α=0.05\alpha=0.05 时是 1600M1600M,级数变量要非常接近1才能把解描述完整,各项也衰减得慢。10−410^{-4} 的误差远小于Lab显示的精度,但它是最坏情形,引用时应该报这个数。

拿已发表的表来核对:Dolan的表I

Dolan对六个自转值列出了增长最快的 l=m=1l=m=1 云所在的耦合和它的增长率。我们用黄金分割搜索,在自己的程序上找每个最大值。

表 3.2 最大增长率:发表值与复算值。
自转发表的 α\alpha发表的 MωIM\omega_I复算的 α\alpha复算的 MωIM\omega_I相差
0.70.70.1870.1873.33×10−103.33\times10^{-10}0.18700.18703.335×10−103.335\times10^{-10}0.14 %0.14\,\%
0.80.80.2310.2312.16×10−92.16\times10^{-9}0.23070.23072.164×10−92.164\times10^{-9}0.19 %0.19\,\%
0.90.90.2930.2931.55×10−81.55\times10^{-8}0.29290.29291.553×10−81.553\times10^{-8}0.17 %0.17\,\%
0.950.950.3430.3434.88×10−84.88\times10^{-8}0.34270.34274.878×10−84.878\times10^{-8}0.04 %0.04\,\%
0.980.980.3930.3931.11×10−71.11\times10^{-7}0.39280.39281.112×10−71.112\times10^{-7}0.20 %0.20\,\%
0.990.990.4210.4211.50×10−71.50\times10^{-7}0.42080.42081.504×10−71.504\times10^{-7}0.29 %0.29\,\%

Dolan,表I

每一处差别都小于表中三位有效数字的舍入。这只复现了一张表,不是整篇论文。脚本是compare_hydrogenic_growth.py,保存的输出是hydrogenic-comparison-outputs.json。

泛音陷阱

割线迭代会收敛到离初值最近的零点,而耦合较大时,基态和第一泛音挨得很近。按类氢图像,两者实部分别是 α(1−α2/8)\alpha(1-\alpha^2/8) 和 α(1−α2/18)\alpha(1-\alpha^2/18),α=0.47\alpha=0.47 时只差约1.5%。

例题2。 a=0.55a=0.55、α=0.47\alpha=0.47 时,从类氢初值出发会收敛到 MωR=0.4622M\omega_R=0.4622,那是径向有一个节点的泛音。改从 a=0.54a=0.54 的解出发,才得到基态:MωR=0.45190M\omega_R=0.45190,MωI=−1.354×10−3M\omega_I=-1.354\times10^{-3},云被吸收。程序里有一道检查,实部偏离类氢值超过8%就判为丢失模式,但它拦不住这种情况,因为两个能级靠得比8%近得多。

我们的网格靠延拓避开这个陷阱。从 α=0.15\alpha=0.15 起,每个新耦合都从同一自转下前两个解的直线外推出发,求解器就能跟着同一个能级走。每个存下的值还要核对超辐射条件:ωI>0\omega_I>0 当且仅当 ωR<mΩH\omega_R<m\Omega_H。这项检查能发现错误的根或算错的角向本征值,却分不清能级,因为泛音也满足同样的条件。让网格留在基态上的,是延拓和曲线的光滑。

Lab背后的网格

Lab不在浏览器里解连分数,而是读一张离线算好的网格,由build_growth_reference_grid.py生成:

  1. 自转从0到0.98,步长0.02,外加0.99。
  2. 耦合从0.05到0.70,步长0.01。
  3. 每个格点存 MωIM\omega_I 四位有效数字、MωRM\omega_R 六位。

格点之间,Lab把增长率写成 ωI=g (mΩH−ωR)\omega_I=g\,(m\Omega_H-\omega_R),对光滑的 ln⁡g\ln g 关于 ln⁡α\ln\alpha 插值。这样增长率的零点正好落在超辐射门槛上。在七个落在格线之间的点上,包括上面的泛音例子,插值结果与直接求解相差不到0.83%。

Lab任务

  1. 把自转设为0.99,滑动频率找到增长曲线的峰,与表3.2的峰值耦合对照。
  2. 在自转0.5时重复,记下虚线类氢曲线和实线在哪里相符、从哪里分开。
  3. 选“恰在门槛上”预设,确认云的增长率和散射波的增益在同一频率变号。

习题与解析

  1. 为什么根必须满足 Re q<0\mathrm{Re}\,q<0?
  2. 为什么小耦合时更需要加深连分数?
  3. 你找到一个 ωR>mΩH\omega_R>m\Omega_H 却在增长的模式,哪里出了错?
  4. 为什么插值 ln⁡g\ln g,而不直接插值 ωI\omega_I?
解析
  1. Re q>0\mathrm{Re}\,q>0 时,eqre^{qr} 在远处增长,描述的是从无穷远灌进来的场,不是被黑洞拴住的云。
  2. 云延伸到约 4M/α24M/\alpha^2。级数要把解一直描述到那里,而那里的展开变量很接近1,需要更多项尾部才稳定。
  3. 能流恒等式不允许这种模式。要么迭代收敛到了伪根或泛音,要么深度不够,要么角向本征值用错了 c2c^2。加深连分数,并从相邻的解延拓出初值,再算一次。
  4. ωI\omega_I 跨好几个数量级,还在门槛处变号,直接线性插值会把零点挪离 ωR=mΩH\omega_R=m\Omega_H。因子 gg 在门槛两侧都为正且光滑,插值它可以保住门槛的位置。

散射波也可以拿公开的表这样核对。方法指南就做这件事:复算一份公开的超辐射放大表。

在Lab里试一试

比较自转0.99和0.5时实线与虚线两条增长曲线,记下它们在哪里相符。 打开黑洞超辐射Lab

来源

  1. Dolan,《克尔时空中有质量克莱因—戈尔登场的不稳定性》第III节式(33)—(34)
  2. Brito、Cardoso、Pani,《超辐射》第5.6.2节式(5.27)

继续阅读

这一页直接连着哪些内容

旋转黑洞与玻色云 · 阅读路径

从被放大的波到长大的云

  1. 文章一个旋转黑洞,为什么可能把周围的波越放越大?
  2. 文章波、自转与克尔黑洞的尺度
  3. 文章守恒能流、物理单位与第一次增长估算
  4. 当前页面可复现地求出束缚云的增长率
  5. 文章复算一份公开的超辐射放大表
  6. 文章自相互作用怎样改变玻色云的自旋限制与引力波信号
这个页面有错误、看不明白,或者缺了什么?告诉我们
反馈类型

提交时会附带本页地址、Lab ID、网站语言和设备类型。请不要填写个人信息。反馈最多保存 12 个月。隐私政策