/*
Liapunov Exponent
\lambda=\lim_{n\to \infty}\frac{1}{n}\sum_{j=0}^{n-1}\log |f'(x_j)|
この指数が正であるならば、「カオス」であると言われている。
EXAMPLE:
ロジスティック方程式のリアプノフ指数
*/
#include
#include
/*初期値設定*/
#define STEP 100000
/*関数宣言*/
double f(double,double);
double g(double,double);
main()
{
int j;
double x=0.1,nx,u;
double liap,h,total;
for(h=2.9;h<=4.0;h+=0.001)
{
for(j=0;j<=STEP-1;j++)
{
nx=f(x,h);
u=fabs(g(nx,h));
total +=log(u);
liap = total/STEP;
x=nx;
}
printf("%f %f\n",h, liap);
nx=0.0;
u=0.0;
total=0.0;
liap=0.0;
}
return 0;
}
/*FUNCTION */
double f(double x,double h)
{
return( h*x*(1.0-x) );
}
/*1st derivative */
double g(double x,double h)
{
return( h*(1.0-2.0*x) );
}
出力結果
Back to C Language

