2010年10月18日月曜日

ローレンツアトラクタ

Scilabでの計算例
・グラフをぐりぐり動かすと、立体的な感じが分かります。
・変数をちょっといじると、全く違った形になります。

プログラム(コメント欄に記載)

(参考)
 元のプログラム(少しだけいじっています)
 ローレンツアトラクタ(1)(2)



---------------------------------------------------------
<参考>
 エクセルでローレンツアトラクタ

1 件のコメント:

  1. function xdot=func(t,x)
    xdot(1)=10*(x(2)-x(1));
    xdot(2)=28*x(1)-x(2)-x(1)*x(3);
    xdot(3)=-8/3*x(3)+x(1)*x(2);
    endfunction

    //独立変数tは
    ta=0;tstep=0.02;tb=80;t0=0
    t=ta:tstep:tb;
    xx=ode([1;0;0], t0, t, func);

    //[ ]内の3数はx(1), x(2), x(3)の初期値(t=t0のときの値)。
    //結果はxxは3行m列の行列に収められる。ここにmはtが0から80まで0.02刻みなのでm=4001。その第1行xx(1,:)はx値 第2行xx(2,:)はy値 第3行xx(3,:)はz値である。

    //xyz 3次元プロットするにはparam3dを使う。
    clf();
    xset('color',2);//青色で
    param3d(xx(1,:),xx(2,:),xx(3,:),95,80,'X@Y@Z'); //x y z
    xtitle("Lorenz Equation");

    返信削除