«D½u©Ê°Ê¤O¾Ç¥H¤Î²V¨P²{¶H¼ÒÀÀ
Nonlinear Dynamical System
¤@¯ë«ö^»y¦r±·N¸q½Ķ§@ "«D½u©Ê°Ê¤O¾Ç¨t²Î"¡A¤]«Ü±`¨£¡C¨ä¹ê¦b³oùتº dynamical ·N«ü¨t²Îªºª¬ºA®É®É¥i¥H§ïÅÜ¡A¨ä¥Îªk¤ñ¸û¹³¬O DRAM (Dynamical Random Access Memory) °ÊºAÀH¾÷¦s¨ú°O¾ÐÅé¡ADynamical Memory Allocation °ÊºA°O¾ÐÅé°t¸m¡A¬O "°ÊºA" ªº·N«ä¡A¦]¦¹ Nonlinear Dynamical System À³ºÙ§@¬O "«D½u©Ê°ÊºA¨t²Î" ¤~§ó¤£©ö¤Þ°_»~¸Ñ¡C·íµM¡A¦bª«²z¾Çªº½dÃ¥¤¤¦³«Ü¦hªº¤O¾Ç¨t²Î¤]¬O°ÊºA¨t²Î¡A¦]¦¹°w¹ï¨º¨Ç¨t²Î¥H "«D½u©Ê°Ê¤O¾Ç¨t²Î" ºÙ¤§¤]¨S¿ù¡A¥u¬O³o¼Ë¹ï©ó¨ä¥L«D¾÷±ñ©Î«D¤O¾Çªº¨t²Î¡A¦p°ÊºAªº¹q¸ô°T¸¹ÅܤƩΰʺAªº¤H¤fÅܤơA³o¦WºÙ´N¦³¤@ÂI©Ç©Çªº¤F¡C
¤°»ò¬O½ÆÂø¡H¤°»ò¬O²³æ¡H
½ÆÂø»P²³æÁöµM¥u¬O¨âÓ¤£¨ãºë½Tª«²z·N¸qªº§Î®eµü¡A¦ý¦b³oùئܤ֦³¤@Ó¤j®aÀ³¸Ó³£¯à±µ¨üªº°Ï¤À¡A´N¬O¤@Ó²{¶H¦³¨S¦³¶g´Á©Ê¡C¦³¶g´Á©Êªº²{¶H¡A¹w´ú°_¨Ó¤ñ¸û²³æ¡A¹³¤éª@¤é¸¨¡B¬K®L¬î¥V¡F¦Ó¨S¦³¶g´Á©Êªº²{¶H¡A½Ñ¦p®ð¶HÅܤơBªÑ¥«µÈ¶^¡C
¤@Ó²{¶H·|½ÆÂø¡A·|¥O§Ú̵Lªk¹w´ú¡AÃø¨ì³£¬O¦]¬°¨t²Îºc¦¨ªº¤¸¥ó«Ü¦h¦ÓÓ¦Û¤§¶¡ªº¥æ¤¬§@¥Î¤S½ÆÂø¡A¹³«Ê³¬®e¾¹¤¤©Ò¦³®ðÅé¤À¤lªº°Ê¦V¨º¼Ë¶Ü¡H¨Ã¤£ºÉµM¡A¤@Ó¥u¨ã¦³¬Û·í¤p¦Û¥Ñ«×ªº¡AªA±q¤@Ó²³æ¦ý«o¬O«D½u©Êªº¤½¦¡¨ÓÅܤÆ(ºt¶i)¡A¤]¥i¥H²£¥Í½ÆÂø¨ìµLªk¹w´ú¨ä¶g´Áªº±¡ªp¡A¦bª«²zªº²{¶H¤¤§Ú̺٬°¬O²V¨P²{¶H¡C
µù¡G²V¨P¤@Ãã«Ü¦´N¦³¡A¦ý»P²{¤µ¥Î©ó¬ì¾Ç»â°ì¤Wªº¤£¤@¼Ë¡A¹³¬O¤p«Ä¤lŪªº¡m¥®¾ÇãªL¡n¤¤¦³ "²V¨Pªì¶}¡A°®©[©l³þ¡A®ð¤§»´²M¡A¤W¯BªÌ¬°¤Ñ¡F®ð¤§«¿B¡A¤U¾®ªÌ¬°¦a"¡C¤å¨¥¤å¤¤ªº²V¨P¨Ã¤£¬Oª«²z¦Wµü¡A¥¦¥Dn¬On´yz¦t©zªº "µLµ²ºc©Ê" ¡C ¥t¦³¤H¤Þz¬°¡§²V¨Pªì¶}¡A°®©[©l³þ¡A»´²MªÌ¤W¯B¦Ó¬°¤Ñ¡A«¿BªÌ¤U¾®¦Ó¬°¦a¡¨
²{¦b½Ķ§@²V¨P¡]Chaos¡^ªº^¤åì·N¬O²V¶Ã¡A®ð¶H¾Ç®a³ÒÛ´µ¥Î²V¨P²z½×¡A¬O¥Î¨Ó´yz¶È¦³¨Ç·L¤§®tªºªì©l±ø¥ó´N·|¾ÉP«áÄòªº¨t²Îª¬ºA¦³·¥¤jªº¤£¦P¡A´N¹³¬O©Ò¿×ªº½¹½º®ÄÀ³¡]½Ð¨£ºû°ò¦Ê¬ì¡^¨º¼Ë¡C
¦³¨ÇªF¦èªº¥»½è¥»¨Ó´N¬OÀH¾÷©Êªº¡A¦pÂY¤@Ó»ë¤l·|¤£·|¥X²{¤»ÂI³o¥ó¨Æ±¡¡C¨Ã¤£¦]¬°ªì©l±ø¥óªº¨Ç·L¤£¦P¦Ó¦³²§¡A´N¤£¬O¦b³oùةҿתº½ÆÂø¤F¡C
¤@Ó²³æªº«D½u©Ê°ÊºA¨t²Î¡G¤@ºû logistic ¬M®g
¥Íª«±Ú¸sÓÅéÁ`¼Æ population »P¥@¥NªºÃö«Y
Pn+1 = Pn ( a + bPn )
´£¥X a «Y¼Æ«áÅܬ° a Pn [ 1 + (b/a) Pn ] ¡A¦AÅÜ´«ÅÜ¼Æ x = (b/a)Pn «á«h즡²¤Æ¦¨¬° (a2/b) xn ( 1+ xn ) ¡AY§â a2/b ¦A§ï¬° 4r «h¦³ logistic map
Logistic map ªº©w¸q
¤@³s¦ê x |-> x' ¡B x' |-> x'' ªº¬M®g¡A¨C¦¸±o¨ìªºµ²ªG¤S§@¬°¤U¤@½üªº³N¿é¤JÈ¡A¨ä¤¤²Ä n ¦¸»P²Ä n+1 ¦¸¨ã¦³¥H¤UÃö«Y¡G
xn+1 := 4r xn (1-xn)
´£¥Ü¡GY¬O¼g¦¨µ{¦¡¡A´N¥u¶·n¼g¤@¦æ x = 4 * r * x * (1-x) ¡C
«D½u©Êªºª«²z·N¸q
Åý§ÚÌ¥ý¦^·Q¤@¤U¤Æ¾Ç¤ÏÀ³³t²v»P¤ÏÀ³ª«ºØ¿@«×ªº°ÝÃD¡C°²³]³t²v¨M©w¨BÆJ¬O A ¡Ï B ¡÷ AB¡A«h¥¿¦V¤ÏÀ³³t²v¥¿¤ñ©óÓ§O¤ÏÀ³ª«¿@«× [A] »P [B] ªº¬Û¼ [A][B]¡A¤S¡A¦pªG¨M©w¨BÆJ¬O A ¡Ï B ¡Ï B ¡÷ AB2¡A«h¥¿¦V¤ÏÀ³³t²v¥¿¤ñ©ó [A][B]2¡C §Ú̳£¥i¥H²z¸Ñ³o¬O¦]¬°n§Î¦¨²£ª«¡A¡]¥H«áªÌ¬°¨Ò¡^»Ýn¤TÓªF¦è¸I¦b¤@°_¡A¦]¦¹¦³ [A]¡B[B]¡B[B] ±K«×¬Û¼¨Ó¤Ï¬M¥X¾÷²v¡C
°²³]¹ª«¥R¨¬µ¥Àô¹Ò¦]¯À¨ÏµM¡AÁc´Þ²v»P«e¤@¥@¥Nªº¼Æ¶q§e¥¿¤ñ¡A«h¦¡¤l¤¤·|¦³ x ¤@¦¸¤è¶µ¡F¥t¥~¡A©øÂίe¯fªº¶Ç¬V¡A·|¸g¥Ñ¨âÓÓÅ骺±µÄ²¡A¦p¦¹¦³¤F- x2 ¶µ¡A¦p¦¹´N¦³¤F
xn+1 = 4r xn ( 1 - xn )
°µ°µ¬Ý¡A¦pªG¬O x ( a - x ) ¡A¨ä¤¤ a ¬O¤£µ¥©ó¤@ªº¬Y¤@Ó¦P©w±`¼Æ¡]¤]´N¬O»¡¤W¦¡ªº x ªº - x2 ¨Ã¤£¤@©w¬On¬Û¦P¤ñ¨Ò¡^¡A¦p¦¹§ó¦X²z¡A«hµ²ªG·|¦p¦ó¡H¡]³o¼ËªºÃa³B¬O¨S¦³Âk¤@¤Æ¡Ax ªºÈªº½d³ò¤£³Q§½¦b 0 ¨ì 1 ¤§¶¡¡C¡^»¡©ú¡G¥H a x + b x2 ¬°¨Ò¡A¥iÂà¤Æ¬° a (1 + c x) x ¡A(¨ä¤¤ c = b / a) ¡A¦A¶i¤@¨BÅܦ¨ a/c (1 + cx) cx¡A³Ì«á§â cx ¥O¬°³Ì«áªº x ¡A´N¦³ x(1+x) ªº§Î¦¡¤F¡C
§Ṳ́]¥i¥H±q¥t¤@Ó¨¤«×¨Ó¤F¸Ñ«D½u©Ê¶µ¡AY x ¬O°÷¤pªºÈ¡A«h²{¶H¥i¦¸¥]§t°ª¦¸ªº®ÄÀ³¡A¦Óªí¥Ü¦¨¨V¯Å¼Æ®i¶}¡]¹³®õ°Ç®i¶}¦¡¨º¼Ë¡^¡A¦]¦¹¤G¦¸©Î§ó°ª¦¸ªº®ÄÀ³¤§¥X²{¬O¬Û·í¦ÛµMªº¡C
µ{¦¡²ß§@¡Gµe¥X Logistic Map ¤§ x ¹ï n ªº§@¹Ï
ÂΤfÀH¥@¥N§@¹Ï
Æ[¹î¨ì¡G
(1) ¶i¤J¤F¥s©T©wÂI (fixed point) ªºÃ©wª¬ºA¡]»Pªì©lÂΤfȵLÃö¡^
(2) ¦³¨Ç¡]¸û¤jªº¡^r ¾ÉP·|¦³¨âÓ©T©wÂI
¡]²¤Æª©¡Glogistic.f¡^
¸É¥R¡G½d¨Òµ{¦¡¤¤ªºÃ¸¹Ï«ü¥O
pgmove(x,y)¡G ±Nµeµ§²¾°Ê¨ì (x,y) ªº¦ì¸m
pgdraw(x,y)¡G µeµ§±q¥Ø«eªº¦ì¸m¡Aµeª½½u¨ì (x,y)
pgeras¡G²M°£µe±
±q´X¦ó§@¹Ïªº¨¤«×¨Ó¬Ý©T©wÂI¤À§G»P¼Æ¶q¤W¡]ÀH r¡^ªºÅܤÆ
³z¹L¤@¨t¦C§@¹Ï¥i§e²{¡C
½d¨Òµ{¦¡§Þ¥©¤ÀªR¡G
ÀH¥@¥Nªº¤£¦P¦ÓÅܤơA¥H¤£¦PªºÃC¦âªí¥Ü¡C±N n_gen ¤À¬° Y¤z¬q¡A ²Ä¤@¬q¤£Åã¦â¡]I´º¦â¡^¡A³Ñ¤UªÌ½T«O n_gen ½üº¡¤]¤£·|¦A¨Ï¥Î¨ìI´º¦â¡C¡]§A¥i¥H¸Õ¸Õ¥@¥N¼Æ 50 ¨ì 500 ¨Ó·P¨ü¤@¤U¡^
¤À¤e¹Ïªºµ²ºc¡G¸H§Î
©ñ¤j¬Y¤@¤p½d³òªº r ¨Ó¬Ý¡A§ÚÌ·|¨£¨ì«ÂÐ¥X²{ªºÃþ¦üµ²ºc¡C
«ä¦Ò¡G³o¬O¬°¤°»ò¡H
bif_enlarge.f
½d¨Òµ{¦¡§Þ¥©¤ÀªR¡G
pgband ¬O¥\¯à±j¤jªº·Æ¹«´å¼Ð©w¦ì¨ç¦¡¡A¨C·í¹Bºâ¡A´N·|µ¥«Ý¥ªÁä©Î¬OÁä½LºV¤J¡A¤@¦³°Ê§@¡A´N·|°O¿ýIJµo¦ì¸m¤Î«öÁä¦r¤¸¡A¨Ñ¤§«á¨Ï¥Î¡C ¥Ü½d¦p¤U¡G
write (*,*) 'Now choose a range to enlarge using mouse pointer.'
write (*,*)
idummy = pgband (0, 1, 0.5, 0.5, x_pos, y_pos, CH)
x1 = x_pos
y1= y_pos
idummy = pgband (2, 1, x1, y1, x_pos, y_pos, CH)
x2 = x_pos
y2 = y_posif (x1.gt.x2) then
temp = x1
x1 = x2
x2 = temp
endif
if (y1.gt.y2) then
temp = y1
y1 = y2
y2 = temp
endif§ó¦h²Ó¸`¨£ ½u¤W¤â¥U
¬°¤°»ò¤À¤e·|µo¥Í¡H±q¨ç¼Æªº¹Ï§Î¨Ó¤F¸Ñ
Logistic Map ¦pªG¼g¦¨¤@Ó¹ê¼Æ§Î¦¡¡A¨ä¨ç¼Æ¹Ï§Î´N·|¤@Ó¶}¤f¦V¤Uªº©ßª«½u¡]¤U¹Ï¬õ½u¡^¡A¦Ó¨ä r ´N¥Nªí©ßª«½uªº¦±²v¡C¥@¥Nºt¤Æ¤@¨B¨B¡¥Nªº°Ê§@¡A¦b¹Ï¤W¥i¥Î¤@¨t¦C««ª½½u¤ô¥½uªº¹ïÀ³¨Ó§e²{¡A¨C·í¦³ x ȮɡA§@¤@¦¸««ª½½u§â x ¹ï¨ì¨ç¼Æ¹Ï½u¤W¡A¨ä°ª«×¬O y È¡A±µµÛ§@¤@¦¸¤ô¥½u¹ï¨ì y=x ¹ï¨¤½u¤W¡A¦¹¦ì¸m y ªºÈ·|»P x ªºÈ¤@¼Ë¡A«h¦A§@¤@¦¸««ª½½uIJ¤Î¨ç¼Æ½u¡A´N¬Û·í©ó±N¥N¤J x ©Ò±o¨ìªº y ¦A¤@¦¸¥O¦¨ x ¦A¥N¤J¨ç¼Æ¥h±o y¡A¦p¦¹´`Àô¤U¥h¡A¥i¹Gªñ¨ì©T©wÂI¡C
±´°Q¨ç¼Æ»P¹ï¨¤½u¥æ·|³B¤§±×²v»P¤À¤eªºÃö«Y
½Æ¼Æ r ªº Logistic Map »P¸H§Î
¤Ç¯÷³ù¤j¾Ç¼Æ¾Ç¨tªº²V¨P½Òºô¶¡]¦³²V¨P¦b«Ü¦h¤£¦P»â°ìªºÀ³¥Î¡^
http://pear.math.pitt.edu/mathzilla/Examples/chaos/index.html
²V¨PÃÀ´Y
http://www-chaos.umd.edu/gallery.html
ICM 2006 Benoit Mandelbrot ¸H§ÎÃÀ³NÄvÁÉ
http://www.fractalartcontests.com/2006/