²Ä¤¶g¤W½Òºõn
¹q¸£¼ÒÀÀ¹êÅç¡G©@°Ø§N«o°ÝÃD¡]¦@¤T¤p®É¡^
°ÝÃ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 ¡]¹ê§@ÃD¡A²Ä¤GÃD¡^
¥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¤@¡]§â±×²vÂ÷´²¤Æ¡^
Y dx «Ü¤p¡Aì¨ç¼Æ y(x) ¦b x0 ³Bªº±×²vÈ f(x0) ¬O¬Û·í©ó¡]¥ÕªO§@¹Ï¥Ü½d¡^¡G
[ y(x0+dx) - y(x0-dx) ] / 2dx0¡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¤À²Å¸¹¡A¾A¦X¤w¸gŪ¹L·L¿n¤Àªºµ£¾Ç¡^
¹ï©ó¤@Ó²³æªº·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 Àô¹Ò¥Îªº¡^
¡]¥»¦¸¤W½Ò¶i«×¾Þ§@¨ì³oùØ¡^
6 ¤ë 30 ¤é
º¥ý§Ú̧â cooling.f µ{¦¡¦^ÅU¤@¤U¥¦ªº¤º®e¡A¥H«K«Ý·|¶i¤Jª¬ªp¡G
¤Àª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
¡]´£¥Ü¡G¥H¤H¸£¥N´À¹q¸£¥H¬Á²³æ¤§¨Ò¤l©Î¸û¤Öªº¨BÆJ¨Ó®Ö¹ï¡^
¢Ð¡D·L¤p®É¶¡¶¡¹j Dt ¬Oµ{¦¡¨Ï¥ÎªÌ¦Û¤v¥²¶·¨M©wªº¶q¡A½Ð¸Õ¸Õ¬Ý¤£¥Î¼Æ¶q¯Åªº¤j¤p¡C§Aı±o¥Î¦h¤pªºÈ¤~°÷ºë½T¡H
¦Ñ®vªº¥mÀ{¡G§Y¨Ï¼Ú¼Öºtºâªkªºµ{¦¡³£°µ¹ï¤F¡A¤´nª`·N·L¤p®É¶¡¨B´T Dt ¤£¯à¨ú±o¤Ó¤p¡A§_«h·|¿ù±o«D±`Â÷ÃСAì¦]¥i²µu¦a²z¸Ñ¬°¡A¦³¬YÓÀþ¶¡¡A¥Ñ©ó§N«o±`¼Æ¬Otªº¡]°·Å¡^ªº½t¬G¡ADt ¼¤W¥hÀ³¸ÓnÅý·Å«×°¤@ÂIÂI¡]¦]¬°§N«o©w«ß¤½¦¡¤¤¦³t¸¹¡^¡A ¦pªG Dt ¤Ó¤j¤F¡A¬Æ¦Ü·|µo¥Í©@°Ø·Å«×´î±o¤Ó¦h¦Ó§C©óÀô¹Ò·Å«×¡A¦p¦¹´N¤j¤j¦a¤£¹ï¤F¡C
¤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
¦Û¤v¥ý·Q¤@·Q¡A¦p¦ó©w¥X r È¡]·Q¤£¥X¨Ó¦A¬Ý¡^
¤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
¤¡Bºtºâªkªººë½T«×»Péw©Êªº°ÝÃD¡C¡]ì°Ñ¦Ò±Ð¬ì®Ñ¤º¤å¡^
§Q¥Î¹q¸£¶i¦æ¼ÆÈ¹Bºâ¡A¨ä»~®tªº¨Ó·½¦³¤G¡A¨ä¤¤¤@Ó¬O¥|±Ë¤¤J»~®t¡]¤S¥s±Ë¥h»~®t©Î±Ë¤J»~®t¡A^¤å¥s round-off error ©Î rounding error¡A¥¦¬Oµo¥Í¦b·í¹q¸£¦b§Q¥Î¨ä¦³ªº¦ì¤¸³B²z¦³¤p¼ÆÂIªº¼ÆÈ¡]¦p¹ê¼Æ¡A¤S¥s¯BÂI¼Æ¡^¶Í·|¦³»Ýn¥|±Ë¤¤Jªº±¡ªp¡A¤ñ¤è»¡Y¶È«O¯d¤p¼ÆÂI«á¤@¦ì¡A«h 1.1 ¼¥H 1.1 ªºµ²ªG´Nnªí¥Ü¦¨ 1.2 ¦Ó¤£¬O§ó¥¿½Tªº 1.21¡A¡F¥t¥~¤@ºØ»~®t¬O¨Ó¦ÛºtºâªkùØÀY©Ò¨Ï¥Îªºªñ¦ü¡A¥sºIÂ_»~®t©Î×°Å»~®t¡A^¤å¥s°µ truncation error¡A·|¦³³oºØ¦WºÙ¬O¦]¬°ºtºâªk±`¥ÎµL½a¯Å¼Æ®i¶}ªº§Î¦¡¡A¨ä¤¤«Ü¦³¦Wªº¤ñ¤è»¡®õ°Ç®i¶}¦¡¡]Tylar's expansion¡^¡C
¶i¶¥¾\Ū¡G
Gould and Tobochnik, An Introduction to Computer Simulation Methods -- Applications to Physical Systems, Addison Wesley (1996) Chapter 2