黑洞:牛顿、爱因斯坦
本文对施瓦茨柴尔德黑洞附近广义相对论的关键效应进行了建模。 我们始终如一地分析:
逃逸速度-牛顿和爱因斯坦如何以不同的方式得出黑洞的想法;
-时间膨胀和红移是观察到的强烈引力场的后果;
-潮汐力("意大利面条")-物体破坏的机制;
-相对论径向下降-求解运动方程在适当和协调时间坐标与动画的三个面板;
-附加轨道-光子球体和最后稳定圆形轨道(ISCO);
-真实物体表-不同质量黑洞的比较(恒星,射手座A*,M87*,TON618)。
文章中使用的主要缩写词典:
/缩写/解密/解释|
|:---|:---|:---|
|BH/黑洞/一个有引力场的物体,没有任何东西可以从中逃脱|
|/广义相对论|爱因斯坦引力理论(1915)/
|r_s/Schwarzschild半径/引力半径,事件视界((r_s=2gm/c^2))|
/ISCO/最内稳定圆形轨道/最后一个稳定圆形轨道(对于Schwarzschild(r=3r_s))|
/EHT/事件地平线望远镜,它收到了BH阴影的第一个图像(M87*在2019年,Sgr A*在2022年)|
|G/引力常数/代码归一化(G=1)(几何单位)|
|c/光速/在代码(c=1)|
|M/黑洞的质量/单位为(GM/c^2=1)→(r_s=2)|
/τ/自己的时间/时间根据时钟下降与粒子|
|t/坐标时间/远程静止观察者的时间|
/dt|dt/时间的关系/引力时间膨胀的量度|
|z/红移/相对波长变化((z=\Delta\lambda/\lambda))|
/ΔL/物体尺寸/特征长度(例如,一个人的身高2米)用于计算潮汐力|
/GPS/全球定位系统/考虑到相对论时间扩张的卫星系统(作为观察到的效果的一个例子提到)|
|/Black Hole/英文缩写"black hole"(用于注释)|
该项目使用以下Julia库:
-DifferentialEquations是微分方程数值解的有力工具。 这里使用它来整合相对论径向入射方程(用Tsit5求解器求解ODEProblem+)。
-Printf是用于格式化字符串输出的标准库(例如,具有当前时间值的标题的动画中的@sprintf)。
-DataFrames(在代码中使用,虽然没有在给定行中的使用中明确指定,但进一步连接)-创建并精美打印具有真实黑洞参数的表格(质量,Schwarzschild半径,潮汐半径,时间扩张)。
# Pkg.add(["Plots", "DifferentialEquations"])
using DifferentialEquations, Printf, DataFrames
gr()
代码使用几何单位,其中(G=1)和(c=1)。 这是广义相对论中的标准技术:所有公式都被简化,距离和时间以质量单位表示。 对于(M=1),Schwarzschild半径变为(r_s=2)。 这种规范化不会改变物理场,但它使代码紧凑和可视化。 对于真实对象,常量是单独"返回"的(如示例末尾的表中所示)。
G = 1.0 # 引力常数(归一化)
c = 1.0 # 光速(归一化)
M = 1.0 # 黑洞的质量(单位为GM/c2=1->r_s=2)
r_s = 2*G*M/c^2 # Schwarzschild半径=2
println("📊Schwarzschild半径:r_s=$r_s")
下面的代码片段比较了牛顿和相对论逃逸速度。
*牛顿: -经典的速度,必须从引力场逃脱永远。
-爱因斯坦(光子): -从光线不能离开地平线的条件得出的相对论公式。
r_newton = range(0.1, 10, length=300)
v_escape_newton = @. sqrt(2*G*M/r_newton) # 经典配方
r_einstein = range(r_s, 10, length=300)
v_escape_einstein = @. c * sqrt(r_s / r_einstein) # 光子的相对论
p1 = plot(r_newton, v_escape_newton,
label="牛顿",
linewidth=3, color=:blue,
xlabel="距离中心r",
ylabel="逃逸速度v/c",
title="预测黑洞:牛顿vs爱因斯坦",
legend=:topright, grid=true, ylim=(0, 2.5))
plot!(p1, r_einstein, v_escape_einstein,
label="光子",
linewidth=3, color=:red, ls=:dash)
hline!(p1, [c], ls=:dot, color=:black, label="光速", linewidth=2)
vline!(p1, [r_s], ls=:dash, color=:green, label="地平线", linewidth=2)
annotate!(p1, r_s+0.5, 2.2, text("事件视界", :green, :bold, 11))
annotate!(p1, 3.0, 1.8, text("随着r<r_s:v_esc>c→没有什么可以离开!", :red, 10))
display(p1)
图表显示了什么:
-何时 r > r_s 两种速度都不同,但当 r = r_s 相对论理论 c,而牛顿超过 c 已经在很远的距离。
-活动视界 r_s 标有垂直线。 为 r < r_s 牛顿曲线给出 —这是逃避不可能的暗示,但只有广义相对论给出了一个黑洞的准确预测。
-水平线 c -光速的极限。
下面介绍时间扩张: -自己时间的态度 相对于下降观察者的坐标时间 t 远程观察者。 红移公式: -来自黑洞附近的光波长的相对增加。
r_time = range(r_s*1.01, 10, length=300)
time_dilation = @. sqrt(1 - r_s / r_time) # dτ/dt
redshift = @. 1 / sqrt(1 - r_s / r_time) - 1; # z = Δλ/λ
p2 = plot(r_time, time_dilation,
linewidth=3, color=:purple,
xlabel="距离r", ylabel="Dt/dt比率",
title="引力时间扩张",
legend=:bottomright, grid=true, ylim=(0, 1.1))
hline!(p2, [1.0], ls=:dot, color=:green, label="远离BH(时间正常)", linewidth=1)
vline!(p2, [r_s], ls=:dash, color=:red, label="地平线(时间停止)", linewidth=2)
annotate!(p2, r_s+0.3, 0.1, text("在地平线上:时间停止!", :red, :bold, 9))
annotate!(p2, 5.0, 0.9, text("远离黑洞:时间正常运行", :green, 9))
annotate!(p2, 2.0, 0.7, text("在R=1.5r_s:1小时近Bh=1.7小时在地球上", :purple, 8))
display(p2)
垂直方向 — (从0到1)。 远离BH,值趋于1(时间也是如此)。 接近地平线时 分母 ,因此 -从远程观察者的角度来看,下降观察者的时间停止。 注释解释:时间在地平线上"停止",在远处是正常的,但在 黑洞附近的一小时相当于地球上的1.7小时。 地平线由一条垂直的红线标记,时间在其上无限延伸,因此得名事件地平线。
p3 = plot(r_time, redshift,
linewidth=3, color=:orange,
xlabel="距离r", ylabel="红移z",
title="引力红移",
legend=:topright, grid=true, ylim=(0, 10))
vline!(p3, [r_s], ls=:dash, color=:red, label="地平线(z→←)", linewidth=2)
display(p3)
公式 描述重力如何拉伸来自黑洞附近的光波长。 由 分母趋于零,所以(z\到\infty)-光无限变红,频率下降到零。 在图表上垂直 — z,水平为距离 r. 上的垂直线 r_s 显示位移到无穷大的地平线. 远离BH (偏移消失)。
潮汐加速度的计算如下。: ,在哪里 m是物体的特征尺寸(人的身高)。 它显示了头部和腿部之间(或物体两端之间)自由落体加速度的差异。 越少 r,它生长得越快 . 条件破坏阈值设置为 (以相对单位)。 从这个等式中,可以找到意大利面条的半径。: . 在代码中,当 物体正在被撕裂。
ΔL = 2.0 # 人体身高~2米
r_tidal = range(r_s*1.01, 20, length=300)
tidal_accel = @. (2 * G * M / r_tidal^3) * ΔL;
p4 = plot(r_tidal, tidal_accel,
linewidth=3, color=:darkred,
xlabel="距离r", ylabel="潮汐加速度(相对单位)",
title="潮汐力—"意大利面条"",
legend=:topright, grid=true)
r_spaghetti = (2*G*M*ΔL / 100)^(1/3) # 有条件的破坏阈值
vline!(p4, [r_spaghetti], ls=:dot, color=:blue, label="破坏的门槛")
annotate!(p4, r_spaghetti+0.5, maximum(tidal_accel)*0.8,
text("对于r<$(round(r_spaghetti,digits=2)),对象正在被撕开", :blue, 8))
display(p4)
垂直潮汐加速 (相对单位),水平-距离 r 从黑洞的中心。 曲线在接近地平线时急剧增加。 垂直虚线标志着破坏的阈值。 此行左侧的区域标有:"对象正在被撕开。"该图表清楚地表明了为什么意大利面条在小黑洞附近最危险(对于超大质量的,阈值在地平线内,如示例末尾的表格所示)。
下面显示了Schwarzschild度量中的径向入射方程,用于从无限远开始的粒子,初始速度为零():
哪里 -下降观察者的适当时间。 减号表示向中心移动。
功能 radial_fall_full! 计算此导数,保护不受负根表达式的影响(这可能发生在 由于数值误差):如果根表达式变为负,则导数被迫为零。 使用该方法执行集成 Tsit5 (5阶的自适应Runge–Kutta)在适当的时间间隔 具有初始条件 . 解决方案以增量保存 saveat=0.05,并且最大积分步骤有限 dtmax=0.1.
后得到离散序列 坐标时间进行计算 从比:
在数值上,这是使用中点规则完成的:对于每个步骤,计算平均径向位置。 . 拜拜! ,坐标时间增量 加到累加值上。 一旦粒子到达事件视界(),积累 它停止,然后坐标时间保持恒定。
最后,将显示积分最后一步的正确时间和坐标时间的值,并说明发散。 接近地平线时。
function radial_fall_full!(du, u, p, τ)
r = u[1]
E = p[1]
r_s = p[2]
radicand = E^2 - (1 - r_s/r)
if radicand < 0
du[1] = 0.0
else
du[1] = -sqrt(radicand)
end
end
E = 1.0
u0 = [10.0]
τspan = (0.0, 40.0)
prob_rad = ODEProblem(radial_fall_full!, u0, τspan, (E, r_s))
sol_rad = solve(prob_rad, Tsit5(), saveat=0.05, dtmax=0.1)
r_vals = sol_rad[1,:]
τ_vals = sol_rad.t
t_vals = zeros(length(τ_vals))
last_t = 0.0
for i in 2:length(τ_vals)
r_mid = (r_vals[i-1] + r_vals[i]) / 2
if r_mid > r_s
dt_dτ = E / (1 - r_s / r_mid)
last_t += dt_dτ * (τ_vals[i] - τ_vals[i-1])
t_vals[i] = last_t
else
t_vals[i] = last_t
end
end
println("相对论的堕落:")
println(" 到达地平线的适当时间:$(round(t_vals[end],digits=2))")
println(" 坐标时间到地平线:$(round(t_vals[end],digits=2))(diverges)")
以下是人体接近黑洞的交互式可视化。
第一个图形(径向入射)显示了从坠落物体到黑洞中心的距离如何随着其自身时间(根据坠落物体的时钟的时间)的推移而减小。 水平红色虚线是事件视界。 可以看出,物体在有限的适当时间内越过地平线并继续朝着中心下降。
第二个曲线图(时间膨胀)示出了下降时钟的速率与远程观察者的时钟的速率的比率。 越接近地平线,从外部观察者的角度来看,下降的人的时间越慢。 在地平线本身和内部,这个比率下降到零-对于远程观察者来说,时间停止。
第三个曲线图(时间关系)比较坐标时间(根据远程观察者的时钟)和跌倒的人自己的时间。 灰色虚线显示了在没有黑洞的情况下它们将如何匹配。 真正的绿色曲线表明,随着我们接近地平线,我们自己的时间越来越落后。 越过地平线后,坐标时间实际上停止增长(趋于有限限制),而适当的时间继续增加。 左下角的注释表示地平线在大约13.55的自身时间相交。
dilation_vals = [r > r_s ? sqrt(1 - r_s/r) : 0.0 for r in r_vals]
anim = @animate for i in 1:5:length(τ_vals)
r_cur = r_vals[i]
τ_cur = τ_vals[i]
t_cur = t_vals[i]
dil_cur = dilation_vals[i]
title_str = @sprintf "Bh下降:t=%。2f,τ=%。2f,dtt/dt=%。3f" t_cur τ_cur dil_cur
p1 = plot(τ_vals[1:i], r_vals[1:i],
color=:blue, linewidth=2,
label="r(τ)",
xlabel="Τ的适当时间",
ylabel="半径r",
legend=:bottomleft,
title=title_str,
ylim=(0, maximum(r_vals)+0.5))
hline!(p1, [r_s], ls=:dash, color=:red, label="地平线r_s")
scatter!(p1, [τ_cur], [r_cur], color=:orange, ms=6, label="粒子;粒子")
p2 = plot(τ_vals[1:i], dilation_vals[1:i],
color=:purple, linewidth=2,
label="dτ/dt",
xlabel="Τ的适当时间",
ylabel="dτ/dt",
legend=:bottomleft,
ylim=(0, 1.1))
hline!(p2, [0], ls=:dot, color=:red, label="地平线和内部")
scatter!(p2, [τ_cur], [dil_cur], color=:red, ms=6, label="当前值")
p3 = plot(t_vals[1:i], τ_vals[1:i],
color=:green, linewidth=2,
label="τ(t)",
xlabel="坐标时间t",
ylabel="Τ的适当时间",
legend=:bottomleft)
plot!(p3, t_vals[1:i], t_vals[1:i], ls=:dot, color=:gray, label="τ=t(无BH)")
scatter!(p3, [t_cur], [τ_cur], color=:orange, ms=6, label="粒子;粒子")
x_min = minimum(t_vals[1:i])
y_min = minimum(τ_vals[1:i])
annotate!(p3, x_min + 0.05*(maximum(t_vals[1:i])-x_min),
y_min + 0.05*(maximum(τ_vals[1:i])-y_min),
text("地平线在τ≈13.55处交叉", :black, :left, 8))
plot(p1, p2, p3, layout=(3,1), size=(800, 900))
end
gif(anim, "relativistic_fall_full.gif", fps=20)
下面是有效电位的曲线图。 它显示了"能垒"如何取决于在轨道上移动的粒子到黑洞的距离。 垂直是有效势能,水平是距离。 曲线上的最小值对应于稳定的圆形轨道,而最大值对应于不稳定的轨道。
光子球(蓝色垂直线)是光可以在黑洞周围的圆形轨道上行进的距离。 这个轨道是不稳定的:最轻微的扰动和光子要么落入孔中,要么飞走。
-ISCO(最后一个稳定的圆形轨道)(粉红色垂直线)是质量粒子稳定圆周运动的最内半径。 更接近孔,任何圆形轨道变得不稳定,粒子迅速落入内部。 ISCO在天体物理学中起着关键作用:吸积盘在这个半径处结束,物质开始不可逆转地落入黑洞,释放出巨大的能量。
-水平灰线是静止的粒子在无穷远处的能级。 在这条线与电位曲线相交的地方,存在可能的运动转折点。
r_photon = 1.5 * r_s
r_ISCO = 3.0 * r_s
println("附加轨道:")
println(" 光子球:r=△r_photon")
println(" 最后稳定轨道(ISCO):r=$r_ISCO")
L_isco = 2.0 * sqrt(3) * M
r_pot = range(r_s+0.01, 20, length=500)
V_eff = @. (1 - r_s/r_pot) * (1 + L_isco^2 / r_pot^2)
p5 = plot(r_pot, V_eff,
label="V_eff(r) = (1 - r_s/r) * (1 + L^2 / r^2)",
linewidth=2, color=:darkgreen,
xlabel="距离r", ylabel="V_eff的有效电位",
title="有效电位:ISCO和光子球",
legend=:topright, grid=true)
vline!(p5, [r_photon], ls=:dash, color=:cyan, label="光子球(1.5r_s)")
vline!(p5, [r_ISCO], ls=:dash, color=:magenta, label="ISCO (3 r_s)")
hline!(p5, [1.0], ls=:dot, color=:gray, label="E=1(在无穷远处休息)")
display(p5)
savefig("effective_potential.png")
println(" 图5保存并显示:efficie_potential。巴布亚新几内亚")
下面是我们上面提到的真实物体的表格,表格显示了四种类型的不同质量的黑洞:恒星质量(10太阳质量),射手座a*(银河系中心的超大质量孔,430万太阳质量),M87*(65亿太阳质量)和TON618(已知最大质量的孔之一是660亿太阳质量)。
为每个对象计算:
-施瓦茨柴尔德半径 r_s (事件地平线)以公里为单位。
-潮汐半径 -潮汐力以与地球相等的加速度撕裂测量2米(人类高度)的物体的距离 .
-最小安全距离 -潮汐半径的最大值及 (为了不越过地平线)。
-在这个最小距离的时间扩张是多少倍1小时附近的孔是更长的远程观察者。
G_si = 6.67430e-11
c_si = 299792458
M_sun = 1.989e30
ΔL = 2.0 # 人的身高,m
g_earth = 9.8 # m/s2
r_s_km(mass_solar) = 2 * G_si * (mass_solar * M_sun) / c_si^2 / 1000 # Schwarzschild半径(公里)
function r_tidal_km(mass_solar)
M_kg = mass_solar * M_sun
r_m = (2 * G_si * M_kg * ΔL / g_earth)^(1/3)
return r_m / 1000
end
function dilation_factor(r_km, r_s_km)
if r_km <= r_s_km
return Inf
else
return 1 / sqrt(1 - r_s_km / r_km)
end
end
objects = [
("恒星质量的BH", 10),
("射手座A*", 4.3e6),
("M87*", 6.5e9),
("TON 618", 6.6e10)
]
rows = []
for (name, mass) in objects
rs = r_s_km(mass)
r_tidal = r_tidal_km(mass)
r_min = max(r_tidal, rs * 1.0001)
dilation = dilation_factor(r_min, rs)
push!(rows, (name, mass, rs, r_tidal, r_min, dilation))
end
df = DataFrame(
Symbol("一个对象") => [row[1] for row in rows],
Symbol("M (M☉)") => [row[2] for row in rows],
Symbol("r_s(公里)") => [round(row[3], sigdigits=4) for row in rows],
Symbol("潮(公里)") => [round(row[4], sigdigits=4) for row in rows],
Symbol("r_min(公里)") => [round(row[5], sigdigits=4) for row in rows],
Symbol("减速(1小时→小时)") => [row[6] for row in rows]
)
println("表:对于每个对象,表示可能不被潮汐力撕裂的最小距离(但不超过1.0001r_s),以及相应的时间膨胀。")
println(df)
表的主要调查结果:
-对于恒星质量黑洞,潮汐半径(约8,150公里)明显大于地平线(约30公里)。 因此,宇航员在到达地平线之前很久就会被潮汐力撕裂。 安全最小值的时间膨胀很小(仅为1,002倍)。
-对于超大质量孔(射手座A*,M87*,TON618),图片颠倒:潮汐半径位于地平线深处。 这意味着可以在没有感觉意大利面条的情况下越过地平线—黑洞边缘的潮汐力非常弱。 然而,最小距离的时间膨胀(在这种情况下受地平线本身的限制)是巨大的:地平线附近的1小时延伸到外部观察者的100小时(系数100)。 这源于最小距离几乎等于 r_s,和分母 变得非常小。
结论
本文是在广义相对论框架下模拟黑洞的实用介绍。 它说明了重力的牛顿理论使用逃逸速度公式。 ,预测:如果一个物体足够庞大和紧凑,那么当 逃逸速度超过光速,光不能离开这样的"暗星"(Michell's idea,1783)。 然而,这只是问题的一个方面,因为在牛顿物理学中,光没有质量,不应该服从同样意义上的重力。 爱因斯坦的广义相对论(1915)给出了严格的描述:重力是时空的曲率,Schwarzschild度量(1916)预测事件视界。 除此之外,没有任何东西,甚至没有光,可以出来。 此外,广义相对论预测定性新的影响:引力时间扩张(地平线上的时间停止),红移,潮汐力("意大利面条"),以及光子球的存在和ISCO的最后稳定轨道。 在代码中,我们直观地比较了牛顿和相对论逃逸速度,证明只有广义相对论给出了地平线半径的正确值并解释了观察到的现象。
.png)
.png)
.png)
.png)
.gif)
.png)