Skip to contents

The lattice update \(B' = (1-\omega)[(1-\eta)B + \eta S B]\) with \(S\) a row-stochastic spreading matrix and no events contracts the sup norm by \(1-\omega\) at every step (Research.P4.Contraction.sup_contraction, decay); with \(S\) doubly stochastic the total is scaled by exactly \(1-\omega\) (update_total). With event feedback \(\epsilon\rho\) the uniform mode grows iff \(\epsilon\rho > \omega/(1-\omega)\) (feedback_gain).

Usage

morie_attractiveness_contraction(S, omega, eta, B, n = 10L)

Arguments

S

Non-negative spreading matrix with unit row sums.

omega, eta

Decay and spreading rates, in \([0, 1]\).

B

Starting field, one value per site.

n

Number of updates.

Value

A list: trajectory (a matrix with n + 1 rows), sup_norm, sup_bound (\((1-\omega)^k\) times the starting norm), total, doubly_stochastic and feedback_threshold (\(\omega/(1-\omega)\)).

References

D'Orsogna MR, Perc M (2015). Statistical physics of crime: a review. Physics of Life Reviews 12, eq. 2.

Examples

S <- matrix(c(0.5, 0.5, 0, 0.5, 0, 0.5, 0, 0.5, 0.5), nrow = 3, byrow = TRUE)
morie_attractiveness_contraction(S, omega = 0.2, eta = 0.3, B = c(5, 1, 0), n = 3)
#> $trajectory
#>          [,1]     [,2]     [,3]
#> [1,] 5.000000 1.000000 0.000000
#> [2,] 3.520000 1.160000 0.120000
#> [3,] 2.532800 1.086400 0.220800
#> [4,] 1.852672 0.938816 0.280512
#> 
#> $sup_norm
#> [1] 5.000000 3.520000 2.532800 1.852672
#> 
#> $sup_bound
#> [1] 5.00 4.00 3.20 2.56
#> 
#> $total
#> [1] 6.000 4.800 3.840 3.072
#> 
#> $doubly_stochastic
#> [1] TRUE
#> 
#> $feedback_threshold
#> [1] 0.25
#> 
#> attr(,"theorem")
#> [1] "Research.P4.Contraction.decay"