Result:
Definition:
x_{n+1} = T(x_{n}) y_{n+1} = lambda y_{n} + h(x_{n}) T(x) = 1 - mu x^2 h(x) = x
See:
- Thermodynamics of chaotic systems ... - Google Books
- Kaplan–Yorke map - Wikipedia, the free encyclopedia
Result:
Definition:
x_{n+1} = T(x_{n}) y_{n+1} = lambda y_{n} + h(x_{n}) T(x) = 1 - mu x^2 h(x) = x
See:
typedef struct kaplanyorkemap_{ | |
int step; | |
double *xt; | |
double *yt; | |
double mu; | |
double lambda; | |
} KaplanYorkeMap; | |
int kym_gene_seq(KaplanYorkeMap *self) | |
{ | |
int st; | |
for (st = 1; st < self->step; ++st){ | |
self->xt[st] = 1 - self->mu * self->xt[st-1] * self->xt[st-1]; | |
self->yt[st] = self->lambda * self->yt[st-1] + self->xt[st-1]; | |
} | |
return 0; | |
} |
objs=kaplan_yorke.o | |
slib=kaplan_yorke.so | |
all: $(slib) | |
kaplan_yorke.so: kaplan_yorke.o | |
gcc -shared -o $@ $< | |
kaplan_yorke.o: kaplan_yorke.c | |
gcc -c $< -fPIC -O3 -ftree-vectorizer-verbose=1 | |
clean: | |
rm $(objs) $(slib) | |
.PHONY: all clean |
import ctypes | |
import numpy | |
import pylab | |
double1d = ctypes.POINTER(ctypes.c_double) | |
class KaplanYorkeMapStruct(ctypes.Structure): | |
_fields_ = [ | |
("step", ctypes.c_int), | |
("xt", double1d), | |
("yt", double1d), | |
("mu", ctypes.c_double), | |
("ld", ctypes.c_double), | |
] | |
_kaplan_yorke = numpy.ctypeslib.load_library('kaplan_yorke.so', '.') | |
_kaplan_yorke.kym_gene_seq.restype = ctypes.c_int | |
_kaplan_yorke.kym_gene_seq.argtypes = [ctypes.POINTER(KaplanYorkeMapStruct)] | |
def kym_gene_seq(kyms): | |
return _kaplan_yorke.kym_gene_seq(ctypes.pointer(kyms)) | |
if __name__ == '__main__': | |
step = 10**5 | |
xt = numpy.zeros(step, dtype=float) | |
yt = numpy.zeros(step, dtype=float) | |
mu = 2 | |
ld = 0.4 | |
xt[0] = 0.1 | |
yt[0] = 0.1 | |
kyms = KaplanYorkeMapStruct( | |
step = xt.shape[0], | |
xt = xt.ctypes.data_as(double1d), | |
yt = yt.ctypes.data_as(double1d), | |
mu = mu, | |
ld = ld) | |
kym_gene_seq(kyms) | |
pylab.figure(1, figsize=(4,3)) | |
pylab.plot(xt, yt, 'k.', markersize=0.1) | |
pylab.savefig('kym.png') |