Simulates particle movement according to the Vicsek model, where particles align their velocities with neighboring particles within a specified radius, subject to noise. The model implements both Gaussian and uniform noise options.
Vicsek(p0, v0, theta0, v_abs, n_t, T_sim, h, cut_r,
sigma_0, noise_type = "Gaussian")
Returns a list with three components:
A matrix of dimension (2*n_t) x (T_sim+1) containing particle positions at each time step.
A matrix of dimension (2*n_t) x (T_sim+1) containing particle velocities at each time step.
A matrix of dimension n_t x (T_sim+1) containing particle angles at each time step.
A numeric vector of initial positions for all particles, structured as (x1, y1, x2, y2, ..., xn, yn).
A numeric vector of initial velocities for all particles, structured similarly to p0.
A numeric vector of initial angles for all particles.
A numeric value specifying the absolute velocity (speed) of particles.
An integer specifying the number of particles.
An integer specifying the number of time steps to simulate.
A numeric value specifying the time step size.
A numeric value specifying the interaction radius within which particles align.
A numeric value specifying the noise strength.
A character string specifying the type of noise: either "Gaussian" (default) or "Uniform".
Vicsek, T., Czirok, A., Ben-Jacob, E., Cohen, I., & Shochet, O. (1995). Novel type of phase transition in a system of self-driven particles, Physical Review Letters, 75(6), 1226.