--/--/--

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
2011/05/05

カオスでCG(初歩)

先日親戚のところにお邪魔したとき、伯父さんが自分がカオス理論について興味があるということを聞いていたらしく、カオスにまつわる本や雑誌数冊をくださった。

その本は著者ジェームズ=グリック(James Gleick)さんの『CHAOS making a new science』という英書と、その訳本(文庫版)、さらに、1997年の雑誌『BASIC 数学』の3月号だった。

CHAOS MAKING A NEW SCIENCE   by James Gleick  カオス 文庫版  BASIC 数学 1997年3月号 ←それらの本


まだ全部は読んでいないがとても面白そうだ。



さて、上記の3つのうち「BASIC 数学」の1997年3月号を読んでいたら面白い記事があった。

「プログラミングで広がるグラフ関数電卓の世界」というコーナーの、足利裕人さんによる「カオスでCG」という記事である。


そのタイトルどおり、記事にはカオス的振る舞いが生み出すさまざまな図形がのっており、とても興味がわいた。ぜひ自分もこの図形を描いてみたい。

スキャンされたドキュメント-1   スキャンされたドキュメント-2   スキャンされたドキュメント-3   カオスが描く図形4

カオスが描く図形(参考記事)


しかしその記事で紹介されていたのは「グラフ関数電卓」を用いたプログラムであった。
グラフ関数電卓は自分の持っている関数電卓とは違い、グラフが書ける。また電卓上でプログラムが組める。

そんなのもってねえ!ということで記事を参考に適当にC言語で組んでみた。

以下にソースを示す。

/*カオスでCG*/
#include<stdio.h>
#include<stdlib.h>
int main(void){
float x=4, y=0, sub, a, b, xshazo, yshazo ;
int i = 0 ;
FILE *outfp ;
scanf("%f %f", &a, &b) ;
if((outfp=fopen("caos1.txt","w"))==NULL) exit(EXIT_FAILURE);

while(i<50000){
sub = x ;
x = y - a*x + b/(1 + x*x) ;
y = -sub ;
i++ ;
xshazo = x + y ;
yshazo = x - y ;
fprintf(outfp,"%f %f\n",xshazo, yshazo) ;
}
fclose(outfp) ;
return 0 ;
}


このプログラムでやっていることは、

  

  

という漸化式に初期値
  
  

を与え、n=50000まで計算を繰り返し値を求めていくというものだ。

値は、任意定数である a,bに鋭敏に影響を受ける。以下にaの値による図形の現れ方を示す。(b=5で固定) 値のプロットはgnuplotを用いた。

a=1.91    a=1.92
a=1.91            a=1.92

a=1.93    a=-1.92
a=1.93            a=-1.92


どうだろう(´∀`*)ウフフ

なかなか綺麗に描けていると思う。

ここで注目したいのは、定数aを0.01単位で違う値にするだけでずいぶんと違う図形になるということだ。
また、1.92と-1.92を見てわかるように、マイナスを付けたからと言って2次関数のように対称な図形になるわけでもない。

とても不思議である。

カオス的振る舞いについてはのちのち定義するが、要は微小な差がとても大きな差になってしまうということが大きな問題なのである。

「北京で蝶が羽ばたくと、ニューヨークで嵐が起こる」といったバタフライエフェクトは有名だと思うが、気象ではカオスの初期値への鋭敏性が長期予報を困難にさせているのである。

自分はこれからよく学び、カオスについて多くを知って、いずれは新たな発見をしたいと思っている。


今回はここまで。最後まで読んでくれた人はありがとうございます(`・ω・´)





関連記事
スポンサーサイト

コメント

非公開コメント

No title

おもしろいねー
名前は忘れちゃったけど、カオスのCGを作品として発表してる芸術家がいたよ。
PCで数字打ち込んで、自分が美しいと思った図形をピックアップして画集にしてたと思う。

No title

>夕凪ショウさん
コメントありがとうございます。
自分もネット上でカオスについて調べているときにカオスアートの芸術家さんを見かけた記憶があります。
たしか木本圭子さん・・・だったかな。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。