GibbsPointProcess[{"PairPotential",μ, ϕ}, d]
表示
中的密度为 μ、对势函数 (pair-potential function) 为 ϕ 的 Gibbs 点过程.
GibbsPointProcess[{"PairInteraction",μ, h}, d]
表示
中密度为 μ、偶相互酌函数 (pair-interaction function) 为 h 的 Gibbs 点过程.
GibbsPointProcess[{"Papangelou",λ*}, d]
表示
中 Papangelou 条件密度为
的 Gibbs 点过程.
GibbsPointProcess[{"Density",f}, d]
表示
中密度函数与 f 成正比的 Gibbs 点过程.
GibbsPointProcess
GibbsPointProcess[{"PairPotential",μ, ϕ}, d]
表示
中的密度为 μ、对势函数 (pair-potential function) 为 ϕ 的 Gibbs 点过程.
GibbsPointProcess[{"PairInteraction",μ, h}, d]
表示
中密度为 μ、偶相互酌函数 (pair-interaction function) 为 h 的 Gibbs 点过程.
GibbsPointProcess[{"Papangelou",λ*}, d]
表示
中 Papangelou 条件密度为
的 Gibbs 点过程.
GibbsPointProcess[{"Density",f}, d]
表示
中密度函数与 f 成正比的 Gibbs 点过程.
更多信息
- GibbsPointProcess 亦称为 Markov 点过程.
- Gibbs 模型通常用于模拟点之间的相互作用,例如树木或植物争夺资源,相互排斥或吸引的粒子.
- 可用密度函数
和径向对势函数
或偶相互酌函数
来指定只在成对的点之间有相互作用的 Gibbs 点过程. - 密度函数
是位置
的非负函数,如果不存在点之间的相互作用,则模拟
附近预期的点的数量. - 对势函数
是点之间距离的实函数;较大的
值意味着不太可能找到彼此相距
的两个点. - 由
给定的偶相互酌函数
是点之间距离的非负函数;较大的
值意味着比较有可能找到彼此相距
的两个点. - GibbsPointProcess 可表示任意 Gibbs 点过程;常见的 Gibbs 过程都有专门实现的方法并且易于使用:
-
过程 对势 
特点 HardcorePointProcess 
硬核相互作用 StraussPointProcess 
恒定强度的软核相互作用 StraussHardcorePointProcess 
内部硬核,外层是软核 PenttinenPointProcess 
基于重叠区域大小的相互作用 DiggleGrattonPointProcess 
内部硬核,并带有递减软核 DiggleGatesPointProcess 
从硬核点平滑过渡 - 可用 Papangelou 密度
或概率密度
指定更广义的 Gibbs 点过程. - Papangelou 密度
指定了将点
添加到点集
内的成本,必须是非负函数. - 密度
指定了一个点布局的概率密度. 函数 f 必须是非负函数,但不必是归一化的. - GibbsPointProcess 允许 d 为任意正整数.
- 所有的指定都有一个等效的 Papangelou 密度 λ*,如下所示:
-
{"PairPotential",μ,ϕ} ![mu exp(-sum_iphi(TemplateBox[{{{p, _, i}, -, q}}, Norm])) mu exp(-sum_iphi(TemplateBox[{{{p, _, i}, -, q}}, Norm]))](Files/GibbsPointProcess.zh/2.png)
{"PairInteraction",μ,h}
.{"Density",f} 
- GibbsPointProcess 可与诸如 RipleyK 和 RandomPointConfiguration 这样的函数一起使用.
范例
打开所有单元 关闭所有单元基本范例 (1)
对具有适当密度函数的 GibbsPointProcess 给出的泊松点过程进行采样:
h = Function[pts, 100 ^ Length[pts]];pts = RandomPointConfiguration[GibbsPointProcess[{"Density", h}, 2], Disk[]]Show[RegionPlot[pts["ObservationRegion"]], ListPlot[pts]]范围 (4)
β = 30;
h = Function[pts, β ^ Length[pts]];使用 Markov 链 Monte Carlo 方法模拟单位圆盘上的 40 个样本:
n = 40;
region = Disk[];sample = RandomPointConfiguration[GibbsPointProcess[h, 2], region, n, Method -> {"MCMC", "LengthOfRun" -> 10000}]Mean[sample["PointCountList"]]//Nval = β RegionMeasure[region]//NListPlot[{sample["PointCountList"], {{0, val}, {n, val}}}, Joined -> {False, True}]对 GibbsPointProcess 给出的 Strauss 点过程进行采样:
pairWiseDists[{}] := {}
pairWiseDists[pts_] := Block[{tp = pts}, Table[EuclideanDistance[pt, #]& /@ (tp = Rest[tp]), {pt, Most[pts]}]]straussDensity[gamma_, beta_, R_] := Function[pts, Block[{dists, n = Length[pts]},
dists = Total[Clip[Flatten[pairWiseDists[pts]], {0, R}, {0, 0}]];
beta ^ n * gamma ^ dists
]
];a = RandomPointConfiguration[GibbsPointProcess[straussDensity[.8, 30, 1], 2], Disk[], 1]通过指定 Papangelou 条件密度对同一过程进行采样:
straussPapangelouDensity[gamma_, beta_, R_] := Function[{pts, newpt},
beta * gamma ^ Total[Clip[EuclideanDistance[newpt, #]& /@ pts, {0, R}, {0, 0}]]
];b = RandomPointConfiguration[GibbsPointProcess[{"Papangelou", straussPapangelouDensity[.8, 30, 1]}, 2], Disk[], 1]ϕ[γ_, R_] := Function[r, -Log[γ]Boole[r ≤ R]];c = RandomPointConfiguration[GibbsPointProcess[{"PairPotential", 30, ϕ[.8, 1]}, 2], Disk[], 1]Show[RegionPlot[Disk[]], ListPlot[#]]& /@ {a, b, c}来自半径为 0.3 的硬核点过程的样本与密度为
的泊松点过程:
R = .3;
reg = Rectangle[{-3, -3}, {3, 3}];μ = Exp[Total[#]]&;
ϕ[R_] = Piecewise[{{∞, # < R}}]&;pts1 = RandomPointConfiguration[GibbsPointProcess[{"PairPotential", μ, ϕ[R]}, 2], reg]Show[RegionPlot[reg], ListPlot[pts1]]pts = pts1["Points"];
dsk = Disk[#, R / 2]& /@ pts;
Show[RegionPlot[reg], Graphics[{{Orange, dsk}, {PointSize[Tiny], Point[pts]}}, Frame -> True]]pts2 = RandomPointConfiguration[InhomogeneousPoissonPointProcess[Function[{x, y}, Exp[x + y]], 2], reg]Show[RegionPlot[reg], ListPlot[pts2]]可用强度
和对势
表示简单的 Gibbs 点过程(如 StraussHardcorePointProcess),但是通常情况下并非如此. 取决于各个点周围的圆盘并集的面积的点过程的相互作用取决于点所有可能的子集,如下面的密度函数所示:
f[β_, γ_, r_] := Function[pts,
With[{len = Length[pts]},
If[len === 0,
1,
β ^ len * γ ^ Area@DiscretizeRegion [RegionUnion@@(Disk[#, r]& /@ pts)]
]
]
]proc = GibbsPointProcess[{"Density", f[20, .3, .1]}, 2];pts = RandomPointConfiguration[proc, Disk[], Method -> {"MCMC", "LengthOfRun" -> 100}]Graphics[{Opacity[.5], Disk[#, .1]& /@ pts["Points"]}]属性和关系 (1)
比较 PoissonPointProcess 生成的点数与具有适当密度的 GibbsPointProcess 生成的点数:
β = 30;
h = Function[pts, β ^ Length[pts]];
region = Disk[];
n = 20;sample1 = RandomPointConfiguration[GibbsPointProcess[h, 2], region, n, Method -> {"MCMC", "LengthOfRun" -> 30000}]sample2 = RandomPointConfiguration[PoissonPointProcess[β, 2], region, n]Mean /@ {sample1["PointCountList"], sample2["PointCountList"]}//Nval = β RegionMeasure[region]//NListPlot[{sample1["PointCountList"], sample2["PointCountList"]}, Epilog -> Line[{{0, val}, {n, val}}], PlotLegends -> {"GibbsPointProcess", "PoissonPointProcess"}]文本
Wolfram Research (2020),GibbsPointProcess,Wolfram 语言函数,https://reference.wolfram.com/language/ref/GibbsPointProcess.html.
CMS
Wolfram 语言. 2020. "GibbsPointProcess." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/GibbsPointProcess.html.
APA
Wolfram 语言. (2020). GibbsPointProcess. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/GibbsPointProcess.html 年
BibTeX
@misc{reference.wolfram_2026_gibbspointprocess, author="Wolfram Research", title="{GibbsPointProcess}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/GibbsPointProcess.html}", note=[Accessed: 03-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_gibbspointprocess, organization={Wolfram Research}, title={GibbsPointProcess}, year={2020}, url={https://reference.wolfram.com/language/ref/GibbsPointProcess.html}, note=[Accessed: 03-November-2026]}