Hi!
I am trying to translate the Lotka Volterra Predator-Prey population dynamics tutorial using the Stan data types.
But If I define
functions{
vector lotka_volterra(real t, real[] z, real[] theta) {
real u = z[1];
real v = z[2];
vector[2] dz_dt;
real alpha = theta[1];
real beta = theta[2];
real gamma = theta[3];
real delta = theta[4];
dz_dt[1] = (alpha - beta * v) * u;
dz_dt[2] = (-gamma + delta * u) * v;
return dz_dt;
}
}
and defining:
data {
int<lower = 0> N; // num measurements
array[N] real ts; // measurement times > 0
vector[2] y_init; // initial measured population
array[N] vector[2] y; // measured population at measurement times
}
parameters {
vector[4] theta; // theta = { alpha, beta, gamma, delta }
vector[2] z_init; // initial population
vector<lower = 0>[2] sigma; // error scale
}
and then use it in
transformed parameters {
array[N] vector[2] z = integrate_ode_rk45(lotka_volterra, z_init, 0, ts, theta);
}
I get the following compilation error:
Ill-typed arguments supplied to function 'integrate_ode_rk45':
(<F1>, vector, int, array[] real, vector)
where F1 = (real, vector, vector) => vector
Available signatures:
(<F2>, array[] real, real, array[] real, array[] real, data array[] real,
data array[] int, data real, data real, data real) => array[,] real
where F2 = (real, array[] real, array[] real, data array[] real,
data array[] int) => array[] real
Expected 10 arguments but found 5 arguments.
(<F2>, array[] real, real, array[] real, array[] real, data array[] real,
data array[] int) => array[,] real
Expected 7 arguments but found 5 arguments.
Where’s the error?
Thanks in advance…
BTW I tag @Bob_Carpenter as the original author of the case study