大気変動を研究していた気象学者のエドワード・ローレンツは、初期値のわずかな違いが気象の予測結果を大きく変えることに気付きました。これが、バタフライ効果と呼ばれているもので、下記のローレンツ方程式が、カオス研究の先駆けとなった式です。
では、ローレンツ方程式をFreeMatで解いてみます。下記のlorentz.mを保存し、コマンドウィンドウでlorentz(x初期値、y初期値、z初期値)と入力すると、図3に示すような結果が得られます。図3は蝶が羽根を広げたような形状で、ローレンツ・アトラクタと呼ばれています。
初期値を変えて計算してみると分かりますが、わずかな違いでアトラクタは形状を複雑に変化させます。参考までに、初期値を原点周りで半径0.1の円周上で変化させた場合のアトラクタの形状変化を動画にしたものを図4に添付しましたので、ご覧ください。
function lorentz(x0,y0,z0) xyz=@(t,y) [-10*y(1)+10*y(2);-y(1)*y(3)+28*y(1)-y(2);y(1)*y(2)-8/3*y(3)]; span=[0,50]; t0=[x0;y0;z0]; [t,y]=ode45(xyz,span,[x0;y0;z0]); plot3(y(:,1),y(:,2),y(:,3)); view(3);grid('on'); title(['X0=',num2str(x0),' Y0=',num2str(y0),' Z0=',num2str(z0)]); xlabel('x');ylabel('y');zlabel('z'); axis([-30,30,-30,30,0,50]);
次回は振動問題をFreeMatで解いてみます。
伊藤孝宏(いとう・たかひろ)
1960年生。小型モーターメーカーのエンジニア。博士(工学)。専門は流体工学、音・振動工学。現在は、LabVIEWを使って、音不良の計測・診断ソフト、特性自動検査装置などの開発を行っている。
Copyright © ITmedia, Inc. All Rights Reserved.