²Ä¥|¶g¤W½Òºõn
¦b¥»¶g¤T¤p®Éªº½Òµ{¤¤¡A§Ú̱N³°Äò§¹¦¨¤U¦C´Xӳ椸¡A¨C¤p³æ¤¸¬ù¥b¤p®É
¤@¡B ¥H PGPLOT ¿é¥X°Êµeªº§Þ¥©¤¶²Ð»P¹ê²ß¡]¥b¤p®É¡^
½d¨Òµ{¦¡¾\Ū planet.f
°ò¥»ÃöÁ䪺«ü¥O
´«ÃC¦âªº«ü¥O call pgsci(i)
¨ä¥L¡]«Dµ´¹ï¥²n¡A¦ý¤´¦³¥Î¤§¡^«ü¥O¡]°Æµ{¦¡¡^
³]©w¶ñ¥RÄݩʪº«ü¥O call pgsfs(j)
j ¥i¥H¬O¾ã¼Æ 1¡B2¡B3¡B4¡A®ÄªG¦p¤U¡G
µe¶ê pgcirc(x,y,r)
¶}©l½w½Ä°Ï¯Ç¤J pgbbuf
µ²§ô½w½Ä°Ï°e¥X pgebuf
³]©w¹Ï±¤j¤p pgpap(x_size,y/x-ratio)
¦Û¦æ¸Õ°µ¡AºÉ±¡³Ð·Nµo´§
¼g¦nµ{¦¡«á½sͮɡA¥Ñ©ó§Aªºµ{¦¡¤¤¦³¨Ï¥Î¨ì pgplot ø¹Ï°Æµ{¦¡¡A¦]¦¹½sĶ«ü¥On¹³³o¼Ë¤U¡G
gfortran -o my_prog.x my_prog.f -L /usr/X11R6/lib -lX11 -L /usr/local/pgplot -lpgplot
¥H¤Wª`·N X11R6 ªº X »P R ¬O¤j¼g¡B11 ¸ò 6 ¤@¼Ë¬O¼Æ¦r¡B¦³ -L ªº¦a¤è¤@©wn¥Î¤j¼g¡A«á±³sµ²µ{¦¡®w¥Îªº -lX11 »P -lpgplot ¤§ "-l" «h¬O^¤å¤p¼g l ¡C
¤p§Þ¥©»Pª`·N¨Æ¶µ
¦b³Ì«á¦³¥Î call pgclos »P¨S¦³¨Ï¥Îªº®t§O
¦³¥Î call pgclos ®É¡A©Ò¦³Ã¸¹Ï°Ê§@§¹²¦«á¡A¸Óµe±¤´·|¯dµÛ¨Ñ¨Ï¥ÎªÌ¦³®É¶¡Æ[¬Ý¡Aª½¨ì«ö¤U enter ¤~¥þ³¡Ãö³¬°h¥X¡C ¤Ï¤§¡A Yµ{¦¡³Ì«á¨S¦³¦³¥Î¨ì call pgclos ®É¡Aµ{¦¡¤@¶]§¹´N¤°»ò³£Ãö°_¨Ó¡A§Ú̦]¦¹´N¥u¨£µe±°{¤F¤@¤U¡A¤@ÂI³£¬Ý¤£²M·¡©ÒµeªºªF¦è¡C
¨Ï¥Î top ¨Ó±þ±¼¤£°±¤£±¼ªº°õ¦æ¤¤µ{¦¡
(1) ¥´ top ¶i¤J«ö CPU ¦£¸Lµ{«×±Æ§Çªºµe±
(2) ¬Ý§Aªºµ{¦¡ªº PID (Processs ID) ¡A¶¶«K¬Ý¤@¤U¥¦ªº CPU ¨Ï¥Î¦Ê¤À¤ñ
(3) «ö k µe±·|µ¥§A¥´¤J·Q±þ±¼¤§ job ªº PID
(4) ¥¦°Ý§A±þ±¼¸Ó«ü©w PID¡An§A½T»{¡A«ö¤F Enter ´N±þ±¼¤F¡A¨Ã«h¨ì°ÊºA±Æ§Çª¬ºA
(5) «ö q °h¥X top
©óµêÀÀ¾÷¾¹¨Ï¥ÎÀH¨ºÐªº¤èªk
(1) ¦bµêÀÀ¾÷¾¹¬O«e´ºªº±¡ªp¤U¡A ´¡¤JÀH¨ºÐ
(2) ¦b²×ºÝ¾÷¸Õµ¡¤¤¥i¥H¥´ df ¨ÓÆ[¬ÝÀɮרt²Îªº±¡ªp¡A·|¬Ý¨ì·s¼W¥[ªº /media/disk Àɮרt²Î¥Ø¿ý¡C¨Ã¥B¦b®à±¤W¤]·|¬Ý¨ì·sªº¥i¨ø¸ü¸Ë¸m¥X²{¡C
(3) ¦b¤å¦r¤¶±¤¤¾Þ§@¼Ð·Ç UNIX ªº«ü¥O¡A±NÀÉ®× cp ¨ì /media/disk §Y¥i¡A¤]¥i¥H¦b®à±¶}±Ò¬ÛÃöªº¸ê®Æ§¨¤§¶¡©ì©ñÀɮסC
(4) ¶ÇÀɧ¹¦¨«á¡AÃö³¬ÄÝ©óÀH¨ºÐªº¸ê®Æ§¨¡]ª`·Nn©Ò¦³µøµ¡³£¨S¦³ cd ¨ìÀH¨ºÐªº¸ê®Æ§¨¤¤¡^¡A¨Ã¥Î·Æ¹«¥kÁä¨Ï¸õ¥X¿ï³æ¨Ã¿ï¨ø¸ü¡A§Y¥i¡C¥t¤]¥i¦A¥Î df ©ó²×ºÝ¾÷µøµ¡¤¤¬d¬Ý /media/disk ¥Ø¿ý¬O§_¤v¸g®ø¥¢¡C
¾Ç¥Í³Ð·N°Êµe¦¨ªG®i
½Ð¦Ü¦¹³sµ²ªY½à
¡]¥»¶g¹ê»Ú¶i«×¶i¦æ¨ì¦¹¡A¤´¥¼¯à¶}©l¶i¤J©@°Ø§N«o¡^
¤G¡B¹q¸£¼ÒÀÀ¹êÅç¡G©@°Ø§N«o°ÝÃD¡]¦@¨â¤p®É¥b¡^
°ÝÃD¡G¥ý¥[¥¤ºë©Î¬O«á¥[¥¤ºë©@°Ø§N±o§Ö¡H
ª«Åé¶q¡G·Å«×ÀH®É¶¡ªºÅܤÆ
ª«²z©w«ß¡]¼Æ¾Ç¼Ò«¬¡^¡G¤û¹y§N«o©w«ß¡]·Å«×ÅܤƲv»P·Å®t§e¥¿¤ñ¡^
dT / dt = - r (T - Ts)
¨ä¤¤·Å«× T ¬O®É¶¡ t ªº¨ç¼Æ¡A§Y T(t) ¡ATs ¬O¥~¦bÀô¹Òªº·Å«×¡]«Ç·Å¡^¡A
§N«o«Y¼Æ r ¦p¦ó©w¥X¡H
¥H¤U¬°¹ê´úÈ¡A·í®É«Ç·Å 17 «× C¡G
®É¨è¡]¤ÀÄÁ¡^ ¶Â©@°Ø·Å«×(«×C) ¥Õ©@°Ø·Å«×(«×C) 0 82.3 68.8 2 78.5 64.8 4 74.3 62.1 6 70.7 59.9 8 67.6 57.7 10 65.0 55.9 12 62.5 53.9 14 60.1 52.3 16 58.1 50.8 18 56.1 49.5 20 53.3 48.1 22 52.8 46.8 24 51.2 45.9 26 49.9 44.8 28 48.6 43.7 30 47.2 42.6 32 46.1 41.7 34 45.0 40.8 36 43.9 39.9 38 43.0 39.3 40 41.9 38.6 42 41.0 37.7 44 40.1 37.0 46 39.5 36.4 ¥Õ©@°Ø»P¶Â©@°Ø¬O§_³£º¡¨¬¤û¹y§N«o©w«ß©Ò´yzªº©O¡H¦p¦ó½T»{¡H¦p¦ó°µ¤U¤@¨B¡H
ºtºâªk¡G
³oùؼƾǰÝÃDªº¥»½è°ÝÃD¡G
§ÚÌ¥uª¾¹D¨ç¼Æ y(x) ªº³B³B±×²v y'(x) ¬Oµ¥©ó¤wª¾ªº f(x)¡A¡]f(x) ¤¤Y©úÅã¥X²{ y¡A«h¤]¥i¥H¼g¦¨ f(x,y) ¡^ ¡C¦Ó§Ú̧Ʊ檾¹D¨ç¼Æ y(x) ¡C
Eular ºtºâªk¡GÆ[ÂI¤@¡]§â¿n¤ÀÂ÷´²¤Æ¡^
ì¨ç¼Æ y(x) ¦b x0 ³Bªº±×²vÈ f(x0) ¬O
[ y(x0+dx) - y(x0-dx) ] / 2x0¡A¤]¥i¼g§@
[ y(x0+dx) - y(x) ] / dx ¡]¤Ï¥¿ dx «Ü¤p¡^
¡A¦]¦¹
y(x0+dx) = y(x0) + f(x0) dx
¦pªG§ÚÌ©w¤@®æ xn ¨ì¤U¤@®æ xn+1 ¤§¶¡ªº¶¡®æ¬O dx ¡A«h¤W¦¡Åܦ¨
y(xn+1) = y(xn) + f(xn) dx
¦Ó³o¥¿¬O Eular ºtºâªk¡A§i¶D§Ú̦p¦ó±q±×²v¨ç¼Æ¤@¨B¨B±À¥Xì¨ç¼Æ¡C ¡]¦ý¤]½Ð¤j®aª`·N¡A°_©lªº²Ä¤@ÓÂIªº¨ç¼ÆÈ¥²¶·n¥ýª¾¹D¡C¡^
Euler ºtºâªk¡GÆ[ÂI¤G¡]§â·L¤À²Å¸¹ªñ¦ü´«¦¨®t¤À²Å¸¹¡^
¹ï©ó¤@Ó²³æªº·L¤À¤èµ{ dy / dx = f(x,y)¡A¦b Dx «Ü¤p®É¥i·í§@ Dy / Dx = f(x,y)¡A¬G Dy = f(x,y) Dx
¤S·í Dx ¬Oµ¥¶¡¹j xn - xn-1 = ... = x3 -x2 = x2 -x1 = Dx ®É
Dy = yn+1 - yn = f(xn,yn) Dx
³oùتº
yn+1 = yn - f(xn,yn) Dx
´N¬O¦³¦Wªº Euler¡]¶ø¨Ì°Ç¡A¤]¦³Â½Ä¶§@¼Ú¼Ö¡^ºtºâªk¡C
µ{¦¡¬yµ{¡Gµ¹©w§N«o«Y¼Æ¡B©@°Øªì©l·Å«×¡B«Ç·Å¡Aµe¥X T(t) ªº¹Ï
(0) ¶}©l
(1) Ū¤J§N«o«Y¼Æ¡B©@°Øªì©l·Å«×¡B«Ç·Å¡B¤p¶¡¹j®É¶¡³]©w¡B§Æ±æ¼ÒÀÀ¤§®É¶¡
(2) ¦b°j°é¤¤¡A¥H Euler ªk¹w´ú¤U¤@¤p¬q®É¶¡«áªº·Å«×¡A¨Ãµe¹Ï¡Aª½¨ì°j°é¶]§¹
(3) µ²§ô
½Ð¦Û¦æ¼¶¼gµ{¦¡
¼g¦nµ{¦¡«á½sͮɡA¥Ñ©ó§Aªºµ{¦¡¤¤¦³¨Ï¥Î¨ì pgplot ø¹Ï°Æµ{¦¡¡A¦]¦¹½sĶ«ü¥On¹³³o¼Ë¤U¡G
gfortran -o my_prog.x my_prog.f -L /usr/X11R6/lib -lX11 -L /usr/local/pgplot -lpgplot
¥H¤Wª`·N X11R6 ªº X »P R ¬O¤j¼g¡B11 ¸ò 6 ¤@¼Ë¬O¼Æ¦r¡B¦³ -L ªº¦a¤è¤@©wn¥Î¤j¼g¡A«á±³sµ²µ{¦¡®w¥Îªº -lX11 »P -lpgplot ¤§ "-l" «h¬O^¤å¤p¼g l ¡C
§¹¦¨¹Ï¨Ò
½d¨Òµ{¦¡°Ñ¦Ò
µ¥¤£¤Î¤F¡A¥ýª±¤@¤U¦Ñ®v¤v¸g°µ¦n¤Fªº¥i°õ¦æÀÉ cooling.x
¤@¤U¤l¼g¤£¥X¨Ó¡A°½¬Ý¤@¤U¦Ñ®v½d¨Òµ{¦¡¤¤ªº¼gªk cooling.f
¡]¾¨¶q¥ý¦Û¤v¸Õ¸Õ¬Ý¡Aª`·N¥i°õ¦æÀɬO Linux Àô¹Ò¥Îªº¡^
¤ÀªR»P°Q½×¡]º[¨t¦C²ßÃD¡^
¤@¡B¨Ì·Ó¤û¹y§N«o©w«ß¡A¼g¤@Ó¹w´úª«Åé·Å«× T(t) ªºµ{¦¡¡A¨ä¤¤§N«o«Y¼Æ r¡Bªì©l·Å«× T(0)¡BÀô¹Ò·Å«× Ts¡A¥H¤Î·L¤p®É¶¡¶¡¹j Dt ¥Ñ¥~³¡Åª¤J¡C
¢Ï¡D§Aªºµ{¦¡¼g¦n¤F¡A¤]¶¶§Q¦a³q¹L½sĶ¨Ã²£¥Í¤@Ó¥i°õ¦æÀÉ¡A¤]´N¬O«ü¥Oªº»yªk³£¥¿½T¤F¡A¦ý§A«ç»òª¾¹D¥¦¦³¨S¦³ÅÞ¿è¤Wªº¿ù»~¡]µ{¦¡¤º³¡ªº¿ù»~³q±`¥s bug¡A¦]¬°¾ú¥v¤W´¿¦³ÂΤl¥d¦b¯uªÅºÞ¿N±¼¾ÉP¹q¸ôÉÅÞ¿è¿ù»~ªº¨Æ¥ó¡^¡^¡A©Î¤ñ¤è»¡¤£¤p¤ß§â + ¸¹¥´¦¨ - ¸¹¡H
¢Ð¡D·L¤p®É¶¡¶¡¹j Dt ¬Oµ{¦¡¨Ï¥ÎªÌ¦Û¤v¥²¶·¨M©wªº¶q¡A½Ð¸Õ¸Õ¬Ý¤£¥Î¼Æ¶q¯Åªº¤j¤p¡C§Aı±o¥Î¦h¤pªºÈ¤~°÷ºë½T¡H
¤G¡B±q¹êÅç¼Æ¾Ú¡]°Ñ¦Ò¤Uªí¡^«Ø¥ß©@°Ø¤§§N«o«Y¼Æªº¹ê§@
¢Ï¡D§A»{¬°¤û¹y§N«o©w«ß¯à¤£¯à´yz¤Wzªº¹êªp¡H¡]·Q·Q¬Ý§ÚÌn«ç»ò¼Ë¨Ó¦^µª³oÓ°ÝÃD¡C¡^
¢Ð¡D¦pªG§ÚÌÄ@·N±µ¨ü¥Î¤û¹y§N«o©w«ß¬°¼Ò«¬¨Ó´yz¹êªp¤¤ªº§N«o¹Lµ{¡A«h§An«ç»ò¼ËÀò±o¤@Ó¸û²Å¦Xªº§N«o«Y¼Æ r È¡H
¤T¡B°²³]¥[¤J¥¤ºë¥u·|²³æ¦a§â²~¤¤·Å«×°§CÄá¤ó¤«×¡A«h°Ý¤@²~è¨R¦nÄá¤ó 90 «×ªº©@°Ø¡An·Q§ÖÂI¹F¨ì¶}©l¥i¥H«~À|ªºÄá¤ó 75 «×¡A§A«ØÄ³¥ý¥[¥¤ºë©Î¬O«á¥[¥¤ºë¡H
¥|¡B¤@Ó¶qªºÅܤƲv»P·í®É¸Ó¶q¤§¤j¤p¦³Ãöªº²{¶H¡AÁÙ¦³¤°»ò¨Ò¤l¡H
¶i¶¥¾\Ū¡G
Gould and Tobochnik, An Introduction to Computer Simulation Methods -- Applications to Physical Systems, Addison Wesley (1996) Chapter 2