######################################################
NUMERIVAL STUDY OF THE STANFORD MEMRISTOR CHUA'S CIRCUIT
######################################################
This project is developed for nonrigorous and rigorous evaluation of the Poincare map associated with the Stanford memristor Chua's circuit, to prove the existence of periodic orbits for this system, to study stability of periodic orbits and to find periodic windows in the parameter space.
The code uses the CAPD library for integration of the Roessler system, evaluating the Poincare map, and computing its Jacobian matrix. The MPFR library is used for multiprecision computations.
######################################################
DIRECTORY CONTENTS
######################################################
This directory contains the following files:
1. smcc.cpp - the C++ source file roe.cpp,
2. makefile - the makefile to compile the C++ source file,
3. smcc.x - the compiled executable (there is little chance it will work for your system),
4. ex*.txt - example outputs.
######################################################
REQUIREMENTS (gmp, mpfr, CAPD)
######################################################
1. gmp and mpfr libraries should be installed before the CAPD library is compiled.
2. check the list of requirements needed for the CAPD library: http://capd.ii.uj.edu.pl/html/capd_requirements.html
2. download and compile the CAPD library:
mkdir tmp
cd tmp
git clone https://github.com/CAPDGroup/CAPD
cmake .. -DCAPD_ENABLE_MULTIPRECISION=true -DCAPD_BUILD_EXAMPLES=false
make -j
######################################################
COMPILATION
######################################################
# run the following commands to compile the program:
cd ..
mkdir smcc
cd smcc
# download source files
wget http://www.zet.agh.edu.pl/ncn2025memristors/c++/smcc/smcc.zip
unzip smcc.zip
make
######################################################
EXAMPLES
######################################################
#Computation times are reported for Intel Core i7-6800K CPU 3.4GHz processor, single-core computations
######################################################
#EXAMPLE 01
#COMPUTE TRAJECTORIES OF THE 3D CIRCUIT for g=9.03e-10
smcc.x -Action Trajectory -SkipTime 0.0 -IntegrationTime 0.002 -gr 9.03e-10 -InitCondStr "3 -1.18532393145922632 0 0.00020061696494767" > smcc3tr1.res
cat smcc3tr1.res| grep "P:" | sed "s/P: //g" > smcc3tr1.txt
smcc.x -Action Trajectory -SkipTime 0.0 -IntegrationTime 0.002 -gr 9.03e-10 -InitCondStr "3 0.141613 0 -6.03712e-07" -TimeStep 1e-6 > smcc3tr2.res
cat smcc3tr2.res| grep "P:" | sed "s/P: //g" > smcc3tr2.txt
smcc.x -Action Trajectory -SkipTime 0.0 -IntegrationTime 0.002 -gr 9.03e-10 -InitCondStr "3 -0.141613 0 6.03712e-07" -TimeStep 1e-6 > smcc3tr3.res
cat smcc3tr3.res| grep "P:" | sed "s/P: //g" > smcc3tr3.txt
octave
clf
x1=load('smcc3tr1.txt');
x2=load('smcc3tr2.txt');
x3=load('smcc3tr3.txt');
plot(x1(:,2),x1(:,3),'r-',x2(:,2),x2(:,3),'b-',x3(:,2),x3(:,3),'m-') % large periodic attractor and two small periodic attractors
######################################################
#EXAMPLE 02
#COMPUTE TRAJECTORY OF THE RETURN MAP for g=9.03e-10
smcc.x -Action ReturnMapTrajectory -PoincWhich -1 -PoincVal 0 -PoincVar 1 -gr 9.03e-10 -SkipNum 0 -IterNum 10 -InitCondStr "3 -1.1853239 0 0.00020061696" > smcc3trp1.res
######################################################
#EXAMPLE 03
#PROVE THE EXISTENCE OF TWO ATTRACTORS for g=9.03e-10
smcc.x -Action ProvePO -Period 1 -gr 8.8e-10 -InitCondStr "3 1.1853239 0 0.00020061696" -PoincWhich -1 -CoutPrec 18 -Verbose true > smcc3proof1.res
smcc.x -Action ProvePO -Period 1 -gr 8.8e-10 -InitCondStr "3 0.14161332 0 -6.037207e-07" -PoincWhich -1 -CoutPrec 18 -Verbose true > smcc3proof2.res