綺麗なローレンツ・アトラクタの描き方?
ローレンツ方程式
dx/dt = p*(-x + y)
dy/dt = r*x - y - x*z
dz/dt = -b*z + x*y
をEuler法を利用して、プログラムを作成して、gnuplotでplotしているのですがこのローレンツ・アトラクターの2つの円の中心が均一に(私の場合は左円の中心が小さく、右円の中心が大きい)なるようにして、
綺麗なアトラクターを描くには刻み幅と計算回数をどれくらいの値にすればいいのでしょうか?
私は刻み幅h = 0.001、計算回数n = 100000としてます。
*Euler法に変換したプログラムと図は下の通りです。
図
http://www26.tok2.com/home/parshem//image/lorenz-O.jpg
#include <stdio.h>
#include <math.h>
int main(void)
{
/*---Parameter---*/
int p = 10;
int r = 28;
double b = 8.0/3.0;
double x, y, z, xn, yn, zn, h, i, n;
x = 1.0; y = 1.0; z = 1.0;
h = 0.001;//ステップの刻み
n = 400000;
/*---Lorenz Equation & Euler---*/
for(i = 0.0 ; i < n ; i++){
xn =x + h * p*(-x + y) ;
yn =y + h * ( r*x - y - x*z );
zn =z + h * ( -b*z + x*y );
printf("%lf\t%lf\t%lf \n", xn, yn, zn);
x = xn; y = yn; z = zn;
}
return 0;
}
お礼
お礼が遅くなってすみません。 回答ありがとうございました。