In [1]:
# call python plotting package and ODE solver package
using PyPlot
using ODE
In [3]:
# function for rossler evolution map
function rossler_map(t, r )
# store r as 3-tuple
(x, y, z) = r
# The Rossler equations
rossler1 = -y - z
rossler2 = x + a * y
rossler3 = b + z * (x - c)
#return image of rossler map at r as vector
rossler = [rossler1; rossler2; rossler3]
return rossler
end
#set parameter values
a = 0.1;
b = 0.1;
c = 14;
In [4]:
# function for Jacobian of rossler map
function rossler_jacobian(r)
# store r as 3-tuple
(x, y, z) = r
# compute Jacobian of rossler map at r=(x,y,z)
Df = [ 0 -1 -1;
1 a 0;
z 0 x-c; ]
return Df
end
Out[4]:
In [7]:
#compute jacobian at equilibria
Dfzero = rossler_jacobian(zero)
Dfplus = rossler_jacobian(xstarplus)
Dfminus = rossler_jacobian(xstarminus)
#define equilibria
zero = [0; 0; 0]
alpha = c / 2.0 / a
bet = 4 * a * b / c /c
disc = sqrt(1 - bet)
gammaplus = alpha * (1 + disc)
gammaminus = alpha * (1 - disc)
xstarhat = [ a; -1; 1]
xstarplus = gammaplus * xstarhat
xstarminus = gammaminus * xstarhat
In [6]:
#compute eigenvalues of jacobian at each
eigzero = eigvals(Dfzero)
eigplus = eigvals(Dfplus)
eigminus = eigvals(Dfminus)
println("$eigzero")
In [5]:
#plot equilibria as dots
hold(false)
hold(true)
function plot_eqb(r)
(x, y, z) = r
scatter3D(x,y,z)
end
plot_eqb(zero)
plot_eqb(xstarplus)
plot_eqb(xstarminus)
In [ ]:
In [1]:
Out[1]:
In [7]:
Out[7]:
In [ ]: