I am trying to write a differential equation for replicator dynamics, which, in the simplest, case is a vector differential equation with n components where
$$ \dot x_i = x_i ( (Ax)_i - x’ A x ) $$
So, I tried the following code
using DifferentialEquations, ParameterizedFunctions
replicator! = @ode_def Replicator begin
dx = x .* ( A*x .- x'*A*x )
end A
x0 = [0.33 ; 0.33 ; 0.33]
tspan = (1., 100.)
A = [0. -1. 1.; 1. 0. -1.; -1. 1. 0.]
prob = ODEProblem(replicator!, x0, tspan, A )
sol = solve(prob)
but I get
retcode: Success
Interpolation: Automatic order switching interpolation
t: 10-element Array{Float64,1}:
1.0
1.000001
1.000011
1.000111
1.0011109999999999
1.0111109999999999
1.1111109999999997
2.1111109999999993
12.111110999999994
100.0
u: 10-element Array{Array{Float64,1},1}:
[0.33, 0.33, 0.33]
[0.33, 0.33, 0.33]
[0.33, 0.33, 0.33]
[0.33, 0.33, 0.33]
[0.33, 0.33, 0.33]
[0.33, 0.33, 0.33]
[0.33, 0.33, 0.33]
[0.33, 0.33, 0.33]
[0.33, 0.33, 0.33]
[0.33, 0.33, 0.33]
Why is only one component of the state changing?