---
title: "把微引力透镜限制推广到有质量分布的黑洞"
description: "只用Python标准库，把一条单一质量限制换算成对数正态分布的限制，输入、输出、误差和拒绝情形都已保存。"
canonical_url: "https://sandboxphysics.com/zh/stories/primordial-black-holes/extend-a-microlensing-limit-to-a-mass-spread/"
language: "zh-CN"
page_type: "story"
alternate_languages:
  en: "https://sandboxphysics.com/stories/primordial-black-holes/extend-a-microlensing-limit-to-a-mass-spread/"
last_modified: "2026-11-12"
---

[原初黑洞：从早期塌缩到今天的观测限制](https://sandboxphysics.com/zh/stories/primordial-black-holes/) Tutorial

# 把微引力透镜限制推广到有质量分布的黑洞

Sandbox Physics · 2026-11-12

只要观测对质量函数是线性的，一条发表的曲线$f_{\max}(M)$就够检验任何质量分布。脚本对对数正态分布积分$\psi/f_{\max}$，给出昴星团微引力透镜表格允许的最大总比例。中心在$10^{-8}\,\mathrm{M}_\odot$时，宽度$\sigma=0.5$让限制从0.00949变成0.00964；中心在$10^{-6}\,\mathrm{M}_\odot$时，从0.169变成0.160。

## 开始前需要什么

L3一章的加权比值规则、Python 3和终端。除标准库外不需要任何包。

## 教程材料

- [下载脚本、测试、输入表格、许可文件和预期输出](https://sandboxphysics.com/stories/primordial-black-holes/materials/primordial-black-hole-extended-limit-v1.zip) · 9728 B
- [阅读README：单位、哈希、误差和拒绝情形](https://sandboxphysics.com/stories/primordial-black-holes/materials/extended-limit-README.md) · 4594 B
- [查看五个保存的算例](https://sandboxphysics.com/stories/primordial-black-holes/materials/extended-limit-results.json) · 1668 B

压缩包里只有Python源码、JSON和两张原样保留的MIT许可表格，不含Lab代码。

## 脚本算的是什么

输入是一张表：$\log_{10}f_{\max}$对$\log_{10}(M/\mathrm{M}_\odot)$。质量函数是$M$的对数正态分布，总比例$f$，中心质量$M_c$，宽度$\sigma$按自然对数计。脚本在$f=1$时算出下面的比值，再报告$f_{\rm allowed}=1/R$。

$R$和$f$成正比，所以这一个数对任何振幅都适用。它就是Carr等人2017年的式12，按每单位$\ln M$来写，和Lab的约定一致。

$$
\psi(M)=\frac{f}{\sqrt{2\pi}\,\sigma}\exp\!\left[-\frac{\ln^2(M/M_c)}{2\sigma^2}\right],\qquad R=\int\mathrm{d}\ln M\,\frac{\psi(M)}{f_{\max}(M)},\qquad f_{\rm allowed}=\frac{f}{R}
$$

$\ln M$上的一个$\sigma$等于$\sigma/\ln10$个数量级；$\sigma=2$约跨0.87个数量级。

对应阅读：Carr, Raidal, Tenkanen, Vaskonen & Veermäe · Primordial black hole constraints for extended mass functions · arXiv:1705.05567v3, Phys. Rev. D 96, 023514 (2017) · Carr, Iovino, Perna, Vaskonen & Veermäe · Primordial black holes: constraints, potential evidence and prospects · arXiv:2601.06024v2 (1 April 2026)

## 输入、版本和许可

压缩包里有两张表，原样取自PBHconstraints仓库的ef2fb03提交（MIT许可，版权归Ville Vaskonen，2026年），并附上许可文件。SUB.dat是昴星团HSC观测仙女座星系得到的微引力透镜限制（Smyth等人，2020年）。LIGO.dat是LIGO-Virgo-KAGRA第三轮观测的并合限制（Andrés-Carcasona等人，2024年），放进来只是为了让脚本拒绝它。每行两列：$\log_{10}(M/\mathrm{M}_\odot)$和$\log_{10}f_{\max}$。

README列出了每个文件的SHA-256。表格对应哪篇论文，依据的是仓库里的笔记本；为这篇教程，两篇论文只读了arXiv摘要，所以压缩包不对它们的曲线怎样得出作任何说明。脚本在Python 3.9.6下编写和检验。

对应阅读：Vaskonen · PBHconstraints digitized limits, commit ef2fb03 (MIT license) · Smyth, Profumo, English, Jeltema et al. · Updated constraints on asteroid-mass primordial black holes as dark matter · arXiv:1910.01285v2, Phys. Rev. D 101, 063005 (2020) · Andrés-Carcasona, Iovino, Vaskonen & Veermäe · Constraints on primordial black holes from LIGO-Virgo-KAGRA O3 events · arXiv:2405.05732v2, Phys. Rev. D 110, 023040 (2024)

## 运行，并和保存的结果对照

测试文件检查五件事：归一化、窄分布极限和手算插值是否一致、网格收敛、保存的输出是否在相对$10^{-12}$以内复现，以及拒绝情形。第二条命令写出五个教程算例，和expected/results.json对照即可。

昴星团表格的保存结果，以允许的最大$f$计：中心在$10^{-8}\,\mathrm{M}_\odot$，宽度0.005、0.5、1、2分别给出0.0094879、0.0096371、0.0098154、0.010949，单一质量的值是0.0094880。中心在$10^{-6}\,\mathrm{M}_\odot$、宽度0.5给出0.15997，单一质量是0.16890。最窄的算例和表格值相差$2.2\times10^{-6}$，这检验了积分程序。

```
unzip primordial-black-hole-extended-limit-v1.zip
cd primordial-black-hole-extended-limit-v1
python3 test_tutorial.py
python3 extend_constraint.py --cases --output rerun/results.json
python3 extend_constraint.py --table input/SUB.dat --central -8 --width 0.5
```

对应阅读：Vaskonen · PBHconstraints digitized limits, commit ef2fb03 (MIT license) · Smyth, Profumo, English, Jeltema et al. · Updated constraints on asteroid-mass primordial black holes as dark matter · arXiv:1910.01285v2, Phys. Rev. D 101, 063005 (2020)

## 数值误差，以及它不包括什么

积分在均匀的$\log_{10}M$网格上用梯形法，每个$\sigma$取400个点，范围$\pm9\sigma$。网格加密或放稀一倍，$\sigma=0.5$和2时$R$的变化都小于$7\times10^{-8}$。截在$9\sigma$丢掉的高斯尾巴约$2\times10^{-19}$。

这些误差远小于数字化曲线本身的不确定度，而脚本并不传递后者。表格点之间，$\log_{10}f_{\max}$按线性插值。表格范围以外的质量直接丢掉；数字化曲线在$f_{\max}$达到1的地方截止，所以丢掉的部分只会让$R$变小，结果只会比完整曲线给出的更松。

对应阅读：Vaskonen · PBHconstraints digitized limits, commit ef2fb03 (MIT license)

## 脚本拒绝的输入

expected/failures.json列了四条必须失败的命令。LIGO.dat以退出码3结束：并合率取决于黑洞对，对$\psi$不是线性的。宽度为零或NaN，退出码2。中心放在$10^{-3}\,\mathrm{M}_\odot$，退出码5：分布落在昴星团表格内的部分不到一半，这张表限制不了它。表格质量不严格递增时，退出码4。

拒绝本身就是结果。把式12硬套到并合表上照样会打印出一个数，所以脚本先检查线性，再做积分。

```
python3 extend_constraint.py --table input/LIGO.dat --central 1 --width 0.5   # 退出码 3
python3 extend_constraint.py --central -8 --width 0                          # 退出码 2
python3 extend_constraint.py --central -3 --width 0.5                        # 退出码 5
```

对应阅读：Carr, Raidal, Tenkanen, Vaskonen & Veermäe · Primordial black hole constraints for extended mass functions · arXiv:1705.05567v3, Phys. Rev. D 96, 023514 (2017) · Andrés-Carcasona, Iovino, Vaskonen & Veermäe · Constraints on primordial black holes from LIGO-Virgo-KAGRA O3 events · arXiv:2405.05732v2, Phys. Rev. D 110, 023040 (2024)

## 会改变答案的假设

观测必须对$\psi$线性。成团、并合，以及让黑洞长大的吸积都会破坏这一点，2026年综述第VI节列出了这些情形。脚本一次只处理一张表。按平方和合并多项观测需要L3一章里那些额外前提，这里不做；拿$\psi$去比每个质量处最低的曲线，无论如何都是错的。

对数正态分布是输入，不是预言。Lab的形成模型给出不对称的分布。即使中心质量相同，它算出的比值也和对数正态略有差别。

对应阅读：Carr, Iovino, Perna, Vaskonen & Veermäe · Primordial black holes: constraints, potential evidence and prospects · arXiv:2601.06024v2 (1 April 2026) · Carr, Raidal, Tenkanen, Vaskonen & Veermäe · Primordial black hole constraints for extended mass functions · arXiv:1705.05567v3, Phys. Rev. D 96, 023514 (2017)

## [拿Lab里的昴星团比值和脚本对照](https://sandboxphysics.com/zh/labs/primordial-black-hole-mass-function/)

1. 选“被微引力透镜排除”，读出昴星团比值和暗物质占比，两者相除，应该得到约112。
2. 脚本对$10^{-8}\,\mathrm{M}_\odot$处的窄分布给出$1/0.0094879=105.4$。往下读之前，先预测两者差的正负。
3. Lab的质量函数峰在$10^{-8.1}\,\mathrm{M}_\odot$附近，那里表格的$1/f_{\max}$更大，所以单位比例对应的比值更高。

[上一篇：黑洞质量有分布时，怎样同时对照多项观测](https://sandboxphysics.com/zh/stories/primordial-black-holes/test-a-mass-spread-against-many-limits/) [下一篇：怎样读2026年的原初黑洞综述](https://sandboxphysics.com/zh/stories/primordial-black-holes/read-the-2026-primordial-black-hole-review/)

## 来源，以及每篇读了多少

1. [Carr, Iovino, Perna, Vaskonen & Veermäe · Primordial black holes: constraints, potential evidence and prospects · arXiv:2601.06024v2 (1 April 2026)](https://arxiv.org/abs/2601.06024v2)

   综述；arXiv 标注期刊信息 Riv. Nuovo Cim. (2026)。通读第II.A.2节（非高斯性）、IV.C（引力波）、IV.E（吸积）、V（小行星质量窗口）、VI（式25至29）以及图2至图6的图注；第II、III节读了部分。

2. [Carr, Raidal, Tenkanen, Vaskonen & Veermäe · Primordial black hole constraints for extended mass functions · arXiv:1705.05567v3, Phys. Rev. D 96, 023514 (2017)](https://arxiv.org/abs/1705.05567v3)

   全文。单个观测量的线性规则（式12）和多个观测量的平方和合并（式13），以及它们成立的前提。

3. [Vaskonen · PBHconstraints digitized limits, commit ef2fb03 (MIT license)](https://github.com/vianvask/PBHconstraints/tree/ef2fb03aa0f6c3fab58e9b23ee64331e88c75a86)

   原样使用五张表：EGR、SUB、OGLE、acc和LIGO，并记录了SHA-256。表与论文的对应关系依据仓库里的笔记本。

4. [Smyth, Profumo, English, Jeltema et al. · Updated constraints on asteroid-mass primordial black holes as dark matter · arXiv:1910.01285v2, Phys. Rev. D 101, 063005 (2020)](https://arxiv.org/abs/1910.01285v2)

   只读了摘要。M31里能用的源星比假设的大，Subaru HSC微引力透镜限制在某些质量下因此放宽近三个数量级。

5. [Andrés-Carcasona, Iovino, Vaskonen & Veermäe · Constraints on primordial black holes from LIGO-Virgo-KAGRA O3 events · arXiv:2405.05732v2, Phys. Rev. D 110, 023040 (2024)](https://arxiv.org/abs/2405.05732v2)

   只读了摘要。用多种质量函数对O3并合事件做分层贝叶斯分析，1到200倍太阳质量之间原初黑洞最多约占暗物质的千分之一。

## 继续阅读

宇宙最初一秒里的黑洞 · 阅读路径

### 宇宙最初一秒里的黑洞

1. [文章 **比恒星还早的黑洞，今天该怎样找**](https://sandboxphysics.com/zh/stories/primordial-black-holes/how-to-find-black-holes-older-than-stars/)
2. [文章 **早期宇宙里的一块高密度区域怎样变成黑洞**](https://sandboxphysics.com/zh/stories/primordial-black-holes/how-an-early-overdensity-becomes-a-black-hole/)
3. [文章 **高斯分布的稀有尾部怎样决定原初黑洞的数量**](https://sandboxphysics.com/zh/stories/primordial-black-holes/how-a-rare-gaussian-tail-sets-the-abundance/)
4. [文章 **黑洞质量有分布时，怎样同时对照多项观测**](https://sandboxphysics.com/zh/stories/primordial-black-holes/test-a-mass-spread-against-many-limits/)
5. [当前页面 **把微引力透镜限制推广到有质量分布的黑洞**](https://sandboxphysics.com/zh/stories/primordial-black-holes/extend-a-microlensing-limit-to-a-mass-spread/)
6. [文章 **怎样读2026年的原初黑洞综述**](https://sandboxphysics.com/zh/stories/primordial-black-holes/read-the-2026-primordial-black-hole-review/)
