/*------------------------------------------------------------------------------------
ダブルスクロール方程式のリアプノフスペクトラムの計算
calculating the Lyapunov spectrum of the double_scroll equations
dx/dt = y + GAMMA * x + C * z;
dy/dt = OMEGA * x - DELTA2 * y;
dz/dt = ( (1.0 - z * z) * (S * x - D + z) - DELTA3 * z )/EPSILON;
double_scroll_lyap.h
------------------------------------------------------------------------------------*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define ITERATION 10000000
#define SKIP 100000
#define DELTA_T 0.001 /* step size of the fourth-order Runge-Kutta method */
// 初期値
// initial values
#define X0 0.11
#define Y0 0.20
#define Z0 0.43
// parameters
#define G 0.7
#define C1 (1.0/9.0)
#define C2 1.0
#define L (1.0/7.0)
#define M0 -0.5
#define M1 -0.8
#define Bp 1.0
// 変数の数
// number of variables
#define DIM 3
/*------------------------------------------------------------------------*/
extern void solve_double_scroll_eqs_using_RK4( double v[DIM], double u[DIM][DIM] );
extern void double_scroll_eqs( double v[DIM], double dfu[DIM][DIM], double dvdt[DIM], double df_k[DIM][DIM] );
extern double func_g( double xx );
extern double d_func_g( double xx );
extern void gram_schmidt_orth( double u[DIM][DIM], double e[DIM][DIM] );
extern double calc_lyap_dim( double lambda[DIM] );
extern double log2( double x );