rstrauss: Simulate Strauss process in 2- or 3-dimensional box

View source: R/rstrauss.R

rstraussR Documentation

Simulate Strauss process in 2- or 3-dimensional box

Description

Simulate the spatial point Strauss process in 2- or 3-dimensional box (rectangular cuboid). Three algorithms are available:

BD

Birth-and-death simulation with variable number of points.

dCFTP

Dominated Coupling-From-The-Past with variable number of points.

MH

Fixed number of points Metropolis-Hastings.

Usage

rstrauss(
  beta = 100,
  gamma = 1,
  range = 0.1,
  n,
  bbox = cbind(c(0, 1), c(0, 1), c(0, 1)),
  iter = 10000,
  toroidal = FALSE,
  verb = FALSE,
  perfect = FALSE,
  blocking = FALSE,
  start = NULL,
  CFTP_T0 = 2
)

Arguments

beta

The beta parameter, controls (but does not equal) intensity

gamma

The repulsion parameter, from 0 to 1 (incl.)

range

Range of pairwise interaction

n

The number of points to distribute, overrides beta

bbox

A 2 x d matrix with 1st row giving the lower and 2nd row the higher coordinate ranges for the simulation box.

iter

Number of iterations (in MH & BD) and max. number of steps for dCFTP.

toroidal

Whether to use toroidal correction.

verb

Control verbosity

perfect

Use dCFTP simulation? Otherwise BD, unless n given which use MH.

blocking

MH: Use grid- book keeping to look for neighbours, worth it for large patterns.

start

a 2/3d column matrix of starting locations,i.e. Initial configuration. ONLY FOR MH.

CFTP_T0

Starting backward time for dCFTP. Default 2. Doubled each iteration.

Details

The density of a realisation x of Strauss(beta, gamma, r), where r is the range, is

f(x)= alfa beta^n(x) gamma^s(x;r)

with scaling constant alfa, number of points n(x), and the number of r-close pairs s(x;r).

Under the condition n(x)=n, the beta==1.

Value

A list with

x

2- or 3-dimensional table with the outcome point coordinates

bbox

the bounding box used for simulation.

Examples

bbox2d <- cbind(c(0,5), c(0, 2.5))
bbox3d <- cbind(bbox2d, c(0,2.5))
x2 <- rstrauss(beta=10, gamma=0.01, range=0.1, iter=1e5, bbox=bbox2d)
x2p <- rstrauss(beta=10, gamma=0.01, range=0.1, perfect=TRUE, bbox=bbox2d, verb=T)
x3 <- rstrauss(beta=100, gamma=0.2, range=0.2, perfect=TRUE, bbox=bbox3d, iter=5e4)

antiphon/rstrauss documentation built on June 2, 2022, 7:19 a.m.