Computational Physics II
In Greek
Introduction to monte carlo methods in statistical physics.
- 14 Views
Ë Ñ ô×
ÍÔÓÐÓ ×Ø
Ù×
ÁÁ
Å × Û ×Ø
ÈÖÓ×ÓÑÓ ô× ×Ø ËØ Ø ×Ø Ù×
Monte Carlo
ØÓ Ñ Ó Ò
Ñ
ÍÔÓÐÓ
ר
Å
Ù×
ÁÁ
Ü Ñ ÒÓ ËÕÓÐ
Å Ø×
Ó ÈÓÐÙØ ÕÒ Ó
ÃÛÒר ÒØÒÓ
ƺ
Ò
ÒÛר ÔÓÙÐÓ
¾
Á ÒÓÙ ÖÓÙ ¾¼¼
ii
ÈÖ ÕÑÒ
I
Ì Â Å ÄÁ
ÌÁËÌÁÃÀ ÍËÁÃÀ ÁË Ï À º º º º º º º ÆÌÊÇÈÁ º º º º º º º Á ÃÍÅ ÆË ÁË º º º ËÍÆ ÊÌÀË ÁË ËÍËÉ ÈÊÇÌÍÈÇ ISING º º º ÈÊÇ ÄÀÅ Ì ºººº
½ ºººººº ºººººº ºººººº ÌÁËÅÇÍ ºººººº ºººººº º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º
¿ ¿
½ ËÌ ½º½ ½º¾ ½º¿ ½º ½º ½º
½½ ½¿ ½ ¾½
¾¿ ¾ ¾ ¾ ¾ ¾ ¿¼
¾ ÈÊÇËÇÅÇÁÏË ÁË MONTE CARLO ¾º½ Á Å ÌÇÄÀ Á ººººººººººººººº ¾º½º½ ÈÄÀ Á Å ÌÇÄÀ Á ººººººº ¾º½º¾ IMPORTANCE SAMPLING º º º º º º º ¾º¾ Á Áà ËÁ Ë MARKOV º º º º º º º º º º º ¾º¿ ËÍÆÂÀÃÀ Ä ÈÌÇÅ ÊÇÍË ÁËÇ Í ÀËÀË ¾º ÈÊÇ ÄÀÅ Ì ººººººººººººººººº ¿ Ç ÌÍÉ ÁÇË È ÊÁÈ ÌÀÌÀË ¿º½ ÌÍÉ Á Ë Á ÊÇÅ Ë º º º º º º º º º º º ¿º¾ ´ Í ÇµÌÍÉ ÁÇÁ ÊÁÂÅÇÁ º º º º º º º º ¿º¾º½ Æ ÄÍËÀ ÈÊÇ Ê ÅÅ ÌÇË º º º º ¿º¾º¾ ÈÇÌ Ä ËÅ Ì º º º º º º º º º º º ¿º¿ Å Ä ÌÀ ÌÇÍ ÌÍÉ ÁÇÍ È ÊÁÈ ÌÀÌÀ º ¿º¿º½ À ÏÅ ÌÊÁ ÌÏÆ ÌÍÉ ÁÏÆ Á ¿º¿º¾ Æ ÄÍËÀ ÌÇÍ ÈÊÇ Ê ÅÅ ÌÇË ¿º¿º¿ È Ê ÄÄ Ë ÌÇÍ ÅÇÆÌ ÄÇÍ º ¿º ÈÊÇ ÄÀÅ Ì ºººººººººººººººº
ººººº ººººº ººººº ººººº ººººº ÊÇÅÏÆ ºººººº ºººººº ºººººº
º º º º º
¿½ º º º ¿¾ ººº ¿ ººº ¿ ººº ººº ººº ¿ ººº ººº ººº
iii
iv
È ÊÁ Éï ÇÅ Æ
ÈÊÇËÇÅÇÁÏËÀ ÌÇÍ ÈÊÇÌÍÈÇÍ ISING º½ Ä ÇÊÁÂÅÇË METROPOLIS º º º º º º º º º º º¾ ËÉ Á ËÅÇË ÃÏ Áà º º º º º º º º º º º º º º¾º½ Ç ÃÏ ÁÃ Ë º º º º º º º º º º º º º º º º º¾º¾ ÄÌÁÏËÀ ÌÇÍ INTERFACE º º º º º º º¿ Æ ÊÉÀ ÀÆ ÍÉÇË ´À ººº ËÌÀµ º º º º º º ÌÇ ÀÌÇÍÅ ÆÇ¸ À Æ ÊÌÀËÁ º º º º º º Æ ÀÌÏÆÌ Ë ÌÇ ººº Ë ÄÅ º º º º º º º º º º½ Ë ÄÅ Ì Æ ÊÌÀÌÏÆ Å ÌÊÀË º º¾ Ç ËÇÍ Á Ë ÁÆ Á ÉÊÀËÁÅÇË º º º º º º º¿ ÇÌ Æ Æ ÁË ÌÁË ÅÈÇÌ Ë ËÇͺºº º º ÈÊÇ ÄÀÅ Ì ºººººººººººººººººº
ººº ººº ººº ººº ººº ººº ººº ÏÆ ººº ººº ººº
º º º º º º º º º º º
º º º º º º º º º º º
º º º º º º º º º º º
º º º º º º º º º º º
¿ ¿
½¼½ ½¼ ½¾¿ ½¾ ½¿¼ ½¿½ ½¿¾ ½¿¿ ½¿
II
È
Ê ÊÌÀÅ Ì
½
ÍÌÇËÍËÉ ÌÁËÅÇͽ
½ ËÍÆ ÊÌÀËÀ à Á ÉÊÇÆÇË ¾ ÍÈÇÄÇ ÁËÅÇË Ë ÄÅ ¾º½ Å ÂÇ ÇË JACKKNIFE º ¾º¾ Å ÂÇ ÇË BOOTSTRAP ¾º¿ À ËÍ ÃÊÁËÀ ÌÏÆ Å ÂÇ ¾º ÈÊÇ ÄÀÅ Ì ºººººº
ÌÏÆ ºººº ºººº ÏÆ º ºººº
º º º º
º º º º
º º º º
º º º º
º º º º
º º º º
º º º º
º º º º
º º º º
º º º º
º º º º
º º º º
º º º º
º º º º
½ º½ º½ º½ º½¾
ÐÓ Ö
× ×Ù
ØÓ Ñ Ñ℄
ÖÑØ
½℄ M. E. J. Newman and G. T. Barkema, Monte Carlo Methods in Statistical Physics, Clarendon Press, Oxford. ÈÓÐ Ð ÐÓ ×ØÓ ×Ûר ÔÔ Ó ØÓ Ñ Ñ ´Ã º ½ µº ¾℄ B. A. Berg, Markov Chain Monte Carlo Simulations and Their Statistical Analysis. With Web-Based Fortran Code, World Scientific, 2004. Ë ÕÖÓÒÓ¸ Ð ÔØÓÑ Ö
Ñ ÔÖÓ Ö ÑÑ Ø × Ðô×× ÓÖØÖ Òº Ã Ð ÔØ × ÕÖÓÒ
Ñ ÓÙ
Ò ÐÙ×
ÔÛ
ÑÙÐØ ×ØÓ Ö ÑÑ Ò ¸ ÑÙÐØ
ÒÓÒ
Ð × ÑÙÐ Ø ÓÒ
º º ÌÓ ×Ùר ÒÛ ×ØÓÙ
Ô Ó Ô Ø Ø Ó
Ó Ø Ø
º ¿℄ K. Binder, D.W. Heermann, Monte Carlo Simulation in Statistical Physics, Fourth Edition, Springer. Ü Ö ØÓ ÐÓ × ÒØÓÑ Ô Ö Ø¹ × Û × Å ÒØ à ÖÐÓ ×ÙÑÔÐ ÖÛÑ Ø ØÓÙ ½℄º È Ö Õ ÛÖ ×Û ÐÙÝ ØÓÙ Ñ ØÓ
ØÓÙ ØÙÕ ÓÙ Ô Ö Ô Ø Ø º ℄ H. Gould, J. Tobochnik kai H. Christian, Coumputer Simulation Methods, Application to Physical Systems, Third Edition, Addison Wesley. ÈÐ Ö
ÐÓ ÙÔÓÐÓ ×Ø
Ù×
Ñ Ð × ÔÖÓ×ÓÑÓ ô¹ ×
Monte Carloº ÌÓ ÐÓ ×Ñ ØÛÒ ÔÖÓ×ÓÑÓ ô× ÛÒ Ò Ö ÑÑ Ò × Java Ò ÔÖÓ× Ö Ø ÖÑÓ
Ñ ÓÒ
Ö ×Ø
ÙÒ Ø Ø Ø
º Ø Ø Ð Ö ×ØÓ opensourcephysics.org Ã Ð Ó ½℄
℄ L. Kadanoff, Statistical Physics – Statics, Dynamics and Renormalization, World Scientific. Ü Ö ØÓ ÐÓ ×Ø Ø ×Ø
Ù×
Ô ØÓÒ Ô ÐÙØ ×ØÓ Ô Óº
v
vi
Á ÄÁÇ Ê
ï Á
℄ J. J. Binney, N. J. Dowrick, A. J. Fisher and M. E. J. Newman, The Theory of Critical Phenomena, Oxford. È Û × Û ×Ø Ò ÛÖ ØÛÒ Ö× ÑÛÒ ÒÓÑ ÒÛÒ Ø
ÓÑ
Ô Ò ÒÓÒ ÓÔÓ ×
º ℄ R. K. Pathria, Statistical Mechanics, Pergamon. ÃÐ ×× Õ Ó Ô Ô ÓÙ Ñ Ñ ×Ø Ø ×Ø
Ù×
º ℄ F. Mandl¸ ÔÖÓÔØÙÕ
ËØ Ø ×Ø Ù×
Ñ Ø ÔØÙ¹ × Û ×
ÔÔ Óº
¸
º
º ÈÒ ÙÑ Ø Ó º
ÔÐ
℄ R. J. Baxter, Exactly Solved Models in Statistical Mechanics. Ò ÐÙ¹ × ØÛÒ ´Ð ÛÒµ ÔÖÓØ ÔÛÒ ×Ø Ø ×Ø
Ù×
ÔÓÙ Ô ÕÓÒØ Ö Ó
Ò ÐÙØ
Ð ×
º ½¼℄ E. Ising, Beitrag zur Theorie des Ferromagnetizmus, Z. Phys. 31 (1925) 253–258º ÌÓ ÔÖ ØÙÔÓ Ising ר Ò ÔÖôØ ØÓÙ Ø ÔÛ× Ñ Ø Ð × ØÓÙ ÑÓÒÓ ×Ø ØÓÙ ÔÖÓ Ð Ñ ØÓ
º ½½℄ L. Onsager, Crystal Statistics. I. A Two–Dimensional Model with an Order–Disorder Transition, Phys. Rev. 65 (1944) 117–119º À Ò ÐÙØ Ð × ØÓÙ ×Ø ØÓÙ ÔÖ ØÙÔÓÙ Ising¸ Ð × Onsagerº ½¾℄ K. Huang, Statistical Mechanics, John Wiley & Sons, New York, ed. 1987º Ä ÔØÓÑ Ö
Ò ÐÙ× Ø
Ð ×
Onsagerº Ã Ð Ó ¿℄
½¿℄ J. Ambjørn, B. Durhuus, T. Jonsson, Quantum Geometry, Cambridge Monographs on Mathematical Physics, Cambridge University Pressº È ÖÓÙ× × ØÓÙ ØÙÕ ÓÙ Ô Ö Ô Ø Ø Ô ÛÑ ØÖ × ÓÔ º ½ ℄ C. Itzykson, J.M. Drouffe, Statistical Field Theory, Volume 1, Cambridge Monographs on Mathematical Physics, Campbridge University Pressº È ÖÓÙ× × ØÓÙ ØÙÕ ÓÙ Ô Ö Ô Ø Ø Ô Ø × ÓÔ Ø
Ù Ð
 ÛÖ
È ÓÙ ½ ℄ W. H. Press, S. A. Teukolsky, W. T. Vetterling, B. P. Flanney, Numerical Recipes, The Art of Scientific Computing, Cambridge University Pressº ÌÓ ÐÓ Ò Ð Ö × ÑÓ ×Ø Ò ×ØÓ× Ð ÛÛÛºÒÖº
ÓѺ ½ ℄ D. E. Knuth, Seminumerical Algorithms, Vol. 2 of The Art of Computer Programming, Addison-Wesley, 1981.
Á ÄÁÇ Ê
ï Á
vii
½ ℄ M. L¨ scher, Comput. Phys. Commun. 79 (1994) 100; F. James, u Comput. Phys. Commun. 79 (1994) 111; Erratum 97 (1996) 357; The Scalable Parallel Random Number Generators Library (SPRNG) for ASCI Monte Carlo Computations at Florida State University, http://sprng.cs.fsu.edu/º Ô ÔÐ ÓÒ Ò ÓÖ
ÒÒ ØÖ
ØÙÕ ÛÒ ¹ Ö ÑôÒº Ã Ð Ó ℄
½ ℄ Metropolis, N., Rosenbluth, A.W., Rosenbluth, M.N., Teller, A.H. and Teller, E., J. Chem. Phys. 21 (1953) 1087. ½ ℄ Nightingale, M. P. and Bl¨te, H. W. J., Phys. Rev. Lett. 76 (1996) 4548. o ¾¼℄ M¨ ller-Krumbhaar, H and Binder, K., J. Stat. Phys. 8 (1973) 1. u ¾½℄ Efron, Bradley SIAM Review 21 (1979) 460; Ann. Statist. 7 (1979) 1;Efron, B and Tibshirani, R. Statistical Science 1 (1986) 54. ×Ñ Ð Ö Ô ØÓ projecteuclid.orgº Ã Ð Ó ℄
¾¾℄ A. Pelisseto and E. Vicari, “Critical Phenomena and Renormalization– Group Theory”, Phys. Reports 368 (2002) 549. ¾¿℄ F. Y. Wu, The Potts Model, Rev. Mod. Phys. 54 (1982) 235
viii
Á ÄÁÇ Ê
ï Á
Å ÖÓ
I Ì Â Å ÄÁ
½
Ã
Ð Ó½ ÍËÁÃÀ
ËÌ ÌÁËÌÁÃÀ
ËØÓ Ð Ó ÙØ Ò Ø Ñ Ù×
º ËØ ÕÓ
Ò Ó ÒÒÓ ×ØÓ Ñ ÒÓ¸ ÓÔ Ø Ò Ò Ø Ø Ò Ò Ø ÒÓ Ø ×ØÓ Ò ØÖ Ü ×Ø Ð Ó Ö ×Ø ØÓ Ô ÙÑ Ø ÔÔ Ó Òô× ÛÒ ½℄ ℄º
Ô× Ô × × ôÒ ÒÒÓ ôÒ Ø
ר Ø ×Ø
ÙØ
Ò Ö × Ö ×ØÓ Ò × × ÒØÓÑÓ ÕôÖÓ ÔÖÓ×Ô Ò Ñ ×Ø Ô ÐÙØ Ö
º Ò ×Ñ ØÓÙ Ð ÓÙ¸ ÔÖ Ô Ó Ó Ø Ø
Ò Ø ×Ø
Ù×
º Ò Ø¸Ð Ð Ò ÖÓÒØ ר Ò Ð Ó Ö ØÛÒ × Ñ ô× ÛÒ
½º½
ÁË
ÏÀ
À ËØ Ø ×Ø Ù× Õ × Ò × ÓÔ Ò Ô Ö Ö Ý ×Ùר Ñ Ø Ñ ÔÓÐ Ñ ÐÓ ÖÑ ÑôÒ Ð Ù Ö
Nº ÔÐ ×Ùר Ñ Ø ÕÓÙÒ ØÙÔ N ≈ 1023 1044 º Ø ×Ùר Ñ Ø ÙØ Ó Ü ×ô×
ÔÓÙ Ô Ö Ö ÓÙÒ Ñ ÖÓ× ÓÔ ØÓ × ×Ø Ñ Ò ÔÖ Ø Ò ØÓÒ ØÐ Ñ ÐÐÓÒ ÕÖ ×ØÓ Ò ÐÙ Ó Òº Ö Ó Ò Ñ Ö ×Ûר ÓÖ ×Ñ Ò
ÕÓÒ ÖÓ
Ø Ø × ´bulk propertiesµ ØÓÙ ×Ùר Ñ ØÓ
Ò Ñ
ô×ÓÙÒ Ø
ÕÖ × Ñ
Ù×
ÔÐ ÖÓ ÓÖ
ØÓ × ×Ø Ñ º ĺպ × Ò Ò Ñ Ò Ø ÔÓÐÐ
ÓÖ
Ñ
Ö Ò ÒÛÖÞÓÙÑ Ø Ò ×ÛØ Ö ÒÖ Ñ Ò Ø × ØÓÙ ÙÐ Ó ¸ × Ò Ö Ùר Ø Ò Ò Ö ÔÙ Ò Ø Ø ØÓÙ ºÓº º Õ Ò ÐÙØ ØÒ ׸ ÒÖ ¸ ÓÖÑ ×ØÖÓ ÓÖÑ ×ÛÑ Ø ÓÙ ÔÓÙ Ø ÔÓØ ÐÓ Òº ÙØ Ò ÒÛר Ô Ø ÖÑÓ ÙÒ Ñ ¸ ר ר Ø ×Ø Ù× ÑÛ
Ò Ø Ô Ô Ö Ò Ô Ö Õ Ó Ò Ó Ô Ö Ô ÒÛ Ø Ø
ØÛÒ ×Ùר Ñ ØÛÒ Ô Ø
Ñ ÖÓ× ÓÔ
ØÓÙ
Ø Ø
¸ к Ò Ñ Ø ÑÓ Ð Ù Ö
Ø ÙÒ Ñ Hamiltonian ØÓÙ ×Ùר Ñ ØÓ
º ËØ Ò Ô ÖÔØÛ× Ñ
ÒÓÙÑ Ø
¸ Õ Ø Ö Ô Ö ÓÖ ×Ø
¸ ÙÔÓ ×
¿
Ã
ï Ä ÁÇ ½º
ËÌ ÌÁËÌÁÃÀ
ÍËÁÃÀ
Ø ØÓ × ×Ø Ñ Ñ
Ô Ö Ö Ø Ô Ö Ø
Ø ×Ø ×
ÔÓÙ ÑÔÓÖÓ Ò Ò
E0 < E1 < Ô Ö Ñ Ó Ò Ñ × × Ò × ÒÓÐÓ {µ} Ñ ÒØ×ØÓ Õ
Ò Ö . . . < Eµ < . . .º ÌÓ × ×Ø Ñ ÙØ Ò × Ô ÑÑ Ð ÜÑÒ ÖÑ ¹ Ø Ø
ÖÑÓ Ö ×
β = 1/kT Ñ ØÓ ÓÔÓÓ ÑÔÓÖ Ò ÐÐ Ð Ô Ö º À Ô ÑØ Ü Ñ Ò Õ × Ò ÔÓØ Ð ×Ñ Ò ÙÔ ÖÕÓÙÒ ØÙÕ
Ñ Ø ×
ØÓÙ ×Ù¹ ר Ñ ØÓ
Ñ ØÖ ÔÓ ÔÓÙ ÔÖÓ× ÓÖÞ Ø Ô Ø ÙÒ Ñ ØÓÙ ×Ùר Ñ ØÓ
º À Ñ Ð ô
ÔÓ× Ø Ø
ÔÓÙ Ñ
Ò ÖÓÙÒ Ò Ø Ö ´weightsµ wµ (t) ÔÓÙ Ñ
ÒÓÙÒ Ø Ò Ô Ò Ø Ø Ò Ò ØÓ × ×Ø Ñ ×Ø Ò Ø ×Ø × µ Ø ÕÖÓÒ ¹ ר Ñ tº ÙØ
Û ÓÔÓ Ó Ò Ø Ò Ñ ÖÓ× ÓÔ Ù× ×Ø ר Ø ×Ø Ù× º к ×ØÛ Ø R(µ → ν) ÒÓÙÒ ØÓ ÖÙ Ñ Ñ Ø ×
Ô ØÒ Ø ×Ø × µ → ν¸ ´½º½µ ´Master
R(µ → ν)dt = È
Ì Ø ÑÔÓÖÓ Ñ Ò Equationµ
ÒØØ ÑØ
×
µ → ν ×ØÓ ÕÖ ÒÓ dt Ò ×Ô ÞÓÙ× Ü×Û×
Ö ÝÓÙÑ Ø Ò ÔÓÐ
dwµ (t) = dt
µ
ν
{wν (t)R(ν → µ) − wµ (t)R(µ → ν)}
´½º¾µ ´½º¿µ
wµ (t) = 1 .
À ÔÖôØ Ô Ø
Ô Ö Ô ÒÛ Ü ×ô×
Ñ
Ð ÔÐ Ø Ñ Ø ÓÐ ØÓÙ ÖÓÙ
wµ (t) Ò × Ñ ØÓ ÖÙ Ñ ÔÓÙ ØÓ × ×Ø Ñ × ÖÕ Ø ×Ø Ò Ø ×Ø × µ Ô ÓÔÓ ÔÓØ ÐÐ ν Ñ ÓÒ ØÓ ÖÙ Ñ Ñ ØÓÒ ÓÔÓÓ Ô Ø Ò Ø ×Ø × µº À ØÖ ÖÞ ØØ Ö wµ (t) ÖÑ Ò ÓÒØ Û
Ô Ò Ø Ø Ù× Ô Ò Ø Ø Ò Ò ØÓ × ×Ø Ñ × ÔÓ Ø ×Ø × Ò × Ñ ½º ÖÑ × Ø
Ç ÖÙ ÑÓ Ñ Ø ×
R(µ → ν) ÔÖÓ ÔØÓÙÒ Ô Ø ÐÐ Ð Ô Ö ×
ØÓÙ ×Ùר Ñ ØÓ
Ñ Ø ÖÑ Ü Ñ Ò º ËØ Ò ÔÖ Ü ÙØÓ ÔÖÓ×ÓÑÓ ôÒÓÒØ Ñ Ø ÐÐ Ð
Ô ÐÓ
Ø Ø Ö ØÛÒ ÙÔÓÐÓ ×ÑôÒ Å ÒØ à ÖÐÓº Ì R(µ → ν) ÛÖÓ ÒØ Ò Ü ÖØ Ø ØÓÙ ÕÖ ÒÓÙ ÓÔ Ø ØÓ Ö ÑÑ ¸ Ó Ô Ö ÓÖ ×Ñ
Ô Ö Ô ÒÛ × ×Ø Ñ Ü ×ô× ÛÒ Ø wµ (t) Ò 0 ≤ wµ (t) ≤ 1 Ó ×ØÓ ´Ñ Ø ØÖ ÑÑ ÒÓµ ×ÙÑÔ Ö ×Ñ Ø × Ô ÖÓ ÕÖ ÒÓ Ñ Ð ×Ùר Ñ Ø µ × Ö ÑÓ
pµ ¸ Ø
Ø wµ (t) ×Ù ÐÒÓÙÒ Ö ÓÖ ´
½º½º
ÁË
ÏÀ
β −1 ½» ¼ eV ½¹½¼ eV ½ MeV ¼º ½½ MeV ½ GeV ¼º½¹½ TeV 1019 GeV
ÈÒ Ô
≈ ≈ ≈ ≈ ≈ ≈ ≈
É Ö Ø Ö ×Ø ÐÑ Â ÖѺ ÛÑ ØÓÙ» ÓÐÓ ØÓÑ Ù× »É Ñ ÈÙÖ Ò Ù× me mp mWeak » Ù
º ÍÝ ÐôÒ Ò Ö mPlanck »Ã ÒØ ÖØØ Ø Ö ×Ø
ÐÑ
ÒÖ Ð
ôÒ ´LHCµ
» Ô ÖÑÓ Ö ×
ר ÔÓ Ó ÕÖ ÒÓ ´½º µ ×
½º½ É Ö
ÒØØ
Ø Ð Ý
×ÓÖÖÓÔ
º
ÑØ
dwµ (t) dt pµ = lim wµ (t)
t→∞
=
0 pµ = 1 .
µ
´½º µ
Ç Ô Ò Ø Ø
pµ × ×Ø Ñ × ×ÓÖÖÓÔ Ñ ÖÑ ×ÓÖÖÓÔ Ñ ÜÑÒ ÖÑÓ Ö ×
β = 1/kT ¸ k = 1.38 × 10−23 JK −1 ÑÔÓÖ Ò Õ ´Gibbs ½ ¼¾µ Ø ÓÐÓÙ Ó Ò Ø Ò Ø ÒÓÑ Boltzman
pµ =
1 −βEµ e . Z
´½º µ
À Ô Ö Ñ ØÖÓ
β Ò ÖØ ÔÐ Û
ÖÑÓ Ö × ØÓÙ ×Ùר Ñ ØÓ
Ð ÔÓÙÑ Ø Ñ ×Û ØÓÙ Ø Ó ×Ø Ò Ü×Û× ´½º µ ÓÖÞ Ñ Õ Ö Ø ¹ Ö ×Ø ÒÖ ØÓ × ×Ø Ñ ´ к ÈÒ ½º½µº À Ñ ØÖ × Ø
× ÑÓÙ
Kelvin ÐÔ Ó Ð Ø ×Ø Ò ÖÕ ÒÓ ØÓÙ ÓÖ ×ÑÓ Ø
ר Ò ÖÑÓ ÙÒ Ñ º À ר Ò Ñ
Ò Ö Z ר Ò ´½º µ Ò ×ÙÒ ÖØ × Ô Ñ Ö ×ÑÓ ØÓÙ ×Ùר Ñ ØÓ
ר Ö ÒÓÒ ÓÔÓ ×
Ø
Ø ÒÓÑ
pµ º À ×Õ × µ pµ = 1
Z(β) =
µ
e−βEµ
´½º µ ¹
¹ º
À Ø Ñ Ñ
Ù×
ÔÓ× Ø Ø
ÔÓÙ Ñ ×Ø ÕÖ ØÖº ×Ùר Ñ Ø Ñ ÔÓÐ N ÔÖ Ø Ò
Ò ÖØ Ø Ñ× Ò Ø Ø Ò Ñ ØÖ × Ñ Ø Ñ ÔÓÙ Ò Ö
ØÖ Ø ×ØÓ Ö ×Ø Ö Ó Õ ×ØÓÕ Ñ ÐÓ Ö Ñ ÑôÒ Ð Ù Ö Ø Ñ Ñ
ÔÓ× Ø Ø
Ñ Ô ×ÑØ Ô ÙØ Ò ÑÐØ
Ã
ï Ä ÁÇ ½º ËÌ ÌÁËÌÁÃÀ
ÍËÁÃÀ
Ë Ñ ÛÒ Ñ Ø Ô Ö Ô ÒÛ Ô ÖÒ Ø Ò Ø Ñ Qµ ר Ò
Ñ × Ø Ñ Q Ñ
Ù× Ø ×Ø × µ Ò
ÔÓ× Ø Ø
Q
ÓÔÓ
Q=
µ
pµ Qµ =
Ô
1 Z
Qµ e−βEµ .
Ò ØÙÔ
´½º µ ÖÑÓ ÙÒ Ñ
∆Q 1 ´½º µ ∼√ Q N ÔÓ×Óר ØÓ ÓÔÓÓ Ò ÑÐØÓ ×ÙÒ Ñ ÖÓ× ÓÔ ×Ùר Ñ Ø º ´ÔºÕº 23 −11 N ∼ 10 ÕÓÙÑ ∆Q/Q ∼ 10 µº ØÓ Ð Ó ÙØ Ø Ò ØÓ × ×Ø Ñ Ò Ñ ÐÓ Ó ÙÑ Ò×
ÑÔÓÖÓ Ò Ò ÒÓ Ó Òº ÌÓ Ö Ó N → ∞ ÓÒÓÑ ¹ Þ Ø ØÓ ÖÑÓ ÙÒ Ñ ÖÓ ØÓ Ò ÖÓÒ Ñ
×ÙÒ Û
ר Þ Ø ×Ø Ò ×ÙÑÔ Ö ÓÖ ØÓÙ ×Ùר Ñ ØÓ
×ØÓ Ö Ó ÙØ º ËØ Ò ÔÖ Ü ¸ Òô Ø ×Ùר ¹ Ñ Ø ×ØÓ Ö ×Ø Ö Ó Ò Ø
Ô Ö ×× Ø Ö
ÓÖ
ÔÓÐ ÓÒØ ×ØÓ Ö Ó ÙØ ¸ ר
ÔÖÓ×ÓÑÓ ô×
Ñ
ÔÓÐ ×ÙÕÒ Ò Ò ÙÒ Ø Ò Ò Ñ Ð Ø ×ÓÙÑ Ö Ø Ñ Ð ×Ùר Ñ Ø º À Ð Ø ÕÒ Ô ÒØÖôÒ Ø ×ØÓ ×Õ ×Ñ Ð ÓÖ ÑÛÒ ÔÖÓ×ÓÑÓÛ×
Ñ ÛÒ Ò ÐÙ×
Ø× ôר Ò ÕÓÙÑ ÑÔ ×ØÓ× Ò Ø Ø ÔÓØ Ð ×Ñ Ø Ñ
ÒØ Ò ÐÓ Ò Ø ×ÙÑÔ Ö ÓÖ ØÓÙ ×Ùר Ñ ØÓ
×ØÓ Ö¹ ÑÓ ÙÒ Ñ Ö Óº À ×ÙÒ ÖØ × Ô Ñ Ö ×ÑÓ Û ÓÔÓ Ð Û ØÓÙ ÓÖ ×ÑÓ ´½º µ Ð Ø ×Ø Ø ×Ø ÔÐ ÖÓ ÓÖ ØÓ × ×Ø Ñ ¸ Ñ ÔÓÙ Ò Ò Ñ ÔÐ ×ÙÒ ÖØ × Ñ
Ñ Ø Ð Ø
´Ø
βµ ÐÐ Ô Ö Ñ Ñ ×Õ Ø ÖÓ
Ø
ÙÒ Ø
Ø ×Ø ¹ ×
ØÓÙ ×Ùר Ñ ØÓ
º ÔÐ Ô Ö Ñ ÔÓØ Ð Ó ÙÔÓÐÓ ×Ñ
Ñ ×Û ÙØ
Ø
Ñ×
ÒÖ
E ´ ×ÛØ Ö
Ò Ö
U ר ÖÑÓ ÙÒ Ñ µ ØÓÙ ×Ùר Ñ ØÓ
1 Z Eµ e−βEµ = − 1 Z 1∂ ∂ −βEµ e =− ∂β Z ∂β e−βEµ
µ
ÇÔÛ
× ×Ø Ñ
ÓÑ ÔÖ ØÛ ØÙÔ Ò Ø ØÓ ôר
Ð × ∆Q
U≡
E=
µ
µ
=−
∂ ln Z 1 ∂Z =− Z ∂β ∂β
Ò
Ò ÙÔÓÐÓ × ØÒ ÖÑ Ø Ø
´½º½¼µ
Å ØÓÒ Ó ØÖ ÔÓ ÑÔÓÖ
C=
∂β ∂U ∂ 2 ln Z ∂ 2 ln Z ∂U = = (−kβ 2 )(− ) = kβ 2 ∂T ∂T ∂β ∂β 2 ∂β 2
´½º½½µ
½º¾º
ÆÌÊÇÈÁ
½º¾
ÔØ ÓÖÞ Ø
ÆÌÊÇÈÁ
ÖÑÓ ÙÒ Ñ ÓÖÞÓÙÑ Ô Ø ×Õ × Ø ÒØÖÓÔ S ÖÑÓ ÙÒ Ñ Ó ×Ùר Ñ ØÓ
S=−
∂F , ∂T
F = U − TS ,
´½º½¾µ
ÔÓÙ F Â Ô Õ Ö ×ÓÙÑ ØôÖ Ò ô×ÓÙÑ ÓÖ ×ÑÓ
ÔÓÙ Ò Ò ×ÙÒ Ô
Ñ ØÓÙ
Ô Ö Ô ÒÛ Ò ÔÖÓ ÔØÓÙÒ Ô Ø
Ñ ÖÓ× ÓÔ
Ø ×Ø ×
ØÓÙ ×Ùר Ñ ØÓ
º ÇÖÞÓÙÑ Ø Ò Ð Ö ÒÖ Ô Ø ×Õ ×
e−βF = Z ≡
×Ó Ò Ñ
e−βEµ
µ
´½º½¿µ
1 F = − ln Z β
´½º½ µ
È Ö Ø Ö ×Ø Ø Ó Ô Ö Ô ÒÛ ÓÖ ×Ñ
Ø
F Ø ÙØÞ Ø Ñ Ø Ò Ò Ö Ñ¹ ½ Ð ô ÓÙ
Ø ×Ø ×
T → 0 º ÈÖ Ñ Ø Ø Ø β → ∞ Ó Ñ ÒÓ
ÖÓ
ÔÓÙ Ô Þ ×ØÓ ÖÓ ×Ñ ´½º½¿µ Ò Ó ÔÖôØÓ
º ØÓÒ Ð Ó ÙØ Ô Ø Ò ´½º½¾µ Ø ÖÓ
Ò ÑÓ
Ø
ÖÑÓ ÙÒ Ñ
º ÕÓÙÑ limT →0 S = 0 ÔÓÙ Ò Ó Ç ÓÖ ×Ñ
´½º½¿µ Ò ×ÙÒ Ô
Ñ Ø Ò ´½º½¾µ Ø
U =−
∂ ∂F ∂F ∂ ln Z = − (−βF ) = F + β =F −T = F + T S . ´½º½ µ ∂β ∂β ∂β ∂T
Ò Ø Ñ Ø
×Õ ×
´½º½¿µ
À × Ò × Ø
ÒØÖÓÔ
S Ñ Ø Ñ ÖÓ Ù× ´½º½¾µ
U −F S = = β(U − F ) = β( k kT
ÐÐ
pµ Eµ +
µ
1 ln Z) . β
´½º½ µ
pµ =
½ Δηλ.
e−βEµ 1 ⇒ Eµ = − (ln pµ + ln Z) , Z β
´½º½ µ
δεν υπάρχει αυθόρμητο σπάσιμο συμμετρίας που οδηγεί σε εκφυλισμό της ενέργειας θεμελιώδους κατάστασης
Ã
ï Ä ÁÇ ½º ËÌ ÌÁËÌÁÃÀ
ÍËÁÃÀ
ÓÔ Ø
S =β k =− =−
ÌÐ
µ
1 1 − (ln pµ + ln Z)pµ + ln Z β β pµ ln pµ − ln Z pµ ln pµ . pµ + ln Z
µ
µ
´½º½ µ
µ
S = −k
pµ ln pµ
µ
´½º½ µ
ÒÓÙÑ Ñ Ö Ò × ØÓÙ Ô Ö Ô ÒÛ Ø ÔÓÙº
ÙÔÓ ×ÓÙÑ Ø Ò ´ÓÑÓÐÓ ÓÙÑ ÒÛ
×ÙÒ ×ØÓ ¾ µ × ×Ø Ñ Ð
Ó Ø ×Ø ×
ÕÓÙÒ Ø Ò ÒÖ º ËØ Ò Ô ÖÔØÛ× ÙØ Ñ ÔÐ ÒØ Ø ×Ø × ×Ø Ò Ü×Û× ´½º½ µ Ô ÖÒÓÙÑ Ø 1 pµ = = ר º ⇒ S = k ln g . ´½º¾¼µ g Ð ÒØÖÓÔ Ñ ØÖ ØÓÒ Ö Ñ ØÛÒ Ø ×Ø × ÛÒ ØÓÙ ×Ùר Ñ ØÓ
¸ ¹ ÔÛ
Ö ô
ר Ò Ô ÖÔØÛ× Ø
Ñ ÖÓ ÒÓÒ
×ÙÐÐÓ
º ÈÖ Ñ Ø Ø Ð ÙØ ×Õ × ÔÖÓ ÔØ Ø Ò Ø ÒÓÑ
pµ =
1 g(E)
0
Eµ = E Eµ = E
´½º¾½µ
ÔÓÙ ÑÔÓÖ Ò ÛÖ ÔÛ
Ò Ø Ò Ñ ÖÓ ÒÓÒ ×ÙÐÐÓ Ó Þ ØÓÒ Ô Ö ÓÖ ×Ñ Eµ = E = ר ºº À ×ÙÒ ÖØ × g(E) ´× ÔÓÐÐ Ð ×ÙÑ ÓÐÞ Ø Ñ Ω(E)µ Ñ ØÖ ØÓÒ Ö Ñ ØÛÒ Ø ×Ø × ÛÒ Ñ Ò Ö × Ñ Eº Ô ÙØ ÔÖÓ ÔØ Ô Ò Ø Ø p(E) ØÓ × ×Ø Ñ Ò Ö Ò Õ Ò Ö E
p(E) = δE,Eµ =
µ
pµ δE,Eµ =
1 Z
e−βEµ δE,Eµ =
1 −βE e Z
δE,Eµ .
´½º¾¾µ
Ô
ÔÖÓ
Òô
µ δE,Eµ
= g(E) Ô ÖÒÓÙÑ g(E) e−βE . Z
p(E) = δE,Eµ =
¾ π.χ.
´½º¾¿µ
η διδιάστατη κβαντική βαρύτητα απουσία ύλης
½º¾º
ÆÌÊÇÈÁ
Ò ØÙÔ
× ×Ø Ñ × Ò ÙØ ÔÓÙ
Ñ Ð Ø ×ÓÙÑ ×Õ ´½º¾ µ
g(E) ∼ E αN
ÑôÒ Ð Ù Ö
ØÓÙ ×Ùר Ñ ØÓ
α Ñ ×Ø Ö º ÔÓÙ N Ó Ö Ñ
ØÛÒ ÔÖ Ñ α = 3/2 ØÓ Ò Ö Óº À ÔÓ ÓØ ×ÙÑÔ Ö ÓÖ Ø
α x -β E
e p(E)
∆Ε
E*
ËÕ Ñ ½º½ Η πιθανότητα p(E) όπως προκύπτει από τον ανταγωνισμό του παράγοντα Βολτζμαν e−βE και της πυκνότητας καταστάσεων g(E) ∼ E αN για μία τυπική περίπτωση. Ø ÒÓÑ
´½º¾ µ Ò Ø ×ØÓ ËÕ Ñ ½º¾º ØÑ
Ø
Ò Ö
Ô ÒØÖôÒÓÒØ ÖÛ ∆E Ò Ò Ñ ØÖÓ Ø
×ÔÓÖ
ØÛÒ Ø ÑôÒ Ó Ð Ó
∆E/E Ñ ôÒ Ø Ñ ØÓ N Ñ Õ Ö ÈÖ Ñ Ø ×ÙÒ ÖØ × ´ Ò ÐÓ Ø
p(E)µ Ò Ô Ö Ø ÖÓ Ñ Ø Ó Ô Ò
Ô Ñ Ø Ñ E∗ Ô Ð× ÔÓÙ ÔÛ
ÜÓÙÑ Ô Ö √ ØÛ Ø Ö ×Ø ×ÙÑÔ Ö ÓÖ 1/ N º ´½º¾ µ
p(E) = E αN e−βE = e−βE−αN ln E ˜
Õ Ñ ×ØÓ Ø Ò
∂ ln p(E) ˜ ∂E
E=E ∗
=0⇒
∂ (−βE + αN ln E) ∂E
E=E ∗
= −β +
αN = 0 ´½º¾ µ E∗
½¼
Ã
ï Ä ÁÇ ½º ËÌ ÌÁËÌÁÃÀ
ÍËÁÃÀ
α N. ´½º¾ µ β ÌÓ E ∗ Ñ Ø ØÓÔÞ Ø ÔÖÓ
Ñ Ð Ø Ö
Ø Ñ
Ñ Ø Ò Ü × Ø
ÖÑÓ Ö ×
´Ñ Û× ØÓÙ βµ Ò ÔÛ
Ò Ñ Ò Ø Ò ÐÓ Ó ØÓÙ Ñ ÓÙ
ØÓÙ ×Ùר ¹ Ñ ØÓ
º Ò ÔØ ××ÓÒØ
Ø Taylor E∗ = ln p(E) = ln p(E ∗ ) + (E − E ∗ ) ˜ ˜ ∂ ln p(E) ˜ 1 ∂ 2 ln p(E) ˜ + (E − E ∗ )2 ∂E 2 ∂E 2 E=E ∗ 1 αN = ln p(E ∗ ) + (E − E ∗ )2 − ∗ 2 + . . . ˜ 2 (E )
´½º¾ µ
∗
+ ...
E=E ∗
´½º¾ µ º
ÔÓÙ ÕÖ × ÑÓÔÓ × Ñ Ø Ò ×ÙÒ ÇÔ Ø ÔÖÓ À Ô Ö Ô ÒÛ ÔØ Ø Ø ÒÓÑ Ò
ÙÔÓÐÓ × Ñ Ø Ò
∗ )2 2(E )2
∂ 2 ln p(E) ˜ ∂E 2
E=E ∗
Ð× √ ( αN )2 (E ∗ )2 N β = ∼ ∆E ∼ ´½º¿¼µ αN αN β Ø ÔÓÙ Ö Ø × Ñ Ñ ÒÓ Ø Ò Ü ÖØ × Ô ØÓ Ñ Ó
ØÓÙ ×Ùר Ñ ØÓ
N ÖÑÓ Ö × βº ÇÔ Ø ÔÖ Ñ Ø Ô ôÒÓÙÑ Ø ×Õ × ´½º µ Ø
p(E) ≈ p(E )e
−αN (E−E ∗
´½º¾ µ
Gaussian Ñ ØÙÔ
Ô
∆E ∼ E∗
√ N β N β
1 =√ . N
´½º¿½µ
À Ô Ö Ô ÒÛ Ò ÐÙ× ÙÔ × Ò ÐÙØ ×ÙÑÔ Ö ÓÖ ´ Ò ÔØÙ Ñ Taylor¸ ×Õ ¹ × ´½º¾ µ µ ÓÔÓ Ò ×Õ Ø Ò Ñ ×Ø × Ò Ö× ÑÓ × Ñ Ó Ñ
Ñ Ø ¹ ×
×
º Å ÐÐ × Ñ ÒØ Ô ÖÔØÛ× ÔÓÙ Ô Ö Ô ÒÛ Ò ÐÙ× Ò ×Õ Ò ØÒ Ø ÒÓÑ p(E) Õ Ô Ö Ô ÒÛ Ô Ò Ñ ×Ø ¿ º ÙØ ×ÙÑ Ò Ø Ò ØÓ × ×Ø Ñ ÙÔ Ø × ÑØ × ×
ÔÖôØ
Ø Ü
¸ ÔºÕº Ø Ò Ó Ô Ó
Ò Ø Ò Ö ØÒ Ò Ñ ÒØ ÙÐ ÔÓÙ Ö× Ø × Ò Ñ Ò Ø Ô Ó Õ × Ø Ñ Ò Ø × ØÓÙ Ð Û Ü ×
Ø
ÖÑÓ Ö ×
ØÓÙº ËØ Ò Ô ÖÔØÛ× ÙØ Ó Ó Ø ×Ø ×
Ô Ó
Ò Ö »Ñ Ò Ø
Ô Ö Ñ Ò Ø
ÕÓÙÒ Ø Ò Ô Ò Ø Ø Ñ Ò ×
´ ×ÙÒÙÔ ÖÕÓÙÒ µ Ñ ØÙÔ Ø ÒÓÑ Ñ ÓÑ Ó ÓÖÙ ôÒ Ò Ø ×ØÓ ËÕ Ñ ½º¾
έχει περισσότερα από ένα τοπικά ελάχιστα, το ολικό ελάχιστο επικρατεί των υπολοίπων στο θερμοδυναμικό όριο N → ∞.
¿ Οταν
½º¿º
Á ÃÍÅ ÆË ÁË
½½
p(E)
R
∆Ε
ËÕ Ñ ½º¾ Η πιθανότητα p(E) με δομή δύο κορυφών σε σύστημα με μετάβαση φάσης 1ης
τάξης. Τα δύο μέγιστα αντιστοιχούν στις δύο συνυπάρχουσες καταστάσεις (‘πάγοσ’–‘νερό’) και ∆E/N αντιστοιχεί στη λανθάνουσα θερμότητα (latent heat). Στο θερμοδυναμικό όριο N → ∞ το χάσμα R γίνεται μεγαλύτερο, συνήθως σαν R ∼ e−f A όπου A η ελάχιστη επιφάνεια που χωρίζει τις δύο φάσεις και f η διεπαφική τάση (interface tension).
½º¿
Ã
Á ÃÍÅ ÆË ÁË
×ÙÑÔ Ö ÓÖ × Ñ ÛÒ Ñ Ñ Ô Ö Ø Ö × Ñ ÔÓ× Ø Ø Q Õ ×ØÓÕ ×Ø Ø ÒÓÑ Ô Ò Ø Ø
p(Q) ÔÓÙ ÔÖÓ ÔØ Ô Ø Ò Ø ÒÓÑ Boltzman ´½º µ º Å Ø ØÓ Ø ÒÓÑ Õ Ö Ø ÖÞ Ø ÔÐ ÖÛ
Ô Ø Ñ × Ø Ñ Q Ø
n ÖÓÔ
ÒôØ Ö
Ø Ü
¸ к Ø
Ñ ×
Ø Ñ
(Q − Q ) ¸ n = 1, 2, 3. . . .º À Ô Ó ÕÖ × Ñ ÔÓ× Ø Ø Ô ÙØ
Ò Ø ÔØ Ñ Ò× ÖÛ Ô Ø Ñ × ØÑ n=2
(∆Q)2 ≡ (Q − Q )2 = Q2 − Q 2 .
´½º¿¾µ
À ÔÓ× Ø Ø ÙØ Ò Ø
Ô Ö ×× Ø Ö
ÓÖ
Ò Ñ ØÖÓ Ø
Ô Ð ×
Ø
Q Ô Ø Ñ × ØÑ Ø
Q º Ø Ò Ô ÖÔØÛ× Ø
Ò Ö
Q = E Ô ÖÒÓÙÑ
(∆E)2 ≡ (E − E )2 = E 2 − E
2
,
´½º¿¿µ
½¾ Ô Ø
×Õ ×
Ã
ï Ä ÁÇ ½º ËÌ ÌÁËÌÁÃÀ
ÍËÁÃÀ
E2 =
1 Z
2 Eµ e−βEµ = µ
1 ∂2 Z ∂β 2 1∂ Z ∂β
e−βEµ =
µ
1 ∂2Z Z ∂β 2 1 ∂Z Z ∂β
´½º¿ µ
E=
ÔÖÓ ÔØ Ø
1 Z
µ
Eµ e−βEµ = −
µ
e−βEµ = −
´½º¿ µ
(∆E)2 = E 2 − E
ÔÓÙ × Ñ ÛÒ Ñ Ø ×Õ ×
2
=
1 ∂Z 1 ∂2Z −− 2 Z ∂β Z ∂β
Ò
2
=
∂ 2 ln Z . ∂β 2
´½º¿ µ
´½º½½µ
ÖÑ Ø Ø ´½º¿ µ
C=
∂E = kβ 2 (∆E)2 . ∂T
Ö Ø Ð ÓÙÑ ×ØÓ Ò ÖÓÒ ×ÙÑÔ Ö ×Ñ Ø ÖÑ Ø Ø Ò
×Ùר Ñ ØÓ
´ ÖÑÓ ÙÒ Ñ ÔÓ× Ø Ø µ ×ÙÒ Ø Ñ × Ñ Ø
Ñ ÖÓ× ÓÔ
ר Ø ×Ø
ÙÑ Ò×
Ø
Ò Ö
ØÓÙ ×Ùר Ñ ØÓ
º ÙØ Ò ÒÛר ×Õ × Ò ØÓ ôÖ Ñ Ö ÑÑ
Ô Ö ×
´linear response theoremµ Ò ÓÔÓ ÔÓØ ÔÓ× Ø Ø Õ Ö ÑÑ × Þ ÙÜ Ñ ØÓ × ×Ø Ñ º Å Ø ØÓ ÔÓ× Ø Ø Ò Ñ ÒØ × ×Ø Ñ ÔÓÙ Ö× Ø Ñ × × ÓÑÓ Ò
Ñ Ò Ø Ô Ó B Ò Ñ Ò Ø × Mº Ò Mµ Ò Ñ Ò Ø× ØÓÙ ×Ùר Ñ ØÓ
ר Ò Ø ×Ø × µ ÙÔÓ ×ÓÙÑ Ø Ò ×Ø Ò ÙÒ× ØÓÙ B Ø Ø Hamiltonian ØÓÙ ×Ùר Ñ ØÓ
Ò Ø
H = E − BM
×ÙÒ ÖØ × Ô Ñ Ö ×ÑÓ
´½º¿ µ
Z=
µ
e−βEµ +βBMµ .
Ô Ö È Ñ
´½º¿ µ Ö × ØÓÙ ×Ùר Ñ ØÓ
ÑÑ
ר Ñ Ò Ø × Ö ÑÓ ×Õ × ÕÓÙÒ » Ö Ñ
×ÛÑ Ø ÛÒ
Ç ÖÓ
Ö ÑÑ × Þ ÙÜ Ó Ð Ø ×Ø Ö ÑÑ ×ØÓ Ñ Ò Ø Ô Ó Ðº רÓÒ ÖÓ BM ÔÓÙ Ò Mº Ç ÔÓ× Ø Ø
B M ÓÒÓÑ ÞÓÒØ ×ÙÞÙ
º Ó
»Ô × ´V »P µ × Ò Ö Ó ØÓ Õ Ñ ÙÒ ×ÙÐÐÓ º ´µ»N µ ר Ñ ÐÓ ÒÓÒ
½º º ËÍÆ ÊÌÀË ÁË ËÍËÉ ÌÁËÅÇÍ
½¿
ܳ
Ø
ÙØ
Ø
Ö ÑÑ
× Þ ÙÜ
Ô ÖÒÓÙÑ
M=
×Õ × ÔÓÙ Ò Ô ´½º¿¾µ
1 Z
Eµ e−βMµ +βBMµ =
µ
1 ∂Z ∂F =− βZ ∂B ∂B
´½º ¼µ ÔØ ´½º ½µ ´½º ¾µ
Ò ÐÓ Ñ Ø Ò ´½º½¼µ º À ÒØ×ØÓ Õ Ø
´½º¿ µ ÔÖÓ Q=M
(∆M)2 ≡ (M − M )2 = M 2 − M
Ô
2
,
M2 =
ÓÔ Ø
1 Z
2 Mµ e−βMµ +βBMµ = µ
1 ∂2Z , β 2 Z ∂B 2
(∆M)2 =
ÀÑ ÒØ
1 β2
Ô
1 1 ∂2Z −2 2 Z ∂B Z
Ø
∂Z ∂B
=
1 ∂ 2 ln Z 1∂ M = . 2 ∂B 2 β β ∂B
´½º ¿µ
Ø Ø χ ÓÖÞ Ø
Ô Ø ×Õ ×
χ=
×Õ ØÞ Ø ÑÔÓÖ Ò Ò
β 1∂M = N ∂B N
(M − M )2
´½º µ
Ñ × Ñ Ø
Ô ÒÓÑÓ ØÙÔ
ÙÑ Ò×
Ø
Ñ Ò Ø ×
º À Ô Ö Ô ÒÛ Ò ÐÙ× ÓÔÓ Ó ÔÓØ Þ Ó
×ÙÞÙ ôÒ ÔÓ×ÓØ ØÛÒº
½º
ËÍÆ ÊÌÀË ÁË ËÍËÉ ÌÁËÅÇÍ
Ç ×ÙÒ ÖØ ×
×Ù×Õ Ø ×ÑÓ ÔÖÓ ÔØÓÙÒ Ô Ø ×ÙÞ Ø × Ø
ÔÖÓ Ó Ñ Ò
Ô Ö Ö ÓÙ Ø Ò ÛÖ ×ÓÙÑ Ñ Ò Ø Ô Ø ÓÔÓ ÑÛ
ÕÓÙÒ Ø Ñ ÔÓÙ Ü ÖØ Ø Ô Ø × ×ØÓ ÕôÖÓ ÔÓÙ ÛÖÓ Ñ Ñ × ×ØÓ × ×Ø Ñ º Ð ÓÙ
ÔÐ Ø Ø
´ ÐÐ Ô ÔÖ Ø Ò Ñ Ð Ø ×ÓÙÑ Ñ ÒÓ Ø ØÓ ×Ùר Ñ Ø µ ØÓ × ×Ø Ñ Ñ
Ö× Ø Ñ × × Ò ÕôÖÓ ×ØÓÒ ÓÔÓÓ Ó ÒØ
×
Ò Ó Ö Ø
×
Ò
ÔÐ Ñ ØÓ
Ø
ÓÔÓ
ÒØ ×ØÓ ÕÓ Ñ × Ù× Ó
Ö ÑÓ
i = 1, . . . , Nº Ì Ø ØÓ Ñ Ò Ø Ô Ó Ò ×ÙÒ ÖØ × Ø
×
×ØÓ ÔÐ Ñ Bi ÐÐ Ð Ô Ö Ñ ØÓ ×Ô Ò si
H=E−
Bi si
i
´½º µ
Οι βαθμοι ελευθερίας που αναφέραμε προηγουμένως μπορεί να είναι περισσότεροι από N
½ Ñ Ò Ø × mi ≡ si ר
Ã
ï Ä ÁÇ ½º ËÌ ÌÁËÌÁÃÀ
ÍËÁÃÀ
× ÔÐ Ñ ØÓ
i Ò
si =
×ÙÒ ÖØ × ×Ù×Õ Ø ×ÑÓ functionµ ÓÖÞ Ø Û
1 ∂ ln Z β ∂Bi
´½º
µ
Ó × Ñ ÛÒ ´connected two point correlation
G(2) (i, j) c
= (si − si )(sj − sj ) = si sj − si sj
1 ∂ 2 ln Z . ´½º µ =2 β ∂Bi ∂Bj
À Ô Ö Ô ÒÛ ×ÙÒ ÖØ × ÙØ Õ Ñ Ð Ø Ø Ñ Ø Ò Ó Ø Ñ
si ¸ sj Ò ×ÕÙÖ ×Ù×Õ Ø ×Ñ Ò
¸ к Ñ Ø ÐÐÓÒØ Ñ Þ ×Ø ØÙÕ ÑØ ÔÓÙ Ô ÖÒÓÙÑ Ô ØÓ × ×Ø Ñ ¸ Òô ÒØ Ø Ò ×Õ Ò Ñ Ò Ø Ò Ø Ñ Ø
si Ò Ü ÖØ Ø Ð Õ ×Ø Ô Ø Ò sj ´ ×Ù×Õ Ø ×Ø
ØÙÕ
Ñ Ø Ð Ø
µº ÍÔ ÖÕ Ù× Ó Ô Ö ÔØÛ× Ó si ¸ sj Ò Ò ×ÕÙÖ ÒØ ¹×Ù×Õ Ø ×Ñ Ò
×ÙÒ ÖØ × ×Ù×Õ Ø ×ÑÓ Ò Ò ÖÒ Ø º
e ij η 1/|xij|
-|x |/ξ
Gc (i,j)
(2)
|xij|
ËÕ Ñ ½º¿ Η συνάρτηση συσχετισμού G(2) (i, j) για ξ < ∞ και ξ → ∞ c À ×ÙÒ ÖØ × ×Ù×Õ Ø ×ÑÓ Gc (i, j) Ô ÖÒ Ø Ñ ×Ø Ø Ñ Ø
(si − s i )2 i = jº ËØ ×ÙÒ Õ ÔØ Ö ÓÖ Ø Ô ÐÙØ Ø Ñ º Ò
Οι δύο φυσικές ποσότητες είναι διαφορετικές αλλά ανάλογες. Εδώ απλά αγνοούμε τη σταθερά αναλογίας.
(2)
½º º ÈÊÇÌÍÈÇ
ISING
½
×Ò
× ×Ø Ñ
ÔÓÙ |xij | Ô ×Ø × ØÛÒ × Ñ ÛÒ i¸ jº ξ Ò Ò Õ Ö Ø Ö ×Ø Ñ Ó
ØÓ × ×Ø Ñ ÔÓÙ Ò Ò Ñ ØÖÓ × Ô × Ô ×Ø × ÙÔ ÖÕ ÓÙ× ×Ø
×Ù×Õ Ø ×Ñ
Ñ Ø Ü ØÛÒ Ø ÑôÒ Ø
Ñ Ò Ø ×
× Ó ÔÐ Ñ Ø
×
º Ü ÖØ Ø Ô Ø
Ô Ö Ñ ØÖÓÙ
ÔÓÙ ÓÖÞÓÙÒ ØÓ × ×Ø Ñ ξ = ξ(β, B, N, . . .)º Ò × Ñ ÒØ Ò Ø ÒÓ Ø ØÓ Ñ Ó
×Ù×Õ Ø ×ÑÓ ÓÖÞ Ñ ÐÑ Ñ ÓÙ
ÔÓÙ ÔÖÓ ÔØ ÙÒ Ñ Õ Ô ØÓÒ ÓÖ ×Ñ ØÓÙ ×Ùר Ñ ØÓ
ÔÛ
кպ ØÓ Ñ Ó
L ØÓÙ ×Ùר Ñ ØÓ
Ô ×Ø × a Ñ Ø Ü Ó ÔÐ Ñ Ø ôÒ × Ñ ÛÒ ´ÔÐ Ñ Ø ×Ø Ö µº ËÙÒ Û
ØÓ ξ Ò Ø
Ø Ü
Ñ ÓÙ
Ø
ÔÐ Ñ Ø
ר Ö
a ØÓ × ×Ø Ñ Ò Ô ÖÓÙ× Þ ×Ù×Õ Ø ×ÑÓ
× Ñ ÖÓ× ÓÔ
ÐÑ
´ к Ø
Ø Ü
ØÓÙ Lµº ÈÓÐ Ò ÖÓÙ× Ù× ÔÖÓ ÔØ Ø Ò ÖÙ Ñ×ÓÙÑ Ñ Ð ÔØ Ø Ø Ø
Ô Ö Ñ ØÖÓÙ
Ô Ø
ÓÔÓ
Ü ÖØ Ø ØÓ ξ Ø× ôר ξ → ∞ ´×Ø Ò ÔÖ Ü ξ ≈ Lµº ÙØ Ò Ø ×Ø Ò Ô Ö ÓÕ Ñ
×ÙÒ ÕÓ
´ Õ ÔÖôØ
Ø Ü
µ Ñ Ø ×
×
º ËØ Ò Ô ÖÔØÛ× ÙØ Ø ×ÙÑÔ Ö ÓÖ Õ Ò Ø ÕÓÙÑ ÔÓÐ (2) Ö Ø Ö ÔØô× Ø
Gc (i, j) ´ к ËÕ Ñ ½º µ¸ ×ÙÒ Û
G(2) (i, j) ∼ e−|xij |/ξ , c
´½º µ
G(2) (i, j) ∼ c
1 . |xij |η
´½º µ
à ô
ÔÐ × ÞÓÙÑ Ø Ò Ô ÖÔØÛ× ÙØ ¸ ×ÙÑ Ò Ó ×Ù×Õ Ø ×ÑÓ Ò Ø ¹ Ò Ð Ô Ø
Ð ¹ ÒÓÒØ × ÔÓר ×
|xij | ≫ aº Ì Ø ØÓ × ×Ø Ñ Ô ÔØÓÑ Ö
ØÓÙ ÔÐ Ñ ØÓ
×ÙÑÔ Ö Ö Ø Ñ ÔÓÐ Ð ÔÖÓ× × × Ò ØÓ ÔÐ Ñ Ò Ø Ò Ò
×ÙÒ Õ
ÕôÖÓ
º ÌÓ Ö Ó ÙØ Ò Ö Ø Û
ØÓ ×ÙÒ Õ
Ö Ó ´continuum limitµ Ñ
ÛÖ
ÔÓÙ ÓÖÞ Ø × Ò ÔÐ Ñ º Ü Ø
ØÓÙ Ø Ð ÔØÓÑ Ö
ØÓÙ ÔÐ Ñ ØÓ
ÒÓÒØ × Ñ ÒØ
×ØÓ Ö Ó ÙØ ¸ ÛÖ
ÔÓÙ ÓÖÞÓÒØ Ñ ÖÓ× ÓÔ Ñ ÓÖ Ø ØÖ ÔÓ ´ÐºÕº Ñ × Ø ØÖ ÛÒ ÔÐ Ñ Ñ × Ü ÛÒ µ ÕÓÙÒ ØÓ Ó ×ÙÒ Õ
Ö Óº ÌÓ Ò Ñ ÒÓ ÙØ ÓÒÓÑ Þ Ø Ô Ó×Ñ Ø Ø ´universalityµ Ô Þ ÒØÖ Ö ÐÓ ×Ø Ñ Ð Ø ×Ø Ø ×Ø ôÒ ×Ùר Ñ ØÛÒ ô
ר Ò ÒØ ÛÖ Ô ÓÙº
½º
ÈÊÇÌÍÈÇ ISING
ÌÓ ÔÖ ØÙÔÓ Ising ´½ ¾ µ ½¼℄ Õ Ô Ü ×ØÓÖ ÔÓÐ × Ñ ÒØ Ö ÐÓ ×Ø
Ü ÐÜ
ØÛÒ ôÒ Ø
ר Ø ×Ø
Ù×
Ø
ÒØ
ÛÖ
Ô ÓÙº Ø Ö ØÓ ÔÖ ØÙÔÓ ×Ø
Ó ×Ø ×
Ò Ö Ø × Ò ØÓ ôר Ò Õ
½
Ã
ï Ä ÁÇ ½º ËÌ ÌÁËÌÁÃÀ
ÍËÁÃÀ
Ò ÖÓÙ×
Ñ Ø ØÖ ÑÑ Ò
ØØ
Ö Ø ÔÐ ôר Ò ÑÔÓÖÓ Ñ Ò ÒØÐ ×ÓÙÑ ÔÓÐ Ø Ñ
ÔÐ ÖÓ ÓÖ
Ø Ù× ØÛÒ Ñ Ø × ÛÒ ×
º ÌÓ ÔÖ ØÙÔÓ ÐôÒ Ñ Ø × ×
¾
Ø Ü
Ñ ÔÓØ Ð ×Ñ Ò ÑÔÓÖÓ Ò Ò ÑÐØ ÓÒÓ Ø Ø
ØÛÒ ×ÙÒ ÕôÒ Ñ Ø × ÛÒ ×
´ Ö× ÑÓ Ø
¸ Ô Ó×Ñ Ø Ø ¸ ÓÑ ÔÒ ÒÓÒ ÓÔÓ ×
¸ ×ÙÒ Õ
Ö Óµº Å Ø Ò Ò ÐÙ¹ Ø Ð × ØÓÙ Onsager ´½ µ ½½℄ ÐÐÛÒ Ô ÖÒÓÙÑ ÔÓØ Ð ×Ñ Ø Ñ Ø ÓÔÓ ÑÔÓÖÓ Ñ Ò Ð ÜÓÙÑ ÔÖÓ× ×Ø
Ñ ÓÙ
¸ ÔÛ
Ó ÔÖÓ×ÓÑÓ ô¹ ×
Å ÒØ Ã ÖÐÓ¸ ÛÖ Ø Ö ÕôÒ¸ mean field theory ÐÔº Ô ÔÐ ÓÒ Õ Ù× Ò ÖÓÒ Ñ Ò Ò ÔÖ ØÙÔÓ Ò
Ñ Ò Ø Ó ÙÐ Ó ÔÓÙ Ô Ö³ Ð Ø Ò ÔÐ Ø Ø ØÓÙ Ô Ö Ö ÔÓ ÓØ ÔÓÐÐ
Ô Ø
Ñ Ø ØÖ ÑÑ Ò
Ø Ø
ØÓÙ
º Ô×
Ð Û Ø
Ô Ó×Ñ Ø Ø
ÑÔÓÖ Ò ÛÖ ÔÖ ØÙÔÓ ÑØ × ×
× Ù Ö ¹ Ö Ó ´ØÖ ÔÐ × Ñ Óµ Ô ÓÒÞ Ø ×ØÓ Coulomb Gas ººººº Ü Ö ØÓ ÐÓ ÔÖ ØÙÔ Ø
ר Ø ×Ø
Ù×
ÔÓÙ Ð ÒÓÒØ Ô Ö ô
Ñ Ò ÐÙØ
Ñ ÓÙ
ÔÓØ Ð ØÓ ÐÓ ØÓÙ Baxter ℄º ØÓÒ ÓÖ ×Ñ ØÓÙ ÔÖÓØ ÔÓÙ ÛÖ ×Ø Ò ×Ø ØÓ Ø ØÖ ÛÒ ÔÐ ¹ ÔÐ Ñ Ø Ñ ÔÛ
ÙØ ØÓÙ ËÕ Ñ ØÓ
½º ×ØÓ ÓÔÓÓ ØÓÔÓ Ø Ø × ÓÖÞ Ø Ô × ´ÒÓ µ ØÓÑ Ñ ÒØ Ñ ×Ô Ò si º À ÛÑ ØÖ Ø Ò Ð Õ ×Ø Ô ×Ø × Ñ Ø Ü Ø ÒÛÒ¸ Ø Ò ÔÐ Ñ Ø ×Ø Ö a¸ ØÓÒ Ö Ñ ØÛÒ ÔÐ Ñ Ø ôÒ × ÛÒ Nº Ë ÔÐ ÙÖ ÕÓÙÑ L ÔÐ Ñ Ø
×
Ø× ôר N = L × L = Ld Ñ d = 2 Ø ×Ø × ØÓÙ ÕôÖÓÙº À ØÓÔÓÐÓ ÓÖÞ Ø Ô Ø
×Õ ×
ØÓÒ
¸ Ø Ö Ô Ø
×Õ ×
ØÓÒ
ØÛÒ ÔÐ Ñ Ø ôÒ × ÛÒ ÔÓÙ Ö× ÓÒØ ×ØÓ × ÒÓÖÓ ØÓÙ Ø ØÖ ô¹ ÒÓÙº À ØÓÖÓ
ØÓÔÓÐÓ Ð Ñ Ò Ø Ò Ñ ÓÙÖ ×ÓÙÑ ×Ñ Ñ Ø Ü ØÛÒ Ø ÒÛÒ ÔÓÙ Ò ÓÙÒ ×Ø
Ø
ÓÖ Þ ÒØ
ÔÐ ÙÖ
ØÓÙ Ø ØÖ ôÒÓÙ ØÓ ËÕ Ñ ØÓ
´½º µ º À ÙÒ Ñ ØÓÙ ×Ùר Ñ ØÓ
ÓÖÞ Ø Ô Ø Ñ ÒØ ÐÐ Ð Ô Ö × ´spin–spin interactionµ Ø Ò ÓÔÓ ÔÐÓÔÓ Ó Ñ Ò Ò ÓÒØ Ò
ÑÐ
Ø Ö Ñ ÒÓ Ñ Ø Ü ØÛÒ ÔÐ × ×Ø ÖÛÒ Ø ÒÛÒº ËØÓ × ÖÓÑ Ò Ø ÔÖ ØÙÔÓ Ising ÛÖÓ Ñ Ø
ÙÒ Ø
Ø Ñ
ØÛÒ ×Ô Ò Ò Ò Ó¸ Ô ÒÛ ØÛ +1 −1º ËØ Ò Ô Ó ÔÐ Ô ÖÔØÛ× ÐÐ ¹ Ð Ô Ö × Ò ÐÐ Ð Ô Ö × ×Ô Ò ×Ô Ò Ñ ÒÓ Ñ Ø Ü ÔÐ × ×Ø ÖÛÒ Ø ÒÛÒ Ñ Ø Ò Ø ×Ø × Ñ Ø ×Ô Ò ÓÑ ÖÖÓÔ Ò Õ Ø Õ Ñ Ð Ø Ö Ò Ö º ÙØ Ô ÓÒÞ Ø ×ØÓ ËÕ Ñ ½º º ÌÓ × ×Ø Ñ ÑÔÓÖ Ò Ö× Ø ÙÔ Ø Ò Ô¹ Ö × ÓÑÓ ÒÓ
Ñ Ò Ø Ó Ô ÓÙ B ØÓÙ ÓÔÓÓÙ ÙÒ× ÛÖ Ø Ò Ò Ô Ö ÐÐ Ð ÒØ Ô Ö ÐÐ Ð Ñ ÙØ ØÛÒ ×Ô Òº Ñ ×Ø ØôÖ ØÓ ÑÓ Ò Ø ×ÙÒ ÖØ × Ô Ñ Ö ×ÑÓ ØÓÙ ×Ùר Ñ ØÓ
º Ö ÝÓÙÑ Ø Ò Hamiltonian  ÛÖÓ Ñ Ø ØÖ ÛÒ ÔÐ Ñ Ô N ÔÐ Ñ Ø
×
´sites verticesµ
Το αντίστροφο ισχύει για το αντισιδηρομαγνητικό πρότυπο Ising.
½º º
ÈÊÇÌÍÈÇ
ISING
1 11 0 00 1 11 0 00 1 11 0 00 1 0 1 0 1 0 1 0 1 0 11 00 11 00 11 00 11 00 11 00 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 11 0 00 1 11 0 00 1 11 0 00 1 0 1 0 1 0 1 0 1 0 11 00 11 00 11 00 11 00 11 00 1 11 0 00 1 11 0 00 1 11 0 00 1 0 1 0 1 0 1 0 1 0 11 00 11 00 11 00 11 00 11 00 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
½
11 11 00 00 11 11 00 00 11 11 00 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00
11 11 00 00 11 11 00 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00
1 11 0 00 1 11 0 00 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00
1 11 0 00 1 11 0 00 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00
1 11 0 00 1 11 0 00 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00
11 11 00 00 11 11 00 00 11 11 00 00 11 11 00 00
1 11 0 00 1 11 0 00 1 11 0 00 1 11 0 00
1 11 0 00 1 11 0 00 1 11 0 00 1 11 0 00
1 11 0 00 1 11 0 00 1 11 0 00 1 11 0 00
Διδιάστατο τετραγωνικό πλέγμα του οποίου οι θέσεις i = 1, . . . , N καταλαμβάνονται από ‘άτομα’ ή ‘μαγνητάκια’ με σπιν si οποία εδώ έχουν τυχαίο προσανατολισμό στο επίπεδο (πρότυπο XY). Συνήθως λαμβάνονται υπ΄ όψη μόνο οι αλληλεπιδράσεις πλησιεστέρων γειτόνων −Jsi · sj για κάθε σύνδεσμο ij . Η τοπολογία είναι τοροϊδής (toroidal) όταν ταυτίσουμε τις οριζόντιες πλευρές μεταξύ τους και τις κάθετες μεταξύ τους, δηλ. τα ίδια χρώματα στο σχήμα.
ËÕ Ñ ½º
Ø Ø Ñ Ò
× Ø ØÖ ÛÒÓ Ñ ÔÐ ÙÖ
Ñ L ÔÐ Ñ Ø
×
Ø
ÓÔÓ
Ô Ö ÑÓ Ñ Ñ Ö ÑÓ
i = 1, 2, . . . , Nº ÌÓ ÔÐ Ñ Õ Nl ×ÑÓ
´bonds linksµ Ñ Ø Ü ØÛÒ ÔÐ × ×Ø ÖÛÒ Ø ÒÛÒº ÙØÓ Õ Ö Ø ÖÞÓÒØ Ô Ø Ü ØÛÒ ÔÐ Ñ Ø ôÒ × ÛÒ i¸ j ÔÓÙ ÒôÒÓÙÒ ØÓÙ
×ÙÑ ÓÐÞÓÙÑ Ñ ij º Ì ÙØÞÓÙÑ Ø
ÔÐ ÙÖ
ØÓÙ Ø ØÖ ôÒÓÙ ÔÛ
×ØÓ ËÕ Ñ ½º º Ô ØØ ×Ñ
ÒôÒ Ö ô
Ó ÔÐ Ñ Ø
×
Ô ÔÐ Ñ Ø × Ü ÒÓ Ò Ö ô
Ø ×× Ö
×ÑÓ ×Õ
2Nl = 4N ⇒ Nl = 2N .
Ë ÔÐ Ñ Ø × ØÓÔÓ ØÓ Ñ ×Ô Ò si = ±1º
´½º ¼µ
½
Ã
ï Ä ÁÇ ½º ËÌ ÌÁËÌÁÃÀ
ÍËÁÃÀ
i
11 00 11 00 11 00 111 000 111 000 111 000
j i
111 000 111 000 111 000 11 00 11 00 11 00
j
si
sj
si
sj
ËÕ Ñ ½º
Τα σπιν στο πρότυπο Ising παίρνουν δύο μόνο τιμές ‘πάνω’ και ‘κάτω’ και η ενέργεια του συστήματος προκύπτει από τη συνεισφορά κάθε συνδεσμου (link) ij . Αυτή για το σιδηρομαγνητικό πρότυπο παίρνει δύο δυνατές τιμές +J και −J για αντίρροπα και ομόρροπα σπιν αντίστοιχα. Το σύστημα έχει τη συμμετρία της διακριτής ομάδας Z2 .
À Hamiltonian ØÓÙ ×Ùר Ñ ØÓ
Ò Ø
Ô Ø ×Õ ×
H = −J
ij
si sj − B
si .
i
´½º ½µ
Ç ÔÖôØÓ
ÖÓ
Ò Ø Ò ÐÐ Ð Ô Ö × Ñ Ø Ü ØÛÒ ×Ô Ò J > 0 ØÓ ÓÔÓÓ ÙÔÓ ØÓÙÑ ×ØÓ ÐÓ ÙØ ØÓ × ×Ø Ñ Ò × ÖÓÑ Ò Ø º à ×Ñ
ÔÓÙ ÒôÒ ÓÑ ÖÖÓÔ ×Ô Ò Õ Ò Ö −J ÔÓÙ Ò Ø 2J Ñ Ö Ø Ö ÔÒ ×Ñ Ñ ÒØÖÖÓÔ ×Ô Òº ÌÓ × ×Ø Ñ Ò Ö ÔÖÓØ Ñ Ø ×Ø ×
Ñ ×ÑÓ
ÓÑ ÖÖÓÔÓÙ
¸ к Ø ×Ô Ò Ò Ò Ð ÔÖÓ× Ò ØÓÐ ×Ñ Ò ÔÖÓ
Ø Ò Ø ÙÒ× º À Ð Õ ×Ø Ò Ö ÒØ ×ØÓ Õ ×Ø ÑÓÒ Ø ×Ø × Ñ Ð Ø ×Ô Ò Ò Ó ØÓ Ò ÔÖÓ
Ø Ò Ø Ù ÙÒ× ØÓÙ B¸ Ø Ò Ñ Ð ô Ø ×Ø × º À ÒÖ Ø
Ò
E0 = −JNl − BN = −(2J + B)N .
À ×ÙÒ ÖØ × Ô Ñ Ö ×ÑÓ Ò
´½º ¾µ
Z=
s1 =±1 s2 =±1
...
sN =±1
e−βH[{si }] ≡
eβJ
{si }
P
ij
si sj +βB
P
i si
,
´½º ¿µ
Στην περίπτωση του αντισιδηρομαγνητικού συστήματος J < 0 η θεμελιώδης ενέργεια είναι εκφυλισμένη και οι αντίστοιχες καταστάσεις είναι πιο πολύπλοκο να περιγρφούν [;] Για B = 0 το σύστημα έχει ‘πάνω–κάτω’ συμμετρία (συμμετρία Z2 ). Δύο καταστάσεις που προκύπτουν με την εφαρμογή της συμμετρίας αυτής (αντιστροφή όλων των σπιν) ταυτίζονται.
½º º
ÈÊÇÌÍÈÇ
ISING
½
Ø Ü ´
ÓÒ ÙÖ Ø ÓÒµ ØÛÒ ×Ô Ò ×ØÓ ÔÓÙ {si } ≡ {s1 , s2 , . . . , sN } Ò Ñ ÔÐ Ñ º ÌÓ Ô Ö Ô ÒÛ ÖÓ ×Ñ ÑÓ Þ ÔÐ Ò Ò ¸ Ø Ö Ø Ò B = 0¸ Ñ Hamiltonian Ô ÖÒ ÖØ
ØÑ
ÔÐ Ñ ØÖ ØÓÒ Ö Ñ ØÛÒ ÓÑ ÖÖÓÔÛÒ ×Ô Ò ´
ÔÖ Ð Ñ ¿µº Ç Ö Ñ
ØÛÒ ÖÛÒ ØÓÙ Ò ×Ó
Ñ ØÓÒ Ö Ñ ØÛÒ ÙÒ ØôÒ Ø Ü ÛÒ {si } ØÛÒ ×Ô Ò ÔÓÙ Ò 2N ¸ к ÙÜ ÒÓÙÒ Ø Ñ ØÓ Nº Ò 5×5 ÔÐ Ñ Ó Ö Ñ
ØÛÒ ÖÛÒ Ò 225 ≈ 3.4×106 º Ë Ñ ÛÒ Ñ Ø Òô× ØÓÙ ×Ù Ö ÙØ Ò ØÓ Ñ Ð Ø ÖÓ ÔÐ Ñ ×ØÓ ÓÔÓÓ Õ Ò Ô³ Ù
ÙÔÓÐÓ ×Ñ
ØÓÙ ÖÓ×Ñ ØÓ
ÙØÓ º Ò ÖÓÙ× ÌÓ ×Ø ØÓ ÔÖ ØÙÔÓ Ising Ñ B = 0 Õ Ø Ò Ü Ö Ø ØØ Ø β = βc ÔÓÙ √ 1 βc = ln (1 + 2) ≈ 0.4406867935 . . . ´½º µ 2 ØÓ × ×Ø Ñ Ô ÖÓÙ× Þ Ñ Ø × ×
Ô ØÒ ØØ ÑÒ × × Õ Ñ Ð
ÖÑÓ Ö ×
ÔÓÙ ØÓ × ×Ø Ñ Ò Ñ Ò Ø ×Ñ ÒÓ ´ |M| > 0µ ר Ò ØØ × × ÙÝ Ð
ÖÑÓ Ö ×
ÔÓÙ Ñ Ò Ø × Õ Ò Ø ´ |M| = 0µº À ÖÑÓ Ö × βc Ò Ö× Ñ ÖÑÓ Ö × ÖÑÓ Ö × Curieº À ÑØ × ×
Ò ×ÙÒ Õ
¸ ÙØ Ö
Ø Ü
¸ Ø ×ÙÒ ÖØ × |M| (β) Ò ×ÙÒ Õ
β = βc ÐÐ Õ Ô Ö Û
Ø
º ÙØ Ò Ø ÔÓ Ø ×ØÓ ËÕ Ñ ½º
M
C
T Tc
Tc
T
Ποιοτική συμπεριφορά της μαγνήτισης (αριστερά) και της ειδικής θερμότητας (δεξιά) στην μετάβαση φάσης στο πρότυπο Ising. Με συνεχή γραμμή δείχνεται η (μη αναλυτική) συμπεριφορά στο θερμοδυναμικό όριο ενώ με διακεκομμένες η συμπεριφορά για αυξανόμενο αλλά πεπερασμένο μέγεθος N του συστήματος. Οι τελευταίες συγκλίνουν ομοιόμορφα προς τις μη αναλυτικές συναρτήσεις.
ËÕ Ñ ½º
×Õ ×
β = βc ×ÙÒ ÖØ × ×Ù×Õ Ø ×ÑÓ ´½º µ ×ÙÑÔ Ö ÖÓÒØ ÔÛ
ר ´½º µ Ñ Ô Ô Ö ×Ñ ÒÓ Ñ Ó
×Ù×Õ Ø ×ÑÓ ξ(β)º à ô
ÔÐ × ÞÓÙÑ
¾¼
Ã
ï Ä ÁÇ ½º ËÌ ÌÁËÌÁÃÀ
ÍËÁÃÀ
Ø Ò Ö× Ñ ÖÑÓ Ö × ØÓ Ñ Ó
×Ù×Õ Ø ×ÑÓ Ø Ò ×ÙÑÔ Ö Ö Ø ×ÙÑÔØÛØ ×Ò
×ØÓ Ô ÖÓ
Ñ Ð ×Ø ´½º ´½º µ ´½º µ µ
ξ(β) ≡ ξ(t) ∼ |t|−ν
À ×ÙÒ ÖØ × ×Ù×Õ Ø ×ÑÓ ×ÙÑÔ Ö ÖØ
t=
βc − β . βc
× Ñ ÛÒ Ñ Ø Ò Ü×Û×
G(2) (i, j) ∼ c
Ö¹ Òô Ô Ö ÑÓ ×ÙÑÔ Ö ÓÖ ÑÛ×
´scalingµ Ô ÖÓÙ× ÞÓÙÒ Ñ Ø Ø C¸ Ñ Ò Ø × M ≡ M Ñ ÒØ Ô Ø Ø Ø χ × Ñ ÛÒ Ñ Ø
×Õ ×
1 . |xij |η
Òô Ñ Ò Ø × Ñ Ø ×Õ × Ç
t=0
Ñ
C ∼ |t|−α M ∼ |t|β χ ∼ |t|γ .
ÒØ
´½º ´½º ´½º Ö Ø × Ñ ÛÒ
µ µ µ
Ô Ó B = 0 ×ÙÑÔ Ö
Ø
ÔÓÙ Ô ÖÓÙ× ÞÓÒØ ר
Ô Ö Ô ÒÛ ×Õ ×
Ð ÓÒØ Ö× ÑÓ ¹ Ó Ø Ñ
ØÓÙ
Ø
Ø
ÑÛ×
´critical ’h scaling exponentsµ Ô ÖÓÙ× ÞÓÙÒ Ø Ò Ø Ø Ø
Ô Ó×Ñ Ø Ø
º к Ó Ø Ñ
ØÓÙ
Ò Ü Ö¹ ØôÒØ Ô Ø
Ð ÔØÓÑ Ö
ØÓÙ ÔÐ Ñ ØÓ
´Ø ØÖ ÛÒ ¸ ØÖ ÛÒ ÐÔµ Ø
ÐÐ Ð Ô Ö ×
´ÔÐ × ×Ø ÖÛÒ Ñ Ø ÒÛÒ¸ Ñ Ð Ø Ö
ÙÒ Ñ
ØÓÙ ×Ô Ò ÐÔµ Ñ ÓÐ Ð Ö Ð × Ô ÔÖ ØÙÔ ÕÓÙÒ Ø Ò ×ÙÑÔ Ö ÓÖ Ö Ø ÔÖ ØÙÔ ÙØ Ò ÕÓÙÒ Ø
Ø Ø
×ÙÑÑ ØÖ
¸ Ò ÓÖÞÓÒØ × ÕôÖÓ
ר ×
Ó ÐÐ Ð Ô Ö ×
Ò Ò ÓÒØ Ò
Ñ Ð
º ËØÓ ×Ù Ö Ñ ÒÓ ÔÖ ØÙÔÓ Ó Ø
Ô ÖÒÓÙÒ Ø
Ð Ñ Ò
Ø Ñ
Onsager
M ∼ B −1/δ .
´½º ¼µ
α=0 1 β= 8 7 γ= 4 δ = 15 ν=1 1 η= 4
´½º ½µ
½º º ÈÊÇ ÄÀÅ Ì
¾½
À ×ÙÑÔ Ö ÓÖ ´½º ½º ¼µ Õ Ö Ø ÖÞ Ø Ô Ø Ñ Ò ÐÙØ Ø Ø ØÛÒ ÒØ×ØÓ ÕÛÒ ×ÙÒ ÖØ × ÛÒº ÙØ Ò Ò ÙÒ Ø Ò Ò ÔÖÓ Ý Ô Ø Ò ×Ù¹ Ò ÖØ × Ô Ñ Ö ×ÑÓ ´½º ¿µ ÔÐ Ñ Ñ N ×
Ñ Ò Ô Ô Ö ×Ñ ÒÓ ÖÓ ×Ñ Ô Ø Ò Ò ×Ø Ò ÐÙØ ×ÙÒ ÖØ × ´ Ö Ó Ô Ö Û Ó Ø
µº À Ñ Ò ÐÙØ ×ÙÑÔ Ö ÓÖ Ò ÖôÒ Ø ×ØÓ Ö Ó Ô ÖÓÙ Ñ ÓÙ
´ ÖÑÓ ÙÒ Ñ Ö Óµ ÔÓÙ Ô Ö Ô ÒÛ ×ÙÒ ÖØ ×
Ø ÒÓÙÒ ÔÖÓ
Ñ Ñ Ò ÐÙØ ×ÙÒ ÖØ × ÔÛ
×ØÓ ËÕ Ñ ½º º ÌÓ Õ × ÑÓ Ø
Ò ÐÙØ Ø Ø
Ó Ð Ø ×ØÓÙ
×Ù×Õ Ø ×ÑÓ
ØÛÒ ×Ô Ò × Ñ ÖÓ× ÓÔ
ÔÓר ×
º Ë ÔÓÐÐ ×Ùר Ñ Ø ÔÓÙ Ñ Ð Ø Ñ Ø Ô Ö Ô ÒÛ Ñ Ò ÐÙØ ×Ѹ ¹ Ò Þ ØÓ Ñ Ñ Ô Ö Ñ ØÖÓ Ø Ü
´order parameterµ ÓÔÓ Õ Ö Ø ÖÞ Ø ×ÙÑÑ ØÖ ØÓÙ ×Ùר Ñ ØÓ
º ËØ Ò ×Ù Ö Ñ Ò Ô ÖÔØÛ× ØÓÙ ÔÖ ØÙÔÓÙ Ising Ô Ö Ñ ØÖÓ
Ø Ü
Ò Ñ Ò Ø × Ñ Ø ×ÙÑÑ ØÖ si → −si º ËÙÒ Û
ר Ñ × Ô Ö Ñ ØÖÓ
Ø Ü
Ò Ñ Ñ Ò Òô ר Ò ÐÐ Ñ ÒÞ Ø º ÙØ ×ÙÒ Ô Ø Ñ Ò ÐÙØ ×ÙÑÔÖ Ö ÓÖ ÓÙ Ñ Ò ÐÙØ ×ÙÒ ÖØ × ÔÓÙ Ò Ñ Ò ×Ò ×Ø Ñ ¸ Ò Ô ÒØÓ Ñ Òº À ×ÙÑÔ Ö ÓÖ Ô Ó×Ñ Ø Ø
Ò Ü ÖØ ×
ÐÑ
´scale invarianceµ Ô ÖÓÙ× Þ Ø ÓÖ ÔÓÙ ÕÓÙÑ Ô Ð × ØÓÙ Ñ ÓÙ
×Ù×Õ Ø ×ÑÓ ξº ËØ Ò Ô ÖÔØÛ× Ñ
Ò Ø ×ÓÙÑ ØÓ Ö× ÑÓ × Ñ Ó ÕÓÙÑ Ò ÖÙ Ñ×ÓÙ¹ Ñ Ñ ÒÓ Ñ Ô Ö Ñ ØÖÓ¸ Ø ÖÑÓ Ö × ¸ ÓÔ Ø Ò Ñ Ò Ò
Ò Ñ Ò ×Ø Ñ ÒÓ Ñ ÒÓ Ö ÐÑ ×ØÓ ÔÖ ØÙÔÓº Ò Ü ÖØ × ÐÑ
Ñ ÒÞ Ø Ø Ò ØÓ Ñ Ó
×Ù×Õ Ø ×ÑÓ Ò ÔÓÐ Ñ Ð Ø ÖÓ Ô Ø Ñ ÖÓ× ÓÔ Ð¹ Ñ a¸ ÓÔ Ø ÓÔÓ ÔÓØ ÔÓ× Ø Ø × Ò ×ÙÒ ÖØ × Ø
Ô ×Ø ×
r ÑÔÓÖ Ò Ü ÖØ Ø Ñ ÒÓ Ô ØÓ Ð Ó r/ξº À Ô Ó×Ñ Ø Ø ÔÖÓ ÔØ Ô ØÓ ¹ ÓÒ
Ø ×Ø Ò Ô ÖÔØÛ× ÙØ Ò Ø Ø Ô ÒØ Ò Ü ÖØôÒØ Ô Ò
Ø
ÙÑ Ò×
Ñ Ñ ÐÓ Ñ Ó
Ñ ØÓ
ÔÓÙ Ô ØÓ ÒØ Ô Ø ×ÙÑÑ ØÖ Ø
Ô Ö Ñ ØÖÓÙ Ø Ü
Mº À × Ñ ÒØ ÔÐÓ ×Ø Ù× ÔÓÙ ÔÖÓ ÔØ Ò Ø Ò Ñ Ð Ø ×ÓÙÑ Ò ÔÖ Ñ Ø Ù× × ×Ø Ñ × Ñ ×ÙÒ Õ Ñ Ø × ×
ξ → ∞ Ö Ò Ñ Ð Ø ×ÓÙÑ ØÓ ÔÐÓ ×Ø ÖÓ ÔÖ ØÙÔÓ Ñ Ø ÓÑ Ò ×ÙÑÑ ØÖ ´ÕÛÖ
µ ר ×
ØÓ ÓÔÓÓ Ò Ò Ü ÖØ ØÓ ÐÑ
´scale invariantµº
½º
½º ¾º
ÈÊÇ ÄÀÅ Ì
ÔÓ ÜØ Ø ×Õ × ÔÓ ÜØ Ø ×Õ × ´½º¾¼µ º ´½º µ º ÔÒÐ Ø ØÒ Ø ÒÓÑ ´½º¾½µ º
¾¾ ¿º º ÔÓ ÜØ Ø ×Õ × ×ØÓ ÕÓ ØÖ ÛÒ ÔÒÐ ×Ø ×
º Ø Ø Ò ÔÖÓ Ò ×Ø
Ã
ï Ä ÁÇ ½º ËÌ ÌÁËÌÁÃÀ
ÍËÁÃÀ
´½º ¼µ º Ü ÛÒ
Ö Ø Ø
Ò ÐÓ
×Õ ×
ÔÐ Ñ º
ØÓ ÒØ¹ ¹
ÓÑÒ × × ØÓ Ù ÔÐ Ñ ×Ø
¿ ר ×
º ØÓ ÙÔ Ö Ù ×Ø
d
B = 0 ÑÔÓÖ ×Ó Ò Ñ Ò Ö º À Hamiltonian ØÓÙ ÔÖÓØ ÔÓÙ Ising ×Ò H ′ = −J ′ δi,j ´½º ¾µ
ij
Ö Ø Ø ×Õ × Ñ Ø Ü ØÛÒ J¸ J ′ ¸ H¸ H ′ Ø
×Õ ×
´½º ½µ ôר Ø ×Ùר Ñ Ø Ò Ò Ù× ×Ó Ò Ñ º Ô Ò Ð Ø ØÓ Ó Ø Hamiltonian H ′′ = −J ′′ (δi,j − 1) ´½º ¿µ
ij
È Ö Ø Ö ×Ø Ø Ó H ′ ×ÑÓ
ÒØ×ØÓ Õ º
H ′′ Ñ ØÖÓ Ò ÓÑ ÖÖÓÔÓÙ
ÒØÖÖÓÔÓÙ
¹
Ã
Ð Ó¾
ÈÊÇËÇÅÇÁÏË ÁË MONTE
CARLO
ËØÓ Ð Ó ÙØ Ò Ø Ô × Ô × ØÛÒ × ôÒ ÖÕôÒ Ñ
ÔÖÓ×ÓÑÓÛ×
Ñ Ø Ñ Ó Ó Å ÒØ à ÖÐÓº Ò ÙÔ ÖÕ Ò ÖÓÒ Ù× × ×Ø Ñ ØÓÙ ÓÔÓÓÙ Ó ÙÔÓÐÓ ×Ñ
Ø
×ÙÒ ÖØ ×
Ô Ñ Ö ×ÑÓ Ò Ò Ø Ñ Ô³ Ù
ÙÔÓÐÓ ×Ñ ØÓÙ ÖÓ×Ñ ØÓ
´½º µ º ËØ
Ô Ö ×× Ø Ö
Ô Ö ÔØô×
Ø ¹ ÓÙÑ × ×Ø Ø ×Ø Ñ ØÓÐ Ý ØÛÒ ÖÛÒ ×Ø Ò Ô Ö Ô ÒÛ Ü×Û× ÔÓ ÓÑ Ò Ñ Ó Ó
¸ Ð Û Ø
ÔÓØ Ð ×Ñ Ø Ø Ø
Ø
Ø
Ò
Ø
ÖÑÓ
¸ Ò Ñ Ó Ó
Å ÒØ à ÖÐÓº Ò Ü Ó× Ñ ÛØÓ Ø × ×Ù¹ ר Ñ Ø ÔÛ
ØÓ ÔÐ ÔÖ ØÙÔÓ Ising ØÓ ÖÓ ×Ñ ´½º ¿µ Ò ÔÖÓ× × ÑÓ Ñ ÒÓ Ñ Ø Ñ Ó Ó ÙØ Ø ÕÖ × Ñ ÔÓØ Ð ×Ñ Ø ÑÔÓÖÓ Ò Ò Ü Õ Ó Ò Ñ Ø ÑÐØ Ñ ØÛÒ Ø
Ø Ü
ØÓÙ ≈ 10−3000 ×ÙÒÓÐ Ó ÕÛÖÓÙ ØÛÒ ¹ ½ Ø ×Ø × ÛÒ º ÙØ Ò Ø ×Ø ÔÓ Ø Ð Ñ ÒÓÒØ
ÙÔ³ Ý Ø ×ØÓ Ö ×Ø Ö Ó Ò ÔÖ Ñ Ø ×Ø Ø ×Ø × ×Ø Ñ Ñ
Ò Ô Ö Ñ Ø ÔÐ ¹ ÖÓ ÓÖ Ø Ò Ñ × ×ØÓ ÕÖ ÒÓ ØÓÙ Ô Ö Ñ ØÓ
ØÓ × ×Ø Ñ Ô × ÔØ Ø Ñ ¾ Ñ Ö Ø Ö ÔÓ×Óר ØÓÙ × Ó ÕôÖÓÙ º
½ Λ.χ. για το d = 2, L = 100 πρότυπο Ising έχουμε 210000 ≈ 103010 καταστάσεις. Σε μια τυπική προσομοίωση παίρνουμε δείγμα από ≈ 107 καταστάσεις δηλ. ποσοστό ≈ 10−3003 !! ¾ Ενα τυπικό αέριο με 1022 μόρια σε δοχείο 1 λίτρου σε θερμοκρασία δωματίου και ατμοσφαιρική πίεση έχει μόρια που κινούνται με τυπικές ταχύτητες ≈ 100ms−1 δηλ. τυπικό μήκος κύματος κατά δε Βρογλιε ≈ 10−10 m δίνοντας ≈ 1027 διαφορετικές καταστάσεις ανά 22 μόριο. Συνολικά το σύστημα έχει (1027 )10 κατάστάσεις. Με ένα τυπικό ρυθμό από 109 κρούσεις ανά δευτερόλεπτο έχουμε ≈ 1031 αλλάγες καταστάσεων ανά δευτερόλεπτο. Αρα θα 23 χρειαστεί χρόνο περίπου 1010 την ηλικία του σύμπαντος ώστε το σύστημα να επισκευτεί όλες τις καταστάσεις [1].
¾¿
¾
Ã
ï Ä ÁÇ ¾º ÈÊÇËÇÅÇÁÏË ÁË
MONTE CARLO
¾º½
Á Å ÌÇÄÀ Á
Ç Ö Ó
ר ÕÓ
Ñ
Ò Ó ÔÖÓ× ÓÖ ×Ñ
Ø
Ñ ×
Ø Ñ
Q Ñ
Ù×
ÔÓ× Ø Ø
Q ´ÐºÕº Ò Ö
¸ Ñ Ò Ø ×
¸ ×ÙÒ ÖØ ×
×Ù×Õ Ø ×ÑÓ µ × Ò ×Ø Ø ×Ø × ×Ø Ñ ×Ø Ò ÒÓÒ ×ÙÐÐÓ
Q=
µ
pµ Qµ =
µ
Qµ e−βEµ
µ
e−βEµ
.
´¾º½µ
Ø ×Ø ×
{µ1 , µ2 , . . . , µM } Ó ØÓ Ð Ó ÙØ Ô Ð ÓÙÑ Ñ Ô M ÓÔÓ
Ø Ò ÑÓÒØ × Ñ ÛÒ Ñ Ø Ò Ø ÒÓÑ Ô Ò Ø Ø
Pµ ÓÖÞÓÙÑ ØÓÒ Ø Ñ Ø ´estimatorµ QM Ø
Q
QM =
Ç Ô Ö Ô ÒÛ Ø ÔÓ
Ò Ø
ËÙÕÒ Ø Ø Ö×
M −1 −βEµi i=1 Qµi Pµi e M −1 −βEµi i=1 Pµi e
.
´¾º¾µ
ÓÐ
Ø ÒÓ Ø
Ó
Ø ×Ø ×
µi
רÓ
Ñ
Ñ ÐÓ Ñ Pµi ≈ Ô Ö Ñ ÒÓÙÑ Ø ´¾º¿µ × ¹
Q = lim QM .
M →∞
Ç ×Ø ÕÓ
Ñ
Ò Ð × ´¾º¿µ Ò Ò Ø ¾º½º½ ÈÄÀ
Ø ÐÐ Ð Ô ÐÓ Ø
Ø ÒÓÑ
Pµ Ø× ôר Ö ÓÖ º ÖÒÓÙÑ Ø
Ü
Ô Ö ÔØô×
Á Å ÌÇÄÀ º ÓÔ Ø ´¾º¾µ Ò Ø Á
Ð ÓÙÑ Pµ = ר
QM =
M −βEµi i=1 Qµi e M −βEµi i=1 e
.
´¾º µ
ÌÓ ÔÖ Ð Ñ Ñ Ø Ò Ô ÐÓ ÙØ Ò Ø ÕÓÙÑ ÔÖ Ð Ñ Ô ÐÙÝ
ØÓÙ Ñ ØÓ
Ñ Ø
Ø ×Ø ×
ÔÓÙ ÔÖ Ñ Ø ×ÙÒ × ÖÓÙÒ ×ØÓ ÖÓ ×Ñ ´¾º½µ º ÇÔÛ
Ò ÖÑ ×Ø Ò × Û ¸ Ó Ö Ñ
ØÛÒ Ø ×Ø × ÛÒ ÔÓÙ Ô Ð ¹ Ø × Ñ ÔÖÓ×ÓÑÓÛ× Å ÒØ à ÖÐÓ ×ØÓ Ñ Ò Ò Ð Õ ×ØÓ ÔÓ×Óר ØÓÙ ÕôÖÓÙ ØÛÒ Ø ×Ø × ÛÒ ØÓÙ ×Ùר Ñ ØÓ
º Ö Ô Ò Ø Ø Ò Ô ÖÓÙÑ Ò
Ø
Ø ×Ø ×
ÔÓÙ ÒÓÙÒ × Ñ ÒØ ×ÙÒ × ÓÖ ×ØÓ ÖÓ ×Ñ ´¾º½µ
¾º½º
Á Å ÌÇÄÀ
Á
¾ ÔÖ ´½º¾ µ Ñ Ø Ò Ô ÖÔØÛ× Q = E ÕÓÙÑ ´¾º µ
Ò Ò Ò ÔÓÐ Ñ Ö º
Ô ÖÓÙÑ ×ØÓ ÔÖ ØÙÔÓ Isingº Ë Ñ ÛÒ Ñ Ø ×Õ ×
E=
E
E p(E)
ÔÓÙ p(E) Ò Ô Ò Ø Ø Ñ Ò×
Ò Ö
E ×ØÓ × ×Ø Ñ º À ÔÓ ÓØ ÑÓÖ Ø
Ò Ø ×ØÓ ËÕ Ñ ½º¾º Ô Ø
×Õ ×
´½º¿¼µ ´½º¿¾µ ÕÓÙÑ √ Ø ∆E/E ∼ 1/ N ∆E ∼ 1/β ÓÔ Ø Ø
Ô Ö ÔØô×
β = 0 β>0 Ô ÖÒÓÙÑ ÔÓ ÓØ Ø ×ÙÑÔ Ö ÓÖ ÔÓÙ Ò Ø ×ØÓ ËÕ Ñ ¾º½º½º À Ø ÒÓÑ
p(E)
β>0
β=0
E
ËÕ Ñ ¾º½ Η πιθανότητα p(E) για το πρότυπο Ising για θερμοκρασίες β = 0 και β > 0.
Οι δύο κατανομές έχουν ελάχιστη επικάλυψη.
Ø
ÔÐ
Ñ ØÓÐ Ý
ÒØ ×ØÓ Õ ×Ø Ò Ô ÖÔØÛ× β = 0 ´ к ×Õ × ´½º µ µº Ò ÙÔÓÐÓ ×ÓÙÑ Ñ Ö ØÓ ÖÓ ×Ñ ´¾º µ β > 0 ÔÖ Ô Ò Ô ÖÓÙÑ Ð Ñ ×Ø Ò Ô Ö ÓÕ ÔÓÙ ØÓ Ò Ñ ÒÓ E pβ>0 (E) Ò ×Õ Ø × Ñ ÒØ º ÇÔÛ
Ð ÔÓÙÑ ×ØÓ ËÕ Ñ ¾º½º½ Ô Ò Ø Ø Ò Ô ÖÓÙÑ ×ØÓ Ñ Ø ×Ø × Ñ Ò Ö Ø ØÓ ר Ò Ô Ö ÓÕ ÔÓÙ Ò ØÓ E pβ>0 (E) Ò ×Õ Ø × Ñ ÒØ Ò ÔÓÐÙ Ñ Ö Ø Ò Ñ ØÓÐ Ý Ò Ø Ñ Ø Ò Ø ÒÓÑ pβ=0 (E) È Ö³ ÐÓ ÔÓÙ ×Ù Ö Ñ Ò Ñ Ó Ó
Õ ØÓ Ñ ÓÒ Ø Ñ ÙØ ¸ ÑÔÓÖ Ò Ò ÕÖ × Ñ × ÓÖ ×Ñ Ò
Ô Ö ÔØô×
º Â Ø Ò ÖÑ ×ÓÙÑ ÐºÕº Ö Ø Ö ×Ø Ò Ô ÖÔØÛ× ØÓÙ ØÙÕ ÓÙ Ô Ö Ô Ø Ø º È Ö Ø Ö ×Ø Ô×
Ø ØÓ Ñ
¾
Ã
ï Ä ÁÇ ¾º ÈÊÇËÇÅÇÁÏË ÁË
MONTE CARLO
´¾º µ
ÔÓÙ Ô ÖÒÓÙÑ Ò Ò Ü ÖØ ØÓ ØÓÙ β ÙÔÓÐÓ ÞÓÙÑ Ø
Ñ ×
Ø Ñ
βº ¾º½º¾
ÕÖ × ÑÓÔÓ ôÒØ
Ø ×Õ ×
IMPORTANCE SAMPLING
× ÛÒ Ñ ´¾º µ ºÇ
Ô Ø Ñ Ô Ö Ô ÒÛ Ò ÔÓÐ Ñ Ö Ñ ÖÓ
ØÓÙ ÕôÖÓÙ ØÛÒ Ø ×Ø Ò × Ñ ÒØ ×ÙÒ × ÓÖ ×ØÓÒ ÙÔÓÐÓ ×Ñ ØÓÙ Q º Ò Ô Ð ÜÓÙÑ ØÓ Ñ Ô ÒØØ e−βEµ P µ = pµ = Z Ô Ö Ñ ÒÓÙÑ Ò Ñ ØÓÐ ÔØ ×ÓÙÑ Ö ô
Ñ × ×ØÓÒ ÙÔ ÕÛÖÓ ÙØ ÙÔÓÐÓ ×Ñ
ØÓÙ Ø Ñ Ø ´¾º¾µ Ò Ø Ñ Ø ×Õ ×
QM =
M −βEµi −1 −βEµi e i=1 Qµi e −1 −βEµ M −βEµi i e i=1 e
1 = M
M
Qµi .
i=1
´¾º µ
À Ô Ö Ô ÒÛ Ñ ØÓÐ Ý Ð Ø Ñ ØÓÐ Ý Ñ Ö Ø Ö Ó × Ñ ÒØ ¹ Ø Ø
´importance samplingµ Ò Ó ØÖ ÔÓ
Ó ÓÔÓÓ
ÕÖ × ÑÓÔÓ Ø ÔÖÓ×ÓÑÓ ô×
ר Ø ×Ø ôÒ ×Ùר Ñ ØÛÒ ×Ø Ò ÒÓÒ ×ÙÐÐÓ º ÌÓ Ñ Ü ÖØ Ø ÔØ ÖÑÓ Ö × β Ó ÙÔÓÐÓ ×Ñ
ØÛÒ Ñ ×ÛÒ Ø ÑôÒ ´¾º µ Ô Ø ÒÓ Ö Ñ ØÓÐ Ý ÓÖ × ÒØ × Ñ Ø Ò ´¾º µ º ÙØ Ù× ÓÐ ÑÛ
¸ ר
Ô Ö ×× Ø Ö
Ô Ö ÔØô×
¸ Ò ÔÓÐ Ñ Ö Ø Ö Ô ØÓ ÔÖ Ð Ñ Ø
Ô ÐÙÝ
ÔÓÙ ×ÙÞ Ø ×Ø Ò Ô Ö Ö Ó ¾º½º½º
¾º¾
Á
ÁÃ ËÁ Ë MARKOV
Ò Ô ÖÓÙÑ Ò Ñ ØÓ ÓÔÓÓ Ø Ò Ñ Ø × Ñ ÛÒ Ñ Ø Ò Ø ÒÓÑ Pµ Ò Ö Ò ØÓ ÒÓÙÑ Ô³ Ù
º ĺպ Ò Ô Õ Ö ×ÓÙÑ Ò Ñ ÓÙÖ ¹ e−βEµ ×ÓÙÑ Ñ Ñ Pµ = Z Ô Ð ÓÒØ
ØÙÕ Ø ×Ø × µ ÕÑ ÔÓÖÖÔØÓÙÑ Ø Ò × Û ×ØÓ Ñ Ñ Ô Ò Ø Ø Pµ ÕÓÙÑ Ð Õ ×Ø Ô ÒØØ Ø ×Ø × Ò Ò ÔÓ Ø ×ØÓ Ñ º ÇÔ Ø Ö ÓÑ ×Ø Ò Ù× ÓÐ ÔÓÙ Ö Ñ ×Ø Ò Ô ÖÔØÛ× Ø
ÔÐ
Ñ ØÓÐ Ý
º ØÓ Ð Ó ÙØ ÕÖ × ÑÓÔÓ ×ÓÙÑ Ñ × Å Ö ÓÚ Ø Ñ ÓÙÖ¹ ØÓÙ Ñ ØÓ
º ÙØ Ò Ñ × ÔÓÙ ÓÑ ÒÓÙ ØÓÙ ×Ùר Ñ ØÓ
Ñ ×ØÓÕ ×Ø ØÖ ÔÓ Ñ Ò Ø ×Ø × νº Ø× ×Ñ Ø ×Ø × µ Ô Ö Ñ ÓÙÖ Ø Ñ ÐÙ× Ø ×Ø × ÛÒ
µ0 → µ1 → µ2 → . . . → µM
´¾º µ
¾º¾º
Á
ÁÃ ËÁ Ë
MARKOV
¾
Ò¹ ÓÔÓ ÔÓØ Ð × ØÓ Þ ØÓ Ñ ÒÓ Ñ {µi } ≡ {µ0 , µ1 , µ2 , . . . , µM }º Ø Þ Ñ ×Ø Ø Ô ÐÓ Ø
Ø ×Ø ×
µi Ò Ø ×ØÓ ÕÖÓÒÓ iº À Ô Ò Ø Ø Ñ Ø ×
P (µ → ν) ´transition probabilityµ ר Ò Ø ×Ø × ν Ø Ò ØÓ × ¹ ר Ñ Ò ×Ø Ò Ø ×Ø × µ ÔÖ Ô Ò ÒÓÔÓ Ø
Ô Ö ØÛ ×ÙÒ
½º ¾º ¿º Á Ò Ò Ü ÖØ Ø ØÓÙ ÕÖ ÒÓÙ º Õ ÔØ ÖÓÑ ÔÓÙ
Ü ÖØ Ø Ñ ÒÓ Ô Ø
Ø ×Ø ×
µ¸ ν Ò Ñ Ñ ÕÖ Ø Ò Ø ×Ø × µº ÒÓÔÓ Ø ×Õ ×
ν
P (µ → ν) = 1 .
ØÓ × ×Ø Ñ Ø Ò Õ Ô
´¾º µ ÒØØ Ò
ÈÖÓ×ÓÕ ¸ ×ÙÒ Û
P (µ → µ) > 0 Ô Ö Ñ Ò ×Ø Ò Ø ×Ø × º º
t → ∞ ØÓ
Ñ {µi }
ÓÐÓÙ
Ø ÒÓÑ Pµ º
À ÔÖÓ×ÓÑÓÛ× Å ÒØ Ã ÖÐÓ Ñ ØÓÒ ØÖ ÔÓ ÙØ Ò Ø Ô Ð ÓÒØ
Ø Ð¹ ÐÐ Ñ ÖÕ Ø ×Ø × µ0 ØÓ × ×Ø Ñ ÖÑ ÞÓÒØ
ØÓ Ô Ö Ô ÒÛ Ð Ö ÑÓº À Ñ Ð Ø Ö ÔÖÓ×Ô Ô ÒØÖôÒ Ø ×ØÓ ÔÖÓ× ÓÖ ×Ñ ØÛÒ × Ð × º Ò Ô ØÙ Õ Ò Ø Ô ÒÓØ ØÛÒ Ñ Ø ×
P (µ → µ) Ø× ôר Ö ÓÖ º Ë Ñ ÒØ Ò Ô ÐÓ Ø
ÖÕ
Ø ×Ø ×
µ0 º Ò ÙØ Ò Ò Ñ ØÙÔ Ø ×Ø × ØÓÙ Ø Ð Ó Ñ ØÓ
ÔÖ Ô Ò Ô Ö × ¹ ÔÓ Ó
ÕÖ ÒÓ
Ñ ÕÖ ØÓ × ×Ø Ñ Ò Ö × Ø ×Ø × ×ÓÖÖÓÔ × ÔÓÙ Ô × Å Ö ÓÚ Ñ ØÓÐ ÔØ Ñ × ×Ø ×Ûר Ø ÒÓÑ º Ç ÕÖ ÒÓ
ÔÓÙ Ô Ø Ø ´thermalization timeµ ÑÔÓÖ Ò Ò × Ñ ÒØ Ñ ÖÓ
Ø
ÔÖÓ×Ô ¹
Ñ
Ò Ò Ð Ó
Ô ÐÓ Ø
µ0 » ØÛÒ P (µ → µ)º Ô Ö Ø Ø ÔÖÓÔ × Ò Ô Ø ÕÓÙÑ ØÓ Ñ Ò ÓÐÓÙ Ø Ò Þ ¹ ØÓ Ñ Ò Ø ÒÓÑ × Ñ Ø ØÓ × Ò Ò ÒÓÔÓ ØÓ Ö Ø Ö Ó Ø
ÖÓ Ø Ø
º ÙØ × Ñ Ò ØÔ Ø ×Ø × µ ÔÓÙ Ô Ð ÓÙÑ ¸ ÐÐ ÙÒ Ø Ø ×Ø × ν Ò ÔÖÓ× × Ñ Ñ ×Û Ø
×
Ñ Ò Ô Ô Ö ×Ñ ÒÓ Ö Ñ Ô Ñ Ø º Ò ÙØ Ø ×Ø × Ò ÒÓÔÓ Ø ÙÔ ÖÕÓÙÒ × Ñ ÒØ
Ô Ö ÓÕ
ØÓÙ ÕôÖÓÙ ØÛÒ Ø ×Ø × ÛÒ ×Ø
ÓÔÓ
Ò ÑÔÓÖÓ Ñ Ò Ñ ØÓÐ ÔØ ×ÓÙÑ Ò Ò ÙÒ Ø Ò Ò Ô Ø ÕÓÙÑ Ø Þ ¹ Ø ×Ø ×
ν ØÓ Ñ Ò Ø ÒÓÑ º ËØ Ò ÔÖ Ü ¸ Ô ÓÑ Ò
Ø
µ Ó
¾
Ã
ï Ä ÁÇ ¾º ÈÊÇËÇÅÇÁÏË ÁË
MONTE CARLO
Ø
ÓÔÓ
P (µ → µ) > 0 Ò Ð Õ ×Ø
¸ ÔÖ Ô Ò Ñ ×Ø Ø Ö ÔÖÓ× ¹ Ø Ó ôר Ó Ð Ö ÑÓ
ÔÓÙ Ô Ð ÓÙÑ Ò Ñ Ò Ô Ö Þ Ø ×ÙÒ Ø
¿ ÖÓ ØØ
º
¾º¿
ËÍÆÂÀÃÀ Ä ÈÌÇÅ ÊÇÍË ÁËǹ Í ÀËÀË
Ø ÒÖ Ò Ø Ø
Ñ Ø ØÓ ×
´¾º½¼µ
Ô Ø Ò Ü×Û× ´½º¾µ ÑÔÓÖÓ Ñ ÓÐ Ò Ø Ð ÓÙÑ × ×Ø Ñ × Ø ×Ø × ×ÓÖÖÓÔ
ר Ò Ø ÒÓÑ pµ ¸ Ó Ô ÔÖ Ô Ò ÒÓÔÓ Ó Ò Ø ×Õ ×
ν
pµ P (µ → ν) =
µ
pν P (ν → µ) .
ÙØ × Ñ Ò Ø Ó ÖÙ Ñ
Ñ ØÓÒ ÓÔÓÓ ØÓ × ×Ø Ñ Ñ Ø Ò Ô ØÒ ¹ Ø ×Ø × µ × ÔÓ ÐÐ ¸ Ò ×Ó
Ñ ØÓ ÖÙ Ñ Ñ ØÓÒ ÓÔÓÓ ØÓ × ×Ø Ñ Ñ Ø Ò ×Ø Ò Ø ×Ø × µ Ô ÔÓ ÐÐ º ÈÖÓ Òô
¸ ×Õ × ´¾º µ Ñ
Ò pµ = pν P (ν → µ) . ´¾º½½µ
µ
À Ô Ö Ô ÒÛ ×ÙÒ Ò Ò ÐÐ Ò Ò Ò´
Ð Ó ¾º¾º¿ ØÓÙ ½℄µº Å Ò ¸ ÐÐ Õ Ò ×ÙÒ Ò ×ÙÒ Ð ÔØÓÑ ÖÓ
×ÓÞ ×
´detailed balance conditionµ ÓÔÓ Ø Ò ÒÓÔÓ Ø Ô Ø
Ô Ò Ø Ø
Ñ Ø ×
Ø Ø Ò ÙÒ Ø Ò Ò Ü Ò
Ø ØÓ × ×Ø Ñ Ö Ö ÓÖ Ø× × Ø ×Ø × ÖÑ
×ÓÖÖÓÔ
º ÖÓÞÓÒØ
Ø Ó Ñ Ð Ø
´¾º½¾µ ÔÖÓ ÔØ ×ÙÒ ´¾º½¼µ º Ø Ò Ø ÒÓÑ Ø
ÒÓÒ
×ÙÐÐÓ
´½º µ ÕÓÙÑ
pµ P (µ → ν) = pν P (ν → µ)
´¾º½¾µ ×ÓÖÖÓÔ
´¾º½¿µ
πράξη υπάρχουν αλγόριθμοι για του οποίους έχουμε παραβίαση της εργοδικότητας αλλά επειδή οι καταστάσεις που δεν είναι προσβάσιμες αποτελούν σύνολο ‘μέτρου μηδέν’ στο χώρο των καταστάσεων, η παραβίαση δεν επηρεάζει τα αποτελέσματά μας. Αντίθετα, υπάρχουν περιπτώσεις όπου η συνθήκη δεν παραβιάζεται αλλά η πιθανότητα να φτάσω σε κάποιες περιοχές του χώρου των καταστάσεων είναι στην πράξη απαγορευτικά μικρή. Αυτό για παράδειγμα μπορεί να συμβεί κοντά σε μια μετάβαση φάσης πρώτης τάξης όπου το σύστημα δυσκολέυεται να περάσει από καταστάσεις της μιας φάσης στην άλλη.
¿ Στην
P (µ → ν) pν = = e−β(Eν −Eµ ) . P (ν → µ) pµ
¾º¿º
ËÍÆÂÀÃÀ Ä ÈÌÇÅ ÊÇÍË ÁËÇ Í ÀËÀË
¾
ÅÔÓÖ Ò ÕØ Ø Ò Ó Ô Ò Ø Ø
Ñ Ø ×
ÒÓÔÓ Ó Ò Ø
Ô Ö Ô ÒÛ ×ÙÒ
ØØ Ø ÒÓÑ ×ÓÖÖÓÔ
ØÓÙ ×Ùר Ñ ØÓ
Ò Ø ÒÓÑ Boltzman ´½º µ º ÌÓ ÔÖ Ö ÑÑ Ø
ÔÖÓ×ÓÑÓÛ×
Å ÒØ à ÖÐÓ ÑÔÓÖ Ò ×ÙÒÓÝ ×Ø ר Ô Ñ Ò ÑØ ½º ¾º ¿º Ö ÓÙÑ ÐÓ ×Ñ ØÓ ÓÔÓÓ Û ÓÔÓ Ø ÐÐ Ð Ô Ð Ñ Ò
Ô ÒÓÔÓ Ó Ò Ø Ò ´¾º½¿µ Ò Ø Ø
Ñ Ø ×
P (µ → ν) ÔÓÙ Ô Ð ÓÙÑ Ø ÐÐ Ð ÖÕ Ø ×Ø × µ0 º ×ÓÙÑ Ø Ò Ø ÒÓÑ ÙÔÓÐÓ ¹ ÒÓÙÑ ØÓ × ×Ø Ñ Ò Ü Ð Õ Ñ ÕÖ Ò ÔÖÓ× Boltzman ´½º µ ´thermalizationµº ¹
º ËÙÐÐ ÓÙÑ ÓÑ Ò Ø
Ô Ö Ø Ö × Ñ
ÔÓ× Ø Ø
Q ÞÓÙÑ ØÓÒ Ø Ñ Ø QM Ñ Ø Ò ´¾º µ º º ËØ Ñ Ø Ñ Ñ Ð
Ô Ø ÕÓÙÑ Ø Ò Ô ÙÑ Ø Ö º
À Ü×Û× ´¾º½¿µ Õ ÔÓÐÐ
Ð ×
º ÌÓ ÔÓ Ô Ð ÜÓÙÑ Ü ÖØ Ø Ô Ø Ò ÔÓ ÓØ Ø Ø ØÓÙ
× Ò ×Ù Ö Ñ ÒÓ ÔÖ Ð Ñ ÔÖ Ô Ò Ü Ø ×Ø ÔÖÓ× Ø Ø Ô ÖÔØÛ× º È Ö Ñ Ø Ø ØÓ ÛÒ Ô ÐÓ ôÒ Ò
P (µ → ν) = A · e− 2 β(Eν −Eµ ) , P (µ → ν) = A · P (µ → ν) = A ·
Ø ÐÐ Ð ÔÐ Ñ Ò
1
´¾º½ µ ´¾º½ µ ´¾º½ µ
e−β(Eν −Eµ ) , 1 + e−β(Eν −Eµ )
Ø ×Ø ×
ν = µ
e−β(Eν −Eµ ) Eν − Eµ > 0 , 1 Eν − Eµ ≤ 0 P (µ → ν)
Ø ×Ø × ν ′ º Ç ×Ø
P (µ → µ) = 1 −
ÓÔÓ ÔÓØ Òô P (µ → ν ′ ) = 0 Ò Ô Ð Ó Ò Ø ÐÐ Ð Ø× ôר ÐÐ
´¾º½ µ Ö
A ÔÖ Ô ´¾º½ µ
ν
ν=µ
P (µ → ν) < 1
Ò
Õ
Ò
Ñ
´¾º½ µ º
¿¼
Ã
ï Ä ÁÇ ¾º ÈÊÇËÇÅÇÁÏË ÁË
MONTE CARLO
ÒÓØ ØÛÒ ´¾º½ µ
À ×Õ × ´¾º½ µ Ñ
Ò Ñ Ð Ð Ù Ö ×Ø Ò Ô ÐÓ ØÛÒ Ô Ñ Ø ×
º ËØ Ò ÔÖ Ü Ó P (µ → ν) ×Ô Ò × Ó ÓÑÑ Ø
P (µ → ν) = g(µ → ν) A(µ → ν)
Ø ÓÔÓ ÒØ ×ØÓ ÕÓ Ò × ÖØ Ñ Ø ×ØÓÒ Ð Ö ÑÓº À Ô Ò Ø Ø g(µ → ν) Ò Ô ÒØØ Ô ÐÓ
´ØÖ Ò× Ø ÓÒ ÔÖÓ¹ Ð ØÝµ Ø
Ø ×Ø ×
ν Ø Ò ØÓ × ×Ø Ñ Ö× Ø ×Ø Ò Ø ×Ø × µº ÌÓ ÔÖôØÓ Ñ Ð Ò Ò Ô Ð ÜÓÙÑ Ñ Ø ×Ø × ν = µ Ñ Ô Ò Ø Ø g(µ → ν)º ÌÓ Ø ÖÓ Ñ Ò Ò Ô Ð ÜÓÙÑ Ñ Ô Ò Ø Ø A(µ → ν) Ò ØÓ × ×Ø ¹ Ñ Ñ Ø ×Ø Ò Ø ×Ø × νº Ò Ô ÒØ × Ò Õ ¸ Ø Ø Ô Ö Ñ ÒÓÙÑ ×Ø Ò Ø ×Ø × µº Å ØÓÒ ØÖ ÔÓ ÙØ ÒÓÔÓ Ø ×Õ × ´¾º½ µ º Ç Ô Ò Ø Ø
A(µ → ν) ÓÒÓÑ ÞÓÒØ Ð Ó ÔÓ ÓÕ
º Ç ×Ø ÕÓ
Ñ
Ô ÒØÖôÒ Ø ×Ø Ò Ö × Ð Ö ÑÓÙ Ø ØÓ ÓÙ ôר Ó Ô Ò Ø Ø
Ô ÐÓ
Ò ÒÓÙÒ ØÓÙ
Ñ ×ØÓÙ
ÙÒ ØÓ
Ð ÓÙ
ÔÓ ÓÕ
Ø ×Ø ×
ν ×Ù×Õ Ø ×Ø
Ø ØÓ Ñ ×ØÓ ÙÒ Ø Ò Ô Ø Ò Ø ×Ø × µº ÁÒ Ô ÖÔØÛ× Ò Ò ÕÛ A(µ → ν) = 1 ÐØν Ø ÓÔÓ g(µ → ν) > 0º ÙØ ×ÙÑ Ò ÔÖ Ñ ×ØÓÙ
cluster Ð Ö ÑÓÙ
×Ùר Ñ ØÛÒ ×ÔÒ ´ÐºÕº ÔÖ ØÙÔ Ising¸ Pottsµ ÔÛ
Ó Ð Ö ÑÓ
ØÓÙ Wolff ÔÓÙ Ñ Ð Ø ×ÓÙÑ Ö Ø Ö º
¾º
½º
ÈÊÇ ÄÀÅ Ì
ÔÓ ÜØ Ø Ó ×Õ ×
´¾º½ µ ´¾º½ µ ÒÓÔÓ Ó Ò Ø Ò ´¾º½¿µ º
Ã
Ð Ó¿
Ç ÌÍÉ ÁÇË È ÊÁÈ ÌÀÌÀË
ËØÓ Ð Ó ÙØ Ñ Ð Ø ×ÓÙÑ Ø ÖÓÑ ÔÓÙ ÓÐÓÙ Ò
ººº Ñ Ù¹ ×Ñ ÒÓ
Ø Ò Ö ØÓ Ö Ù ÔÓ ×× Ò Ô ×ØÖ Ý ×ÔØ ØÓÙ Ô ØÓ × Ñ Ó ÔÓÙ Ö× Ø º Ä Û Ø
Ø Ð
ØÓÙ¸ Ø Ñ Ø ÔÓÙ Ø Ð Ò ×Ù×Õ Ø ¹ ר Ñ Ø Ü ØÓÙ
ÔÖÓ
ØÙÕ ÙÒ× º ÙØ Ø ÙÓ Õ Ö Ø Ö ×Ø ÓÖ×ÓÙÒ ØÓ ÔÐÓ ×Ø ÖÓ ÔÖ ØÙÔÓ ÔÓÙ Ñ Ð Ø ×ÓÙÑ º Ì ÔÖ ØÙÔ ÙØ Ó Ò ×
ØÓÙ
ÕÓÙÒ Ñ × ×Õ × Ñ Ø ×ÙÑÔ Ö ÓÖ Ù× ôÒ ×Ùר Ñ ¹ ÕÙ× ¸ Ò × ÑÔÙÖ Ø
×ØÓ ÔÐ Ñ ¸ Ø Ø
Ñ ÖôÒ ØÛÒ ´ Ò × Brown¸ Ð ×Ø ôÒ Ñ ÖÓÑÓÖÛÒ × Ñ ÖÓ× ÓÔ
ÔÓר ×
¸ רÓÕ ×Ø
×¹
µº ËØ Ù× ×ØÓ Õ Û ôÒ ×ÛÑ Ø ÛÒ Ô ÖÓÙ× ÞÓÒØ ר ÛÑ ØÖ ØÛÒ ØÙÔ ôÒ ÖÓÑôÒ ØÛÒ ÑÔÓÞÓÒÛÒ ×Ø ÓÐÓ Ð ÖôÑ Ø ÖÓÑôÒ ØÓÙ Feynmanº Ç ÒÒÓ
ÔÓÙ Ò ÔØ ××ÓÒØ Ô Ø Ñ Ð Ø ØÓÙ ØÙÕ ÓÙ Ô Ö Ô Ø Ø Ô ÞÓÙÒ × Ñ ÒØ Ö ÐÓ ×Ø Ò Ø Ò × ØÛÒ ×Ø Ø ×Ø ôÒ ÓØ ØÛÒ Ø
Ù¹ Ð
ÒØ
ÛÖ
Ô ÓÙ¸ ÛÖ
ØÙÕ ÛÒ ´ÙÔ Öµ Ô Ò ôÒ¸ ÛÖ ÕÓÖ ôÒ ÐÔº À ÛÑ ØÖ Ñ
ØÙÔ
ÖÓÑ
ØÓÙ ÔÐÓ ØÙÕ ÓÙ Ô Ö Ô Ø Ø Ô ¹ Ò Ò Ð ×× Ó Ð ÓÙ
º ÌÓ Ñ Ó
Ø
ÖÓÑ
ÔÓÙ Ò Ó Ô Ö Ô Ø Ø
Ò Ò ÐÓ Ó
Ø
Ø ØÖ ÛÒ
ÖÞ
ØÓÙ ÕÖ ÒÓÙ¸ Ñ ÔÓ¹ Ø Ð ×Ñ Ò Ñ Ò ×Õ Ð× ×Õ × r = vtº Ç Ø ÖÓ
Ð Ó
Ò Ø ÛÑ ØÖ ØÓÙ ÕôÖÓÙ ÔÓÙ Ô Ø Ó Ô Ö Ô Ø Ø
´Ñ Ø ×Ø Ø ×Ø ÒÒÓ µ ½ Õ ÓÑ fractal Ñ ×Ø × Ñ Ð Ø Ö Ø
ÑÓÒ
¸ Ð Ò Ò Ò ÔÐ ÑÓÒÓ ×Ø ØÓ ÑÓÒÓÔ Ø º È Ö ÑÓ Ò Ñ Ò Ô ÖÓÙ× ÞÓÒØ ר
ØÙÕ
½ Για
την ακρίβεια η διάσταση Hausdorff dH = 2.
¿½
¿¾
Ã
ï Ä ÁÇ ¿º Ç ÌÍÉ ÁÇË È ÊÁÈ ÌÀÌÀË
ÔÒ
ÒØ
ÛÖ
Ô ÓÙ ÔÓÙ Ô Ð× Ô Ø Ò Ð × ×Ùѹ Ô Ö ÓÖ ÑÔÓÖ Ò Ò Ø ÒÓ Ø Ñ Ø ÐÐ Ð
Ò ×
ØÛÒ Ô Ö Ô ÒÛ ôÒº Ô Ö Ø ÖÛ Ñ Ð Ø Ô Ö Ô ÑÔÓÙÑ ×Ø ×Ù Ö ÑÑ Ø ¿¸ ¸ ½¿¸ ½ ℄º
¿º½
ÌÍÉ Á Ë
Á
ÊÇÅ Ë
ÍÔÓ ØÓÙÑ Ø Ò ×ÛÑ Ø Ó ÑÔÓÖ Ò Ö ×Ø
×
Ò
Ø ØÖ ÛÒ Ó ÔÐ Ñ ØÓ
ר
Ó ×Ø ×
´×ØÓ ÔÔ Óµº Ë ÔÓ ÕÖÓÒ ×Ø Ñ Ö¹ ר ×Ñ Ô Ø
×
ØÓÙ ÔÐ Ñ ØÓ
Ó ×ÓÖÖÓÔ × × ÙØ ÑÔÓÖ Ò Ô Ü ØÙÕ × Ñ ØÓÒ × ÔÓÙ Ñ Ø × Ö ØÓÙ ¹ Ø ÔÓ Ó ÕÖ ÒÓ ×ÓÖÖÓÔ º Ã ô
×ÓÖÖÓÔ ¸ ÓÖÑ ÔÓÙ Õ ØÓ Ó ×Ò Ò ØÓ Ô Ñ Õ Ò Ø ÓÔ Ø Õ Ò Ø ÑÒ Ñ Ø
×
ÔÓÙ Ö × Ø Ò ÔÖÓ ÓÙÑ ÒÛ
º À × × ÙØ Ô Ò Ð Ñ Ò Ø ×ÙÒ Õô
º Ç Ñ Õ Ò ×Ñ
ØÓÙ ÒÓÑ ÒÓÙ Ò Ñ
Ô ×ÕÓÐ × ¾ ¸ Ò Þ ØÓ Ñ Ò ÔÐ ÒÓÑ ÒÓÐÓ ÑÓÒØ ÐÓ Ø
×
º ÍÔÓ ØÓÙÑ Ø ØÓ ×ÛÑ Ø Ó Ô Ñ × Ô Ò Ø Ø × Ñ Ô Ø
ÔÐ × ¹ ר Ö
×
ØÓÙ ÔÐ Ñ ØÓ
ÓÖ ÔÓÙ Ô ÖÒ ×Ø Ö
ÕÖ ÒÓ
τ º Ç ×
ØÓÙ ÔÐ Ñ ØÓ
Ô ÕÓÙÒ Ñ Ø Ü ØÓÙ
Ô ×Ø × a ´ÔÐ Ñ Ø ×Ø Ö µº ÌÓ ÒÙ×Ñ ÔÓÙ Ô Ö Ö Ø Ò Ñ Ø ÓÐ Ø
×
ØÓÙ ×ÛÑ Ø ÓÙ ×ØÓ i Ð ÓÑ Ò
Óר Ô Ñ Ò Ñ ØÙÕ Ñ Ø Ð Ø ξi Ñ ØÖÓÙ |ξi | = aº Ø
×
rk ØÓÙ ×ÛÑ Ø ÓÙ Ø ÕÖÓÒ ×Ø Ñ tk = kτ ¸ × ØÓÙ rk+1 Ø ÕÖÓÒ ×Ø Ñ tk+1 = (k + 1)τ = tk + τ Ò
rk+1 = rk + ξk
ÔÓÙ
´¿º½µ Ø Ø Ø Ø
1 4 1 4 1 4 1 4
Ë Ñ ÛÒ Ñ Ø Ô Ö Ô ÒÛ¸ Ó Ø Ñ
ØÛÒ ξi Ò Ò Ü ÖØ Ø
Ô Ø Ò Ø Ñ Ø
ξj Ò ×Ù¹ ×
ÔÓÙ Õ ÔÖÓ ÓÙÑ ÒÛ
ØÓ ×ÛÑ Ø Ó ÇÔ Ø Ó Ø Ñ
ξi ×Õ Ø ×Ø
i=j ×Õ Ø
¾ Μπορεί
aˆ x −aˆ x ξk = aˆ y −aˆ y
Ñ Ñ Ñ Ñ
Ô Ô Ô Ô
Ò Ò Ò Ò
Ø Ø Ø Ø
.
´¿º¾µ
ξi · ξj = ξi · ξj .
´¿º¿µ
λ.χ. να είναι θερμικά διεγερμένα ηχητικά κύματα που δίνουν στο σωμάτιο την απαραίτητη ενέργεια για το πήδημα, το κβαντικό φαινόμενο σύραγγας κλπ
¿º½º
ÌÍÉ Á Ë
Á
ÊÇÅ Ë
¿¿ Ó Ø
Ö¹ ÖÒ Ø Ó ÖÓ ×ØÓÒ ´¿º µ Ó
ØÛÒ ÒÙ×Ñ ØÛÒ Ò ×Ø Ö ´¿º µ ÓÙ
N Ò
¿
Ç Ø Ñ
ÔÓÙ Ô ÖÒÓÙÒ Ø ξi Ò ×ÓÔ Ò
ÓÔ Ø Ô Ò Ø
Ø Ñ
×ÙÑ ÒÓÙÒ ØÓ Ó ×ÙÕÒ Ó Ø Ó ÕÓÙÑ ÙÔÓÐÓ ×Ñ Ø
ξi ÐÐ ÐÓ Ò ÖÓ ÒØ
ξi = 0 .
ÓÔ Ø ξi · ξj = 0 i=j Ô ØÓ Ñ |ξi | = a Ô ÖÒÓÙÑ ÔÓÑ ÒÛ
Ø ×Õ × ÀÔ ÒØØ Ò Ñ Ò ×Ø Ñ
ξi · ξj = a2 δi,j p(CN ) =
ÖÓÑ CN Ñ
1 ´¿º µ zN ÔÓÙ z = 4 Ó Ö Ñ
ØÛÒ ÔÐ × ×Ø ÖÛÒ Ø ÒÛÒ Ñ
ÔÐ Ñ Ø
×
º À Ô Ò Ø Ø ÙØ Ü ÖØ Ø Ô ØÓ Ñ Ó
Ø
ÖÓÑ
ÕÔØ ÛÑ ¹ 1 ØÖ Ø
º ÙØ ÔÖÓ ÔØ Ô Ø Ò ÔÖÓ Ò ×Õ × p(CN +1 ) = z p(CN ) Ñ ÙÔ ÖÕÓÙÒ Ö ô
z ×ÓÔ Ò
Ô Ö ÔØô×
º ÇÔ Ø ×ÙÒ ÖØ × Ô Ñ Ö ×ÑÓ Ò ZN = z N . ´¿º µ
Ò × Ñ ØÓÒ Ö Ñ ØÛÒ ÓÖ Ø ôÒ ÖÓÑôÒ Ñ ÓÙ
Nº ĺպ Ò ÑÓ¹ ÒØ ÐÓÔÓ Ó Ñ Ñ ÔÓÐÙÑ Ö ÐÙ× ¸ ´¿º µ Ò Ø ×ÙÒ ÖØ × Ô Ñ Ö ×ÑÓ Ø
º Ø Å × × ÕÖ ÒÓ t = Nτ ØÓ ×ÛÑ Ø Ó Ñ Ø ØÓÔÞ Ø
N
R=
i=1
ξi .
´¿º µ
À Ñ × Ø Ñ Ø
Ñ Ø Ø Ô ×
Ò
¼
N
R=
i=1
ξi = 0 .
ÛÒÓ Ò
N
´¿º µ
À Ñ × Ø Ñ Ø
Ñ Ø Ø Ô ×
×ØÓ Ø ØÖ
N
R2 = R · R =
¿ Δηλ.
i,j=1
ξi · ξj = a2
δi,j = a2 N
i,j=1
´¿º½¼µ
μετά από χρόνο t = N τ , όχι το φυσικό μήκος της καμπύλης. Μετράμε και τα πηδήματα πάνω στα links που έχει ήδη επισκευτεί το σωμάτιο.
¿
Ã
ï Ä ÁÇ ¿º Ç ÌÍÉ ÁÇË È ÊÁÈ ÌÀÌÀË
ÞÓÙÑ ÐÓ Ô Ò ØÓ ÔÓÐ × Ñ ÒØ ÔÓÑ Ö Ò Ø ÔÓÐ Ö Ô ØÓ ÖÕ
Rrms =
×ÛÑ Ø Ó Ñ Ñ Ñ Ò
ÔÓØ Ð ×Ñ Ø Ó ØÙÕ Ó
Ô Ö Ô Ø Ø
ØÓÙ × Ñ Ó √ R2 = a N ´¿º½½µ Ðѵ ÒÑÒØ
Ñ × Ø Õ Ø Ø ´
ÔÖ ÒÒ
Ö× ÑÓ Ø
Nº
À Ô Ö Ô ÒÛ ×Õ × ÓÖÞ
Rrms ∝
ν
´¿º½¾µ
R2 ∼ N 2ν ,
ÔÓÙ ØÓ × Ñ ÓÐÓ ∼ × Ñ Ò ×ÙÑÔØÛØ ×ÙÑÔ Ö ÓÖ N → ∞º Ò Ð× Ô Ö Ô Ø Ø ν = 1 Òô ØÓÒ ØÙÕ Ó Ô Ö Ô Ø Ø ν = 1 º 2 È Ö ÐÐ
ØÓÙ ÌÙÕ ÓÙ È Ö Ô Ø Ø ´Random Walker – RW ×ÙÒØÓѹ µ ÔÓØ ÐÓ Ò Ó Å Ô ×ØÖ ÛÒ ÌÙÕ Ó
È Ö Ô Ø Ø
´Non Reversal Random Walk – NRRW ×ÙÒØÓÑ µ Ó ÙØÓ ÔÓ ÛÒ ÌÙÕ Ó
È Ö Ô Ø Ø
´Self Avoiding Random Walk – SAW ×ÙÒØÓÑ µº Ç NRRW ÓÖÞ Ø ¹ ØÒØ Ò ×Ñ Ø ξi Ô Ð ÓÒØ ×ÓÔ Ò ÔÓ Ð ÓÒØ
Ø Ò Ô ×ØÖÓ ×ØÓ ÖÕ × Ñ Óº Ç SAW Ò Ò
NRRW ÔÓÙ ÓÖ ÔÓÙ Ó Ô Ö Ô Ø Ø
Ô × ÔØ Ø Ñ ÔÐ Ñ Ø × ÔÓÙ Õ Ô × ÙØ ¸ ØÓ ººº Ô ÖÔ Ø Ñ ×Ø Ñ Ø º Ô ÔÐ ÓÒ Ò ÙÒ Ø Ò Ò ÔÖÓ× ×ÓÙÑ ¸ Ø
Ô Ø Ò Ô Ö ÔÛר ÒÖ × Ñ ÔÓÙ ×ÙÑÔÔØÓÙÒ¸ Ñ ÐØ ÒÖ −ǫ Þ Ù Ö × Ñ ÛÒ ÔÓÙ Ò ÓÙÒ ×Ø ÖÓÑ Ò ÔÐ × ×Ø ÖÓ ØÓÒ
º Ã Ô ØÖ Ô Ñ Ò ÖÓÑ ÞÙ Þ Ø Ø Ø Ñ Ô Ò Ø Ø Ø Boltzman × Ñ ÛÒ Ñ Ø Ò ´½º µ º 1 ØÓÒ NRRW ×Õ × ´¿º½¾µ Ò Ñ ØÓÒ RW¸ Ð ν = 2 º È Ö Ó¹ ÐÓ ÔÓÙ Ó Ð ÔØÓÑ Ö
ØÛÒ ÖÓÑôÒ × Ñ Ö
ÔÓר ×
Ò ÓÖ Ø
¸ Ó Ø Ø
ØÓÙ
× Ñ ÖÓ× ÓÔ
ÐÑ
Ò Ô Ö ÑÓ
º Ò Ô ÖÔØÛ× ×Ùר Ñ ØÛÒ ÔÓÙ Ò ÓÙÒ ×Ø Ò Ð× Ô Ó×Ñ Ø Ø
´universality classµ × Ñ ÛÒ Ñ Ø ×ÙÞ Ø × ×Ø Ò Ò Ø Ø ½º º Ò ×ÙÑ Ò ØÓ Ó ØÓÒ SAWº ØÓ × ×Ø Ñ ÙØ Ò Ò ÙÒ Ø Ò Ò ÒÓÙÒ Ò ÐÙØ Ó ÙÔÓÐÓ ×ÑÓ ÐÐ ÔÖÓ ÔØ Ö ÑØ Ø
R2
SAW
∼ N 2ν
ν ≈ 0.59 .
´¿º½¿µ
Ç ØÙÔ
ÖÓÑ
×ØÓ ÔÖ ØÙÔÓ ÙØ Ò Ñ Ð Ø Ö
Ô ØÓÒ RWº Ò × ÓÙÑ Ø Ò ÐÜ Ñ Ø Ü ÔÐ × ×Ø ÖÛÒ Ø ÒÛÒ × Ñ ÛÒ Ñ Ø Ô Ö Ô ÒÛ¸ ÖÑÓ Ö × β < βc Ò Ø Ø ÙÔ ÖÕ Ö× Ñ ÖÑÓ Ö × βc Ø ØÓ ôר β > βc Ó ÖÓÑ
Ò ÕÓÙÑ Ô Ö ÑÓ ×ÙÑÔ Ö ÓÖ Ñ Ø Ò ´¿º½¿µ Òô
¿º¾º
´
Í ÇµÌÍÉ ÁÇÁ
ÊÁÂÅÇÁ
¿
×ÙÒ Ð ÓÒØ Ô Ø Ò ÐÐ Ð Ô Ö × Ò Ô ÖÒÓÙÑ ν = 1/3 < νRW º 1 β = βc ÕÓÙÑ ν = 2 º Ô Ö ×× Ø Ö
Ð ÔØÓÑ Ö
Ô Ö Ô ÑÔÓÙÑ ×ØÓ ÐÓ ØÛÒ Binder-Heermann ¿℄º Ë Ñ ÛÒ Ñ Ø ×ÙÞ Ø × ×ØÓ ÔÖÓ Ó Ñ ÒÓ Ð Ó¸ Ñ ×Ø ØÓ ÑÓ Ò ÔÖÓ Ö ÑÑ Ø×ÓÙÑ ØÓÒ ØÙÕ Ó Ô Ö Ô Ø Ø º Ç Ð Ö ÑÓ
Ò ÔÓÐ ÔÐ
¸ × Ñ ôÒÓÙÑ ÔÛ
Ó Ñ ØÖ ×
ÒÓÒØ Ñ ÔÐ Ñ ØÓÐ Ý ½º ¾º ¿º Ô Ð ÓÙÑ Ô Ð ÓÙÑ Ô Ð ÓÙÑ Ö Ñ ØÙÕ ÛÒ ÖÑ ÖÕ Ñ ØÛÒ × ØÛÒ ÖÓÑôÒ ÔÓÙ ÖÓÑ
º ÖÓÑôÒ ÒØØ Ò × ÔÖÓ
ÖÓÙÒ ÔÖ ÓÙÑ º
ºË Ø
ÑÑ
ÖÓÑ
Ô Ð ÓÙÑ Ñ × Ô Ü ¸ Ö ×Ø Ö ¸ Ô ÒÛ ØÛº ÖÓÑ
¸ Ñ ØÖ Ñ Ø
º ËØÓ Ø ÐÓ
´R¸ R2 ¸ ÐÔµº
Ø Ø
ÔÓÙ Ñ
Ò ×
º ËØÓ Ø ÐÓ
ÙÔÓÐÓ ÞÓÙÑ Ø
Ñ ×
Ø Ñ
ÔÓÙ Ñ ØÖ × Ñ º Ò À Ñ Ò ÒÒÓ ÔÓÙ ÕÖ Þ Ø Ò ÙØ Ø
Ô ÐÓ
Ø
ØÙÕ
Ü
ÐÑ Ø ×Ø
ÔÓ× Ø Ø
ÔÖÓ Ö ÑÑ Ø×ÓÙÑ
×ÓÙÑ ÔÛ
ÙÒ×
º
¿º¾
´
Í ÇµÌÍÉ ÁÇÁ
ÊÁÂÅÇÁ
À Ô Ö Û Ý Ù ÓØÙÕ ÛÒ Ö ÑôÒ Ò ×Ø Ò Ö Ø
ÔÖÓ×ÓÑÓÛ×
Å ÒØ à ÖÐÓº Ò Ø × Ù ×ÓÙÑ Ñ ÓÐÓÙ Ø ×Ø × ÛÒ Ñ Ñ ×¹ Markov ÕÖ Þ Ø Ò Ô Ð ÜÓÙÑ Ø Ò Ô Ñ Ò Ø ×Ø × Ñ Ñ Ø ÒÓÑ Ô Ò Ø Ø
º ÌÓ Ð Ó ÙØ ÑÔÓÖÓ × Ò ÔÓØ Ð × Ü ÕÛÖ ×Ø ÐÓ Ø Ø × ÐÑ Ø ÔÓÙ ÑÔÓÖ Ò ÔÖÓ ÝÓÙÒ Ô Ð Ó
Ô ÐÓ Ð Ö ÑÓÙ ÑÔÓÖ Ò Ò × Ñ ÒØ × ÓÐÓ Ò Ò ÐÙ Ó Òº À Ô Ö Û ØÛÒ Ý Ù ÓØÙÕ ÛÒ Ö ÑôÒ Ò Ø Ò Ò ÒØ Ø ÖÑ Ò ×Ø ¹ ËØ ÒÒ ØÖ ØÙÕ ÛÒ Ö ÑôÒ ´ к רÓÒ Ð Ö ÑÓµ ÒÓÒØ ÔÓ
ÖÕ
×ÙÒ
Ô Ø
ÓÔÓ
Ô Ö Û ØÛÒ Ö ÑôÒ Ò Ø Ò Ü Ð¹ Õ ×ØÓ ÕÖ ÒÓ º Ç Ô Ñ ÒÓ
Ö Ñ
ÔÖÓ ÓÖÞ Ø Ô Ø Ò Ø ×Ø × Ø
ÒÒ ØÖ
ܳ ÓÙ ÒØ Ø ÖÑ Ò ×Ø Ü Ð Ü º Á
ÖÕ
×ÙÒ
ÒÓÙÒ Ø Ò Ö ô
ÓÐÓÙ Ö ÑôÒº À Ü Ð Ü ÙØ ÑÛ
Ò Õ ÓØ º ¹ Ð Õ ×Ø ÓÖ Ø
ÖÕ
×ÙÒ
Ø ÕÒÓÙÒ ÓÐÓÙ
ÔÓÙ ÔÓ ÐÒÓÙÒ
¿ Ø Ø
Ã
ï Ä ÁÇ ¿º Ç ÌÍÉ ÁÇË È ÊÁÈ ÌÀÌÀË
×ØÓ ÕÖ ÒÓ Ñ Ô Ø Ò ÐÐ º Ô Ö ÑÓ Ó Ð Ó¸ Ó Ö Ñ
ÔÓÙ Ô ¹ Ö × Ñ ÛÖ Ø ÔÛ
Ò ×Ù×Õ Ø ×ØÓ
Ô ØÓÒ ÔÖÓ Ó Ñ ÒÓº ô Ö× Ø ØÓ Ò ØÓ × Ñ Ó ÔÓÙ ÔÖÓ Ð Ø Ù× ÓÐ Ø Ö ÔÖÓ Ð ¹ ÑØ Ø ×Ø
ÔÖÓ Ð Ñ Ø
ÒÒ ØÖ
Ö× ÓÒØ Ð ÔØÓ ×Ù×Õ Ø ×ÑÓ ÔÓÙ Ò × ÓÐÓ Ò ÔÖÓ× ÓÖ ×ØÓ Òº ÈÖ Ñ Ø ØÙÕ Ó Ö ÑÓ ´ÕÖ × ÑÓ ×Ø Ò ÖÙÔØÓ Ö µ ÑÔÓÖÓ Ò Ò Ô Ö Õ Ó Ò Ô
×Ù× Ù
ÔÓÙ ×ÞÓÒØ ×ØÓ ÕÖ ÒÓ ×Ô ×
Ö Ò Ö ôÒ ÙÐ ôÒº Ç Ô Ó ÑÓ Ð
ÒÒ ØÖ
Ð Û Ø
ÔÐ Ø Ø
ØÓÙ
Ò Ó ÒÒ ØÖ
modulo ´D.H. Lehmer, 1951µº ÙØ
ÕÖ ÞÓÒØ Ñ ÒÓ Ò Ò Ö Ñ x0 ´seedµ Û
ÖÕ ×ÙÒ Ô ØÓÒ Ö Ñ xi−1 Ô Ö ÓÙÒ ØÓÒ xi Ô Ø ×Õ ×
xi = a xi−1 + c (mod m)
´¿º½ µ
Ø ÐÐ Ð Ô Ð Ñ Ò
Ø Ñ
ØÛÒ a¸ c mº À Ø ×Ø × Ø
ÒÒ ØÖ
ÔÖÓ× ÓÖÞ Ø ÔÐ ÖÛ
Ô Ò Ñ ÒÓ Ö Ñ ¸ Ø Ò ØÖ ÕÓÙ× Ø Ñ ØÓÙ xi º ÍÔ ÖÕ Ð Ó Ö ×Õ Ø Ñ Ø ×Ûר Ô ÐÓ ØÛÒ a¸ c m¸ ô
× Ñ ô×ÓÙÑ ÔÛ
ÙØ Ò ÓÖ Ø Ðô×× C FORTRAN ×Ùר Ñ Ø ÔÓÙ Ò 32–bit 4-bitº Ð ÔØÓÑ Ö
Ô Ö Ô ÑÔÓÙÑ ×ØÓ Ð Ó ØÛÒ Numerical Recipes ½ ℄º À Ø Ñ ØÓÙ m ÓÖÞ Ø Ò Ñ ×Ø Ô ÖÓ Ó Ø
ÒÒ ØÖ
º Ò ×
ÔÛ
Ò × ÔÓ ×Ø Ñ Ø
ÓÐÓÙ
Ô ÖÛ ØÓÒ Ó Ö Ñ ÔÓÙ Ô Ö ÔÖÒ ÒÒ ØÖ ÖÕ× Ò Ô Ö Ö ô
Ø Ò ÓÐÓÙ Ô k ÑØ¸ ÙØ ×ÙÒ ÕÞ Ø Ô Ö Ó º Ó ÕÛ m ÙÒ ØÓ
ÓÖ Ø Ó
Ö ÑÓ
¸ Ô ÖÓ Ó
Ò ØÓ ÔÓÐ mº Ô ÐÓ ØÓÙ m Ô Ö Ó
Ò ÔÓÐ Ñ Ö Ø Ö º À Ø Ñ ØÓÙ m ÑÛ
Ò ÑÔÓÖ Ò Ò Ù Ö Ø Ñ Ð Ó× ÓÔÓ Ó ÔÓØ ÙÔÓÐÓ ×Ø ÙÔ ÖÕ Ò
Ñ ×ØÓ
Ö Ó
ÔÓÙ ÓÖÞ Ø Ô ØÓÒ Ö Ñ ØÛÒ bits ÔÓÙ ÕÖ × ÑÓÔÓ Ò ØÓÒ Ò Ô Ö ×Ø × º Ö ÓÙ
4-bytes (32-bits) ÕÛÖ
ÔÖ × ÑÓ Ó Ñ ×ØÓ
Ö Ñ
Ò 232 º Ã Ð Ô ÐÓ ØÛÒ a¸ c m ÑÔÓÖ Ò ÔÓ Õ ´ к Knuth ½ ℄µ Ø Ò ÓÐÓÙ ÔÓÙ Ò Ò Ø Ü {π0 , π1 , . . . , πm−1 } ØÛÒ Ö ÑôÒ 0, 1, . . . , m − 1º Å Ø ØÓ Ô ÐÓ Ò Ö Ø ÐÓ
ØÙÕ ÓÙ
Ö ÑÓ
Ø
Ô Ö ×× Ø Ö
ÖÑÓ
ÐÐ ×Ó ÖÓ
ÙÔÓÐÓ ×ÑÓ
ÔÖ Ô Ò Ò ØÖ ÜÓÙÑ × Ñ ÔÖÓ× Ø ÔÐ Ñ Ò ÒÒ ØÖ ØÙÕ ÛÒ Ö ÑôÒº Ò Ø Ô×
Ò ×ÙÑ ÓÙÐ Ò ÔÓ ÓÒØ Ó ÒÒ ØÖ
ÔÓÙ Ô Ö ÕÓÒØ Ô ØÓ Ð ØÓÙÖ × ×Ø Ñ ´ÐºÕº drand48() ×ØÓ UNIX/Linuxµº ô Ó Ò Òôר
ÑÔÓÖ Ò Ò ØÖ Ü ×Ø
Ò ÓÖ
½℄¸ ¾℄¸ ½ ℄¸ ½ ℄º portable ÔÖÓ Ö ÑÑ Ø ÔÖÓØ ÒÓÒØ Ó ÒÒ ØÖ ØÛÒ Marsaglia, Zaman and Tsangº ÒÒ ØÖ
RANLUX ½ ℄ ÈÖ Ö ÑÑ Fortran Ø Ò ÔÖôØ Ø Ø Ô Ø Ò ×ØÓ× Ð ØÓÙ Ñ Ñ ØÓ
Òô Ø Ò Ø Ð ÙØ ÑÔÓÖ Ò Ö ×ØÓ ÐÓ»site ØÓÙ Berg ¾℄º
¿º¾º
´
Í ÇµÌÍÉ ÁÇÁ
ÊÁÂÅÇÁ
¿
Ò Ò Ø ÒÓ Ø ÕÖ × ØÛÒ ÒÒ ØÖ ôÒ ÐÐ ÒÒ Õ ØÓÙÑ Ô Ö ØÛ Ø
×Ù¹ Ò × ÔÖ Ð Ñ ØÛÒ modulo ÒÒ ØÖ ôÒ Ô Ö Ò ÖØ ×
naiveran() drandom()º À ÔÖôØ Ò ÔÖÓ Ð Ñ Ø Ñ Ð Ø ×ÓÙÑ ØÓÙ
×Ù×Õ Ø ×ÑÓ
ÔÓÙ Ö ÓÒØ ר
ÓÐÓÙ
ØÙÕ ÛÒ Ö ¹ ÑôÒ ÔÓÙ Ô Ö ô
Ø Ò Ô Ö × ØÓÙ
ר
ÔÖÓ×ÓÑÓ ô×
ØÓÙ ØÙÕ ÓÙ Ô ÖÔ Ø Ø º À Ø Ö Ò ÙØ ÔÓÙ ÕÖ × ÑÓÔÓ ×ÓÙÑ ØÓÙ
× ÓÔÓ
ØÓÙ Ñ Ñ ØÓ
º ¿º¾º½ Æ ÄÍËÀ ÈÊÇ Ê ÅÅ ÌÇË
ËØÓ × Ñ Ó ÙØ ÑÔÓÖÓ Ñ Ò ÒÓÙÑ Ñ Ö
Ô Ö Ø Ö ×
×Õ Ø Ñ Ø
Ñ ¹ ÓÙ
ÔÖÓ Ö ÑÑ Ø ×ÑÓ Ø
×ÙÑ ×
ÔÓÙ ÓÐÓÙ ×ÓÙÑ ×ØÓ ÐÓ ÙØ º À Ðô×× ÔÖÓ Ö ÑÑ Ø ×ÑÓ ÔÓÙ Ô Ð Ø Ò C ØÓ Ð ØÓÙÖ¹ × ×Ø Ñ Ô ÒÛ ×ØÓ ÓÔÓÓ ÓÙÐ ÝÓÙÑ Ò ØÓ Unix ´ ÔÛ
кպ ØÓ GNU/Linuxµº Ç Ò Òôר
ÔÓÙ Ò Õ ÐÓÙ Ó ØØ Ñ Ø ÔÖÔ¹ ÒÛ ÔÖ Ô Ò ÓÐÙÑÔ × ×Ø Ò Ñ Ð Ø × Ô Ö ÐÐ Ð Ø × Ø Ô Ö Ô ÒÛº ËØ Ò ×ØÓ× Ð ØÓÙ Ñ Ñ ØÓ
ÒÓÒØ Ò ÓÖ
× Ð ¹ Ö ×Ñ Õ Ö × ÓÖ ÔÔ Ô ÖÓÙ× ×
º × ÕÖ × ØÓÙ Ð ØÓÙÖ Ó Ò ÖØ Ø Ò Ø Ð × ØÛÒ × ôÒ × ôÒ¸ Ò ÔÛ
Ò ×Ø Ô Ñ Ò ¸ ÔÓØ Ð ×Ñ Ø ÔÖ Û Ò ÐÙ× Ñ ¹ Ð
ÔÓ× Ø Ø
ÓÑ ÒÛÒ Ô Ø Ø ×ÙÒ Ù ×Ø ÕÖ × ÔÓÐÐôÒ Ö Ð ÛÒ ÔÓÙ Ø ØÓ × ×Ø Ñ º ÌÓ ÔÐ ÓÒ Ø Ñ Ø
ÕÖ ×
ØÛÒ Ø ÐÐ ÐÛÒ Ö ¹ Ò Ø Ö ØÓÙ Ð ÖÓÙ ÐÓ ×Ñ Ó Ò ÙÝ Ð ÔÓ Ø Ø Ð ÛÒ GNU ØÓÙ
¸ Ù Ð Ü ×ÙÑ Ø Ø Ø Ñ Ø Ü ØÓÙ
ÔÓÙ Ô ØÖ Ô ×ØÓ Ñ Ð Ø Ø Ò Ø ÕÖ × ÑÓÔÓ × ÓÐ ÔÓ ÓØ Ò Ø Ð × × Ò Ø
Ö ×¹
º Ò ÖÓÙÑ Ò Ø ÑÖ Ô Ø ÔÖÓ Ö ÑÑ Ø ÔÓÙ ÖÒÓÒØ Ø Ö ÕÖ × Ñ
• GNU C Compiler: Ç Ñ Ø ÐÛØØ ×Ø
´compilerµ Ò ØÓ × Ö¹ Ð Ó ÔÓÙ Ñ Ø Ö Þ ÒØÓÐ
Ô Ñ ÒôØ Ö Ðô×× ÔÖÓ Ö ÑÑ Ø ×ÑÓ × Ðô×× Ñ Õ Ò
¸ к × Ý
ÒØÓÐ
ÔÓÙ Ñ Ø ÖÓÒØ ר ÑÒ Ñ Ø ÐÓ ÒØ Ô ØÓÒ Ô Ü Ö ×Ø ØÓÙ ÙÔÓÐÓ ×Ø º Ò ÔÓ¹ Ð × Ñ ÒØ ¸ Ø Ö Ø Ò Ó Ô ÖÓ ØÓÙ ×Ùר Ñ ØÓ
Ò ÔÓÐ Ø ÑÓ ¸ ÕÖ × ØÓÙ Ñ Ø ÐÛØØ ×Ø Ò Ò Ø Ñ ØÓÒ Ð Ø ÖÓ ÙÒ Ø ØÖ ÔÓ ÕÖ ¹ × ÑÓÔÓ ôÒØ
Ð
Ø
ÙÒ Ø Ø Ø
ÐØ רÓÔÓ ×
´optimizationµ ÔÓÙ ÓÖÓ Ò ØÓ ÔÖ Ö ÑÑ Ñ
º Ç ÐÓ Ñ Ø ÐÛØØ ×Ø
×ÙÒ Û
Ø ÐÓ Ò Ø ÐØ רÓÔÓ × ÙØ Ñ Ø Ñ Ø Ò ÔÖÓ× Ø ÐÐ ÐÛÒ ÓÔØôÒ ´switches, optionsµ Ø Ø Ò Ø Ð × Ø
Ñ Ø ÐôØØ ×
º ÈÓÐÐ
Ó¹
¿
Ã
ï Ä ÁÇ ¿º Ç ÌÍÉ ÁÇË È ÊÁÈ ÌÀÌÀË
Ö
ÑÛ
ÕÖ × Ø ÖÛÒ × ôÒ ÐØ רÓÔÓ ×
Ô Ø Ø Ò Þ Ø Ö Ø Ô ØÓÒ ÕÖ ×Ø º ËÙÒ ×Ø Ø ÐÓ Ô Ò Ð Ñ Ð Ø ØÛÒ ¹ Õ Ö ÛÒ Ò
Ñ Ø ÐÛØØ ×Ø ÔÖÓØÓ Ò ÕÖ × ØÓÙº ÌÓÒÞ Ø Ø ÐÐ ÞÓÒØ
ÔÐ Ø ÖÑ hardware/software Ó ×ÙÒ
Ó Ð Ø ÖÓ
× ÑÓ
Ñ Ø ÐÛØØ ×Ø
×ÙÒ Û
ÐÐ ÞÓÙÒ Ô ØØ Ò ÑÐØØ Ñ ÔÖÓ×ÓÕ ØÓ Ò Ó Ô Ö ÐÐÓÒº Ö
×Ñ Ø ¹ À Ô ÐÓ ØÓÙ GNU C Compiler Ò Ð Û Ø
Ð Ø
ØÓÙ ×Ø Ô Ö ×× Ø Ö Ð ØÓÙÖ ×Ùר Ñ Ø Ô Ü Ö ×Ø
º ËØ ×Ùר Ñ Ø Linux Ò Ô ÒØ ÔÖÓ Ø ×Ø Ñ ÒÓ
ÐÐ ÑÔÓÖ Ø Ò ØÓÒ Ø ×Ø Ð Ö Ò ØÓÒ Ø ×Ø × Ø Ø Ò ÙØ Ò ×ÙÑ Ò ´ ÓÑ × × Ô Ö ÐÐÓÒ Windowsµº Ë ÙÔÓÐÓ ×Ø
Ñ Ô Ü Ö ×Ø Intel ×ÙÒ ×Ø Ø ÕÖ × ØÓÙ ÕÛÖ
ÕÖ Û× × ÑÓÙ ´ Linuxµ Ñ ¹ Ø ÐÛØØ ×Ø Ø
Intelº
• GNU Make utility: ÈÖ Ö ÑÑ ØÓ ÓÔÓÓ ÓÖ ÒôÒ Ø Ñ Ø Ðôع Ø × Ñ ÐÛÒ ÔÖÓ Ö ÑÑ ØÛÒº ËØ Ò Ô ÖÔØÛ× ÙØ Ñ ÓÑ ÔÖÓ¹ Ö ÑÑ Ø ×ØôÒ ÑÓ Ö Þ Ø ÓÖ ÓÑÑ Ø ØÓÙ ô × ÔÓÐÐ ÖÕ ¹ » Ø Ð ÓÙ
Ø× ôר Ò Ò Ø ÙÒ Ø
Ó Ø Ñ Ö ×Ñ
Ø
Ö ×
ÔÓØ Ð ×Ñ Ø ¸ ô
Ò Ò ÙÒ Ø Ö Û× »×ÙÒØ Ö × ØÓÙ ô ÕÛÖÞÓÒØ
ØÓÒ × ÒÒÓ ÓÐÓ ÓÖ Ø ØÑ Ñ Ø ´modulesµ ÔÓÙ Ò Ò Ü ÖØ Ø Ñ Ø Ü ØÓÙ
º ÌÓ ÔÖ Ö ÑÑ make Ñ Ø ÐÛØØÞ Ñ ÒÓ Ø ÓÑÑ Ø Ò ØÓÙ ô ÔÓÙ ÕÓÙÒ Ò Ñ ÖÛ ×ôÞÓÒØ
ÔÓ¹ Ð Ø ÑÓ ÕÖ ÒÓ¸ ô
Û ÓÔÓ Ó Ò ÔÓÐ ÔÐÓ
ÒØÓÐ
Ñ Ø Ðôع Ø×
×Ò ×
Ñ ÐÓ
ÔÓÙ Ø Ò ÔÖ Ø Ò ØÓÒ Ò ÔÒÐÑ ÒÑ ÓÖ º ÌÓ ÔÖ Ö ÑÑ ÙØ ØÓ ÕÖ × ÑÓÔÓ ×ÓÙ¹ Ñ ×ØÓ Ô Ñ ÒÓ Ð Óº • emacs editor ÉÖ × ÑÓ
Ô Ü Ö ×Ø
Ñ ÒÓÙ ´ººº Õ Ñ ÒÓµ¸ ¹ Ø Ö ÔÖÓ Ö ÑÑ Ø ×Ø
¸ Ó ÓÔÓÓ
Ø Ð Ò Ö Ø
Ðô××
ÔÖÓ Ö ÑÑ Ø ×ÑÓ ÔÖÕ Ö Ð Ø Ò ÔÓØ Ð ×Ñ Ø Ô Ü Ö¹ × ØÓÙ Ñ ÒÓÙ ØÓÙ ÔÖÓ Ö ÑÑ ØÓ
º Ò Ñ × ×Ø ÔÐ ÓÒ Ø Ñ Ø ØÓÙ Ò ÔÐ Ø ÔÖÓ× ÖÑÓר Ø Ø ØÓÙ ×Ø
Ò
Ô ÙÑ
ØÓÙ ÕÖ ×Ø ¸ ÓÐÓ Ð ÖÛ× ØÛÒ Ð ØÓÙÖ ôÒ ØÓÙ Ñ ØÓ Ð ØÓÙÖ ×¹ ר Ñ ´ ÖÕ Õ ×Õ ×Ø Ñ Ø Ò ÔÖÓÓÔØ Ò ÔÓØ Ð × Ó Ó
Ð ØÓÙÖ × ×Ø Ñ µ¸ ÙÒ Ø Ø Ø Ô Ü Ö ×
ÖÕ ÛÒ ÔÓÙ Ö× ÓÒ¹ Ø × ÔÓÑ ÖÙ×Ñ ÒÓ ÙÔÓÐÓ ×Ø Ñ ×Û Ø ÓÙ¸ × Ñ Ø Ø ØÓÙ Ð Ö × ÔÓÐÐ
ÔÐ Ø ÖÑ
ÐÔº
¿º¾º
´
Í ÇµÌÍÉ ÁÇÁ
ÊÁÂÅÇÁ
¿
• shell scripting Å ÐÓ
Ö Ñ
Ô Ò Ð Ñ Ò Ñ ÒÛÒ ÒØÓÐôÒ ÑÔÓ¹ ÖÓ Ò Ò Û ÓÔÓ Ó Ò × × Ò Ö ÐÓ Ó ´shell scriptsµ Ô ÒØÓÐ
ÔÓÙ Ò
Ñ ÙØ
ÔÓÙ Ó ÕÖ ×Ø
Ò Ø Ò ÐÐ Ð Ô Ö Ñ ØÓ Ð ¹ ØÓÙÖ × ×Ø Ñ º • grep, sort Ö Ð Ø Ü ÒÓÑ ÓÑ Ò º Ò ×Ø Ò Ö × Ñ
º
Ñ ÒÓÙ Ñ Ø ÓÔÓ Ó ÕÖ ×Ø
ÐØÖ Ö ÖÓÒØ Ð Û Ø
Ñ Ð
× Ñ ×
ØÓÙ
ÓÑ ÒÛÒ Ô Ø Ù Ð Ø Ñ ÔÖÓ¹
• awk Ü ÖØ ÙÒ Ø Ö Ð Ó Ñ Ø ÔÓ × Ö ÑÑ ÓÑ ÒÛÒº ÈÓÐÐ
ÕÖ × Ñ
Ö ×
ÒÓÒØ Ö ÑÑ Ø Ñ
Ö ÑÑ
´one linersµº
• gnuplot (plotting-fitting) Ù Ð ØÓ ÔÖ Ö ÑÑ Ø Ò ÔÓØ Ð ×Ñ ¹ Ø ÓÒÓÔÓ × ØÛÒ ÔÓØ Ð ×Ñ ØÛÒ Ñ
º Õ ØÓ ÔÐ ÓÒ Ø Ñ Ø
ÓÐ
ÕÖ ×
Ö Ð ÛÒ ØÓÙ ÐÓ Ó ÐØÖ Ö ×Ñ Ô Ü Ö × ÓÑ ÒÛÒ¸ ÓÐ ÕÖ × Ô Ø Ö ÑÑ ÒØÓÐôÒ Ø Ò ÕÖ × ØÓÙ Ô ÐÐ ÔÖÓ Ö ÑÑ Ø Ø Ò Ô Ü Ö × ÔÓÐÐôÒ Ö Ñ ØÛÒº à ¹ Ø× ÙÞ Ö ÑØ ÑÓ× × Ñ
ÔÓ Ø Ø
º Ô×
Õ Ò×ÛÑ ¹ ØÛÑ ÒÓ ÔÖ Ö ÑÑ Ñ Ö ÑÑ ÔÖÓ× ÖÑÓ ÓÑ ÒÛÒ ´non-linear fittingµº Ø Ø Ð Öº • redirection/piping Å × Ñ ÒØ ×ÙÒ ×Øô× ØÛÒ ×Ùר Ñ ØÛÒ Unixº Ç ÕÖ ×Ø
ÑÔÓÖ Ò Ò Ø Ù Ò Ø Ò ÜÓ Ó ÔÖÓ Ö ÑÑ ØÛÒ × ÓÔÓ Ó ÔÓØ ÖÕ Ó ´×ÙÑÔ Ö Ð Ñ ÒÓÑ ÒÛÒ ×Ù× ÙôÒ ÔÓÙ ×ØÓ Unix Ò ÖÕ µ » ר Ò ×Ó Ó ÐÐÛÒ ÔÖÓ Ö ÑÑ ØÛÒº ÌÓ Ø Ð ÙØ Ó ÕÖ × ÑÓÔÓ Ø Ø Ò Ø × Ù ÕÖ × ÑÛÒ ÐØÖÛÒ ÓÑ ÒÛÒ Ø ÕÖ × ÑÓÔÓ ×ÓÙÑ Ø Òô
ר Ô Ñ Ò º
Ç Ó Ø Ø
ÔÓÙ Ò Ò ÜÓ ÛÑ ÒÓ
Ñ Ø Ô Ö Ô ÒÛ ÔÖÓ Ö ÑÑ Ø » ÒÒÓ
Ð Ø ØôÖ Ý Ü ×Ø Ø ÐÐ Ð Õ Ö ×ØÓ ØÙÓº ËØ Ò ×ØÓ¹ × Ð ØÓÙ Ñ Ñ ØÓ
Ö× Ø Ö Ø ÙÐ ØÓ ÓÔÓÓ Ò Ð Ö ¹ × ÑÓº Ñ ÔÖÓ Ö ÑÑ Ø Ø ÓÔÓ Ò Ò Ø ÜÞ Ò × Ñ Û Ó Ò Ñ Ö ÕÖ × ÑÓÔÓ ×ÓÙÑ ÔÓÐ ×Ø Ò × Û ÙØ Ñ
ÔÖÓ× ×¸ Ò ÕØ Ò ÒÓ Ò ÕÖ × Ñ × Ó Ø Ø
ÔÓÙ Ø Ð ×ÓÙÒ Ô Ó ÔÖÓÕÛÖ Ñ Ò
Ö ×
×
Τα σενάρια είναι προγράμματα που γράφονται με εντολές που διαβάζονται από άνθρωπο και δεν χρειάζονται ξεχωριστή μεταγλώττιση. Τέτοιες γλώσσες είναι μεταξύ άλλων η awk, perl, tcsh, bash, javascript, emacs lisp, python κλπ.
¼
Ã
ï Ä ÁÇ ¿º Ç ÌÍÉ ÁÇË È ÊÁÈ ÌÀÌÀË
Ò ÐÙ× ÓÑ ÒÛÒ ÔÖÓ×ÓÑÓÛ× Å ÒØ Ã ÖÐÓº Ç ÓÖ ÛØ
ÔÖÓ Ö Ñ¹ ÔÓÐ ÛÖ Ö interface ddd¸ Ø Ö Ð Ñ ØÛÒ ´debuggersµ gdb ÕÖÓÒÓÑ ØÖ ×
time gprof Ðô×× × Ò ÖÛÒ perlº Ì ÔÖÓ Ö ÑÑ Ø ÑÔÓÖÓÙ Mathematica¸ Maple Matlab ÔÖÓ× ÖÓÙÒ ×ØÓ Ñ Ð Ø Ø Ñ Ð
ÙÒ Ø Ø Ø
ר Ò Ò ÐÙ× ØÛÒ ÓÑ ÒÛÒ¸ Ñ Ø ÕÖ × ØÓÙ
Û
Ðô×× ÔÖÓ Ö ÑÑ Ø ×ÑÓ ØÛÒ ÔÖÓ Ö ÑÑ ØÛÒ Ô Ö Û
ØÛÒ ÓÑ ÒÛÒº ÓÒ
Ö ×Ø
ÖÑÓ
ÔÐôÒ ÔÖÓ×ÓÑÓ ô× ÛÒ ÔÓÙ Ò Ò Ö¹ ÑØ Ô Ø Ø
×Ùר ÒÓÙÑ ØÓ Ô ØÓ opensourcephysics.org ÔÓÙ Ô ¹ ØÓ Ò Ø ÕÖ × Java ℄º À ÔÖôØ Ö × ÔÓÙ Ò ÔÓ Ó
ÔÓÙ ÔÖÓ Ö ÑÑ ØÞ × Ò ÒÓ Ö Ó Ô Ö ÐÐÓÒ Ò Ø Ð × Ò
ÔÖÓ Ö ÑÑ ØÓ
Hello World º ÙØ ØÓ Ñ Ò × Ñ ÒØ Ô Ö Ø Ò ÔÐ Ø Ø ØÓÙº Å
ÜÓ ôÒ Ñ Ø Ò Ô Ü Ö × Õ Ö × ÖÕ ÛÒ ×ØÓ ÒÓ Ö Ó × ×Ø Ñ ¸ Ø Ò ÕÖ × ØÓÙ Ñ Ø ÐÛØØ ×Ø Ø ÐÓ
Ø Ò Ø Ð × ØÛÒ Ñ Ø ÐÛØØ ×Ñ ÒÛÒ ÔÖÓ Ö ÑÑ ØÛÒº ÌÓ ÔÖ Ö ÑÑ ×ØÓ ÖÕ Ó hello.c Ò Ö ô
ÙØ º
/************************ #include #include int main(){ printf("Hello World!\n"); }
ÀÑ Ø ÐôØØ × Ò Ø
hello.c
*****************************/
Ñ Ø Ò ÒØÓÐ
% cc hello.c -o hello
ÓÔÓ Ô Ö ØÓ ÖÕ Ó hello ØÓ ÓÔÓÓ Ò Ø Ð × ÑÓº À ÒØÓÐ
% ./hello
ÔÖ ×Ø Ò ÜÓ Ó ØÓ Ñ Ò Ñ Hello World! Ç Ö ÑÑ
#include #include
Η εντολή cc στο σύστημα GNU/Linux αναφέρεται στον GNU C compiler gcc. Σε άλλα συστήματα ενδέχεται να αναφέρεται σε άλλο μεταγλωττιστή.
¿º¾º
´
Í ÇµÌÍÉ ÁÇÁ
ÊÁÂÅÇÁ
41
Ò Ò ÒØÓÐ
Ø
Ðô××
C ÐÐ ØÓÙ ÔÖÓ Ô Ü Ö ×Ø ´preprocessorµ cpp ÔÓÙ Ò Ò
ÔÐ
Ô Ü Ö ×Ø
Ñ ÒÓÙº À ÒØÓÐ #include ´ØÓ # ר Ò ÔÖôØ ×Ø Ð µ ÒØ ר Ø Ö ÑÑ ÙØ Ñ Ø Ô Ö Õ Ñ Ò ØÓÙ ÖÕ ÓÙ stdlib.h stdio.h ÒØ×ØÓ Õ º Ì ÖÕ ÙØ Ò × Ó
ØÐ¹ ÓÙ
×ØÓ × ×Ø Ñ ´×ÙÒ Û
רÓÙ
Ø Ð ÓÙ
/usr/include¸ /includeµ ÙØ ÙÔÓ ÐôÒ Ø Ô ØÓÒ Ð ×Ñ ØÓÙ ÓÒ Ñ ØÓ
ØÓÙ ÖÕ ÓÙ × <...> º Ø ÐÐ ÐÓÙ
¹ Ç Ø ÐÓ Ó ÔÓÙ Ý ÕÒ Ó cpp ÑÔÓÖÓ Ò Ò ÖÙ Ñ ×ØÓ Ò Ñ ÔØ
´switches, optionsµ -I רÓÒ Ñ Ø ÐÛØØ ×Ø º Ç ÔÖÓ Ô Ü Ö ×Ø
Ð Ø Ô Ø Ò ÒØÓÐ Ñ Ø ÐôØØ ×
Ò ÕÖ Þ Ø Ò Ø Ò Ø Ð ×ÓÙÑ Ü ÕÛÖ ¹ ר ´ Ò ÑÔÓÖÓ × Ñ µº Ò × Ñ ÒØ Ò Ø Ð ÓÙÑ Ø Ó ÔÖÓ Ô Ü Ö¹ ר
Ò Ñ Ø ÐÛØØÞ ÐÐ ØÖÓÔÓÔÓ ØÓ Ñ ÒÓ ØÓÙ ÔÖÓ Ö ÑÑ ØÓ
¸ Ñ ÒÓ Ò ÔÓÙ Ô Ü Ö Þ Ø Ó Ñ Ø ÐÛØØ ×Ø
º Ì ØÓ ØÖÓÔÓÔÓ Ñ ÒÓ ÙØ Ô Ö Õ Ñ Ò ØÛÒ ×Ù Ö Ñ ÒÛÒ ÖÕ ÛÒ Ò Ðô×
Ñ Ø Ð ØôÒ macros ÔÓÙ ÕÖ × ÑÓÔÓ Ó Ò Ó ÐÓ
×Ùר Ñ ØÓ
× ÓÙ» Ü ÓÙ ´ÐºÕº ÐÛ× Ø
×ÙÒ ÖØ ×
printf() ÓÔÓ ØÙÔôÒ ×Ø Ò ÖÛÑ Ò ÜÓ Ó Ø Ò ÓÐÓÙ Õ Ö Ø ÖÛÒ Hello World!µº Ô Ø ×ÙÒ ÖØ × main() À Ø Ð × ÒØÓÐôÒ ×Ø Ðô×× C ÖÕÞ ÓÔÓ ×ÙÒ Û
Ð ÐÐ
×ÙÒ ÖØ ×
Ø Ò Ø Ð × Ò
ÔÓÐ ÔÐÓ ÓÙ ÔÖÓ Ö ÑÑ ØÓ
º Ì ×ÙÒ ÖØ × ÙØ Ò ÕÖ Þ Ø Ù× ÒØ Ðô×ÓÙÑ º À ×ÙÒ ÖØ × printf() Ô ÖÒ ô Û
Ö ×Ñ Ñ ÓÐÓÙ Õ Ö Ø ÖÛÒ Ø Ò ÓÔÓ ØÙÔôÒ ×Ø Ò ÖÛÑ Ò ÜÓ Ó ´standard output stdoutµº ÈÖÓ× Ü¹ Ø ÔÛ
Ò ØÙÔÛ Ñ Ò Ö ÑÑ ÔÖ Ô Ò ØÓ Ðô×ÓÙÑ Ö Ø Ñ ØÓÒ Õ Ö Ø Ö \nº Ã ÒØÓÐ ×Ø Ò Ðô×× C ÔÖ Ô Ò Ø Ð ôÒ Ñ ØÓ ÕÖ ØÖ ; ÑÔÓÖ Ò ×ÙÒ ÕÞ Ø × ÔÓÐÐ
Ö ÑÑ
º ³Ç¸Ø Ô Ö Ð Ø Ñ Ø Ü /* ... */ Ò ×Õ Ð Ó ÒÓ Ø ×Ø Ñ Ø ÐôØØ × º Ç¸Ø Ô Ö ¹ Ð Ø Ñ Ø Ü { ... } Ò Ò scope ×ØÓ ÔÖ Ö ÑÑ ¸ ר ×Ù ÖÑ Ò Ô ÖÔØÛ× Ø Ô Ö Õ Ñ Ò Ø
×ÙÒ ÖØ ×
main()º Ñ ×Ø ØÓ ÑÓ ØôÖ Ò Ö ÝÓÙÑ ØÓÒ ô Ø Ò Ñ Ð Ø ØÛÒ ÒÒ ¹ ØÖ ôÒ Ý Ù ÓØÙÕ ÛÒ Ö ÑôÒ ÔÓÙ Ò Ö Ñ ×ØÓ ÔÖÓ Ó Ñ ÒÓ Ð Óº Ç Ø Ò naiveran() Ö× Ø ×ØÓ ÖÕ Ó random.c ô
/************************ static int ibm= 13337; double naiveran(){
random.c
*****************************/
Αν τα ονόματα των αρχείων ήταν εγκλεισμένα μεταξύ διπλών εισαγωγικών "..." τότε η διαδρομή αναφέρεται στη σχετική ή απόλυτη διαδρομή προς τον κατάλογο σύμφωνα με τις συμβάσεις του λειτουργικού.
¾
Ã
ï Ä ÁÇ ¿º Ç ÌÍÉ ÁÇË È ÊÁÈ ÌÀÌÀË
int mult, modulo; double rmodulo; mult = 1277; modulo = 131072 ; // equal to 2^17 rmodulo = (double)modulo; ibm *= mult; ibm = ibm % modulo; return ibm/rmodulo; }
È Ö Ø ÖÓ Ñ Ø
Ðô×
int ´ Ö Ó µ¸ double ´ÔÖ Ñ Ø Ó ÔÐ
¹ Ö
¹ byteµ ØÛÒ Ñ Ø Ð ØôÒ mult, modulo, rmodulo Ó ÓÔÓ
ÒÓÒØ Ñ × ×ØÓ scope Ø
×ÙÒ ÖØ ×
naiveran()º Ç Ñ Ø Ð Ø
ÙØ
ÞÓÙÒ Ñ ÒÓ Ñ × ×ØÓ scope Ø
×ÙÒ ÖØ ×
Ó ÖÕ
ØÓÙ
Ø Ñ
Ò ÓÖÞÓÒØ Ô ÒÓ Ö Ó Ð ×Ñ Ø
×ÙÒ ÖØ ¹ ÔÓ Ó standard º ÙØ × Ñ Ò ÔÛ
Ñ ØÓ ×
Ó Ø Ñ
ØÓÙ
ÕÓÙÒ Ü Õ ×Ø º ÒØ Ø Ñ Ø Ð Ø ibm ÓÖÞ Ø ÜÛ Ô ØÓ scope Ø
×ÙÒ ÖØ ×
Ø Ñ Ø
Ô Ö Ñ Ò × ×Ø Ö × Ñ Ó Ø
ÑÒ Ñ
º À Ö ÑÑ
modulo
= 131072 ; // equal to 2^17
Ò Ò ×Õ Ð Óº ÔÓ Ø ÙØ ØÓ ×ÙÒØ Ø Ò Ô ØÓÙ
Ô Ö ×× Ø ÖÓÙ
ÓÖÞ ¸Ø Ò Ü Ô ØÓ // Ò Ñ ÖÓ
Õ Ø
C ÐÐ Ø
C··¸ ÐÐ Ñ Ø ÐÛØØ ×Ø
º À Ö ÑÑ
rmodulo = (double)modulo;
Ò Ô Ö Ñ Ø
Ñ Ø ØÖÓÔ
Ñ
Ñ Ø Ð Ø
Ò
Ø ÔÓÙ × Ò Ò ÐÐÓ Ñ ×Û Ò
cast º È Ó ×Ù ÖÑ Ò Ñ Ø Ð Ø Ø ÔÓÙ int Ñ Ø ØÖ Ô Ø × Ø ÔÓÙ double Ñ ØÓ cast ´doubleµº À Ö ÑÑ
ibm
Ò
*= mult;
×Ó Ò Ñ Ñ Ø Ò
ibm
Ì ÐÓ
= ibm * mult;
Ö ÑÑ
Ορισμένοι μεταγλωττιστές τις αρχικοποιούν στη μηδενική τιμή, αλλά αυτό μπορεί να οδηγήσει σε μη μεταφερόμενο (non-portable) κώδικα και απρόσμενα bugs!
¿º¾º
´
Í ÇµÌÍÉ ÁÇÁ
ÊÁÂÅÇÁ
43
return ibm/rmodulo;
Ô ×ØÖ Ø Ò Ø Ñ ibm/modulo ר × ØÓÙ ÓÒ Ñ ØÓ
Ø
×ÙÒ ÖØ ×
×ØÓ ÐôÒ ÔÖ Ö ÑÑ º Ù× ØÓ control ØÓÙ ÔÖÓ Ö ÑÑ ØÓ
Ô ×ØÖ ×ØÓ × Ñ Ó ÔÓÙ Ò Ð × Ø
×ÙÒ ÖØ ×
º Ç Ø ÔÓ
ØÓÙ ÔÓØ Ð ×Ñ ØÓ
Ü ÖØ Ø Ô Ö Ñ Ò Ô ÖÔØÛ× Ø ÐÛ× Ø
×ÙÒ ÖØ ×
naiveran() ÓÔÓ ×Ø ×Ù Ò doubleº Çô
Ø Ò drandom() Ö× Ø ×ØÓ ÖÕ Ó drandom.c
/************************ #define a 16807 #define m 2147483647 #define q 127773 #define r 2836 #define conv (1.0/(m-1)) static int seed = 323412; double drandom(){ long l;
drandom.c *****************************/
l = seed/q; seed = a*(seed-q*l) - r*l; if(seed < 0) seed +=m; return conv*(seed-1); }
ô Ð ÔÓÙÑ Ø Ò ÐÐ ×ÙÕÒ ÕÖ × ÑÓÔÓ Ó Ñ Ò ÒØÓÐ ØÓÙ ÔÖÓ Ô Ü Ö ×Ø #define ÓÔÓ ÓÖÞ Ò macroº ËØ Ò Ô Ó ÔÐ ÑÓÖ ØÓÙ ÓÖÞ Ø Ò Ø ¹ Ñ Ò
×ÙÑ ÐÓÙ Ø Ò ÓÔÓ ÒØ ר × ÓÔÓ Ó ÔÓØ × Ñ Ó ØÓÙ ô ×ÙÒ ÒØ × ØÓ × Ñ ÓÐÓº Ø× Ö ÑÑ
#define a 16807
ÒØ Ö ÑÑ Ø ×Ø × Ø Ò Ø Ñ ½ ¼ ÓÔÓÙ ÔÓØ ×ÙÒ ÒØ × ØÓ × Ñ ÓÐÓ aº À
#define conv (1.0/(m-1))
ÒØ Ø ×Ø × Ø Ò Ô Ö Ô ÒÛ Ô Ö ×Ø × ÓÔÓ ÔÓØ ×ÙÒ ÒØ × ØÓ × Ñ Ó¹ ר Ç × Ö ÐÓ convº ÈÖÓ×ÓÕ ¸ Ó ÔÖÓ Ô Ü Ö ×Ø
Ò ÒÛÖÞ Ø ÒØ
Ã
ï Ä ÁÇ ¿º Ç ÌÍÉ ÁÇË È ÊÁÈ ÌÀÌÀË
ÔÓÙ ÒÓÒØ Ó ÔÖ Ü
Ü ÖØ Ø Ô Ø ÑÓÖ ×Õ Ñ Ø ×Ø ¸ ÓÔ Ø Ò Ð Ò Ô Ö Ð ÓÙÑ Ô ÐÐ ô
Ñ
Ô Ö Ñ ÒÓÙÒ ÔÐ Ü
À Ö ÑÑ
Ø
Ø Ð
ÒØÓÐ
ÔÓÙ × ÒØ Ò macro Ñ Ô Ö Ò
¸
if(seed < 0) seed +=m;
Ò Ô ÖÔØÛ× if statementº Ò ÒØÓÐ ÔÓÙ Ñ ¸ Ò Ô Ø Ø Ó Ð ×Ñ
× {...} Ð
º Ô À ÖÓÙØÒ Ó
main.c Ò Ø Ø Ð ×Ø Ñ Ø Ò Ñ ÒÓ
/************************ main.c *****************************/ // Program to show the correlations in the naive random number generator #include #include double naiveran(),drandom(); int main(int argc, char **argv){ int i,N; double L = 10000.0; if(argc == 1) N=1000; else N=atoi(argv[1]); for(i=1;i<=N;i++){ printf("%d %d\n",(int)(L*naiveran()),(int)(L*naiveran())); // printf("%d %d\n",(int)(L*drandom()),(int)(L*drandom())); // printf("%d %d\n",(int)(L*drand48()),(int)(L*drand48())); if(i%1000==0){ fflush(stdout); sleep(1); } } }
Ð ÔÓÙÑ Ø ÖÕ Ô ØØ ÐÛ× ØÛÒ ÔÖÓ
ÕÖ × ×ÙÒ ÖØ × ÛÒ naiveran() drandom() ôר Ò ÒÛÖÞ Ó Ñ Ø ÐÛØØ ×Ø
ØÓÒ Ø ÔÓ ØÓÙ
º È Ö Ø ¹ ÖÓ Ñ ØôÖ Ø main() ÐôÒ Ø Ò Õ ÓÖ×Ñ Ø º ÙØ Ò ÖÓÒØ ר ÓÖ×Ñ Ø ÔÓÙ Õ ÒØÓÐ ÔÓÙ Ø Ð ØÓ ÔÖ Ö ÑÑ ×Ø Ò Ö ÑÑ ÒØÓÐôÒº
¿º¾º
´
Í ÇµÌÍÉ ÁÇÁ
ÊÁÂÅÇÁ
ØÓÒ Ö Ñ ØÛÒ ÓÖ ×Ñ ØÛÒ ×ÙÑÔ Ö Ð Ñ¹ À Ñ Ø Ð Ø argc Ø ÔÓÙ int Ñ ØÖ ÒÓÑ ÒÓÙ ØÓÙ ÓÒ Ñ ØÓ
ØÓÙ ÔÖÓ Ö ÑÑ ØÓ
´ к Ò × Ñ ½ Ø Ò Ò ÙÔ ÖÕ Ò Ò Ö ×Ñ µº À Ñ Ø Ð Ø argv Ò Ò ÒÙ×Ñ ´arrayµ Ô ÓÐÓÙ
Õ Ö Ø ÖÛÒ ´stringsµ ÔÓÙ ÔÓ ØÓ Ô Ö Õ Ñ ÒÓ ØÛÒ ÓÖ ×Ñ ¹ ØÛÒ Û
Ð Ü × º À ÔÖôØ Ð Ü Ò Ó ÒÓÑ ØÓÙ ÔÖÓ Ö ÑÑ ØÓ
¸ ØÖ ØÓ ÔÖôØÓ Ö ×Ñ ºÓº º ØÓ Ð Ó ÙØ Ò ÓÖ ×Ñ Ò × Ò Ò pointer × pointer Ô Õ Ö Ø Ö
charº ÂÙÑÞÓÙÑ ×ØÓÒ Ò Òôר Ø ÓÐÓÙ Õ Ö Ø ÖÛÒ ´stringµ ר C ÓÖÞ Ø Û
Ò array Õ Ö Ø ÖÛÒ ØÓ Ø ÐÓ
Ø
ÓÔÓ
Ò Ó Õ Ö Ø Ö
null = ³ ¼³ Ø ÐôÒØ
ØôÖ Ø
ÒØÓÐ
% cc main.c random.c drandom.c -o naiveran % naiveran 10000
ÑØ ÐÛØØÞ ØÓ ÔÖ Ö ÑÑ ØÓ Ø Ð Ñ Ö ×Ñ Ø Ò ÓÐÓÙ Õ Ö ¹ Ø ÖÛÒ "10000"={’1’, ’0’, ’0’, ’0’, ’0’, ’\0’} ´ Õ ØÓÒ ÖÓ 10000 µº ËØ Ò Ô ÖÔØÛ× ÙØ argc = 2¸ argv[0] = "naiveran"¸ argv[1] = "10000"º Ò Ñ Ø ØÖ ÝÓÙÑ Ø Ò ÓÐÓÙ Õ Ö Ø ÖÛÒ "10000" רÓÒ Ö Ó ½¼¼¼¼ ÕÖ × ÑÓÔÓ Ó Ñ Ø Ò ×ÙÒ ÖØ × atoi()º À Ö ÑÑ
N=atoi(argv[1]);
Ò Ö ô
Ø Ñ Ø ØÖÓÔ ÙØ ÔÓ ØÓÒ Ö Ó ½¼¼¼¼ ר Ñ ¹ Ø Ð Ø Nº ËØ ×ÙÒ Õ Ð ÔÓÙÑ Ò ÔÐ Ô Ö Ñ Ø × Ù ×Ñ ØÓ
if ... else ØÓ ÓÔÓÓ × ÔÐ ÐÐ Ò Ð Ø Ò ØÓ ÔÖ Ö ÑÑ Ø Ð ×Ø ÕÛÖ
Ö ×Ñ ´argc = 1µ Ñ Ø Ð Ø N Õ Ø Ò Ø Ñ ½¼¼¼ Òô × ÐÐ Ô ÖÔØÛ× Ø Ò Ø Ñ ÔÓÙ Ò Ó ÕÖ ×Ø
×ØÓ ÔÖôØÓ Ö ×Ñ ×Ø Ö ÑÑ ÒØÓÐôÒ ÌÓ block for(i=1;i<=N;i++)... Ô Ò Ð Ñ Ò Ø N ÓÖ
À ÒØÓÐ i=1 Ø Ð Ø Ñ ÓÖ ×Ø Ò ÖÕ º À ×ÙÒ i<=N Ð Õ Ø ÔÖ Ò Ø Ð ×Ø ½¼ ØÓ blockº Ò Ø Ñ Ò TRUE ØÓ block Ø Ð Ø ÐÐ ô
ØÓ ÔÖ Ö ÑÑ ×ÙÒ ÕÞ Ø º À Ø Ð ÙØ ÒØÓÐ i++ Ø Ð Ø ×ØÓ Ø ÐÓ
ØÓÙ block ר ×Ù Ö Ñ Ò Ô ÖÔØÛ× ÙÜ Ò Ø Ò Ø Ñ ØÓÙ iº Å × ×ØÓ block Ø Ð Ø Ø³ ÖÕ Ò ÒØÓÐ
printf("%d %d\n",(int)(L*naiveran()),(int)(L*naiveran()));
Ο null χαρακτήρας είναι διαφορετικός από τον ΄0΄ που έχει αριθμητική τιμή 48. Ο συνετός προγραμματιστής θα έκανε έλεγχο αν η τιμή της N είναι αποδεκτή. ½¼ Στην C μια λογική έκφραση δεν είναι ξεχωριστός τύπος αλλά είναι τύπου int και είναι FALSE όταν είναι 0 και TRUE αν είναι μη–μηδενική.
Ã
ï Ä ÁÇ ¿º Ç ÌÍÉ ÁÇË È ÊÁÈ ÌÀÌÀË
Ö ÑÑ Ó ØÙÕ ÓÙ
ÓÔÓ ØÙÔôÒ ×Ø Ò ÖÛÑ Ò ÜÓ Ó stdout × Ö ÓÙ
Ô 0 ... (L-1)º ÙØ Ò Ø ÐôÒØ
Ø double ×ÙÒ ÖØ × 0 ≤ naiveran() < 1¸ ÔÓÐÐ ÔÐ × ÞÓÒØ
Ñ L=10000.0 Ñ Ø ØÖ ÔÓÒØ
ØÓ ÔÓØ Ð ×Ñ × int Ñ ØÓ cast ´intµ Ô ÖÒÓÒØ
ÔÐ ØÓ Ö Ó Ñ ÖÓ
º Ç Ô Ñ Ò
Ö ÑÑ
Ò ×Õ Ð º À ÓÖ Ñ Ø Ò ÔÖÓ Ó Ñ Ò Ö ÑÑ Ò Ð × ÐÐ
×ÙÒ ÖØ ×
Ø Ò Ô Ö Û ØÛÒ ØÙÕ ÛÒ Ö ÑôÒº À ÒÒ ØÖ ØÙÕ ÛÒ Ö ÑôÒ ÔÓÙ Ò Õ ØÓ ÔÖ ¹ ×ÙÒ ÖØ × drandom() Ò Ð Ñ Ø
naiveran()º Ò ×ÙÒ ÖØ × ÔÓÙ Ô Ð Ü Ñ ×ØÓ Ñ Ñ ÙØ Ò ÕÖ × ÑÓÔÓ ×ÓÙÑ ¸ Ð Û Ø
ÔÐ Ø Ø
Ø
Ø Õ Ø Ø
Ø
º À ×Ù¹ Ò ÖØ × drand48() Ò ×ÙÒ ÖØ × ÔÓÙ Ô Ö Õ Ø Ô ØÓ × ×Ø Ñ Ò Ò
ÔÐ
modulo generator ´ Ø Ø man pagesµº Ç Ð Ó
ÔÓÙ Ö Ý Ñ Ø main() Ñ ØÓ ØÖ ÔÓ ÙØ Ò Ø ÔÓ×ÕÓÐ ÞÓÒØ
Ø Ò Ø ÐÐ Ð Ö ÑÑ Ô Ò Ñ Ø ÐÛØØÞÓÙÑ ØÓÒ ô Ü Ò ôר Ò ÕÖ × ÑÓÔÓ ×ÓÙÑ Ó¹ ÖØ ÒÒ ØÖ ØÙÕ ÛÒ Ö ÑôÒº ÇÔ Ø Ñ Ø ÐÐÓÙÑ Ø
Ô Ö ØÛ Ö ÑÑ
Û
// printf("%d %d\n",(int)(L*naiveran()),(int)(L*naiveran())); printf("%d %d\n",(int)(L*drandom()),(int)(L*drandom())); // printf("%d %d\n",(int)(L*drand48()),(int)(L*drand48()));
ÒÓÙÑ Ø Ò ÒØÓÐ
% cc main.c random.c drandom.c -o drandom
Ò Ô ÖÓÙÑ ØÓ ÔÖ Ö ÑÑ drandom Ø
Ñ Ø ÐÐÓÙÑ Û
// printf("%d %d\n",(int)(L*naiveran()),(int)(L*naiveran())); // printf("%d %d\n",(int)(L*drandom()),(int)(L*drandom())); printf("%d %d\n",(int)(L*drand48()),(int)(L*drand48()));
ÒÓÙÑ Ø Ò ÒØÓÐ
% cc main.c random.c drandom.c -o drand48
Ò Ô ÖÓÙÑ ØÓ ÔÖ Ç Ö ÑÑ
Ö ÑÑ drand48º
if(i%1000==0){ fflush(stdout); sleep(1); }
¿º¾º
´
Í ÇµÌÍÉ ÁÇÁ
ÊÁÂÅÇÁ
47
Ð Ø
×ÙÒ ÖØ ×
fflush(), sleep() ÓÖ ÔÓÙ ØÓ i Ò ÔÓÐÐ ¹ ÔÐ × Ó ØÓÙ ½¼¼¼º À ÔÖ Ü i%1000 Ñ
Ò ØÓ ÙÔ ÐÓ ÔÓ Ø
Ö × Û
ØÓÙ i Ñ ØÓ ½¼¼¼ ´ÔÖ Ü moduloµº À ×ÙÒ ÖØ × fflush() Þ Ø buffers Ü ÓÙ ×ØÓ ÖÕ Ó ÔÓÙ ÕÒ ØÓ Ö ×Ñ Ø
´ ô ÖÛÑ Ò ÜÓ Ó
stdoutµº Ç Ð Ó
Ò Ø Ó ×ÙÒ ÖØ ×
printf() ×ÙÒ
ÕÓÙÒ buffered output ¸ к Ò Ö ÓÙÒ bit byte ÐÐ × Ñ Ô Ö ÓÕ Ø
ÑÒ Ñ
ר Ò ÓÔÓ ÕÓÙÒ Ö ÓÖ ÔÖ × × Ñ Ð
Ø buffers Ñ×ÓÙÒ½½ Ø Ø Ñ ÒÓ Ò Ø Ñ Ø ÓÖ ØÛÒ ÓÑ ÒÛÒ ×ØÓ ÖÕ Ó ´×ØÓ ÓÔÓÓ ×ÙÒ Û
ÕÓÙÑ Ö ÔÖ ¹ × × µº Ì ÐÓ
×ÙÒ ÖØ × sleep() Ò Ñ Ô × ½ ÙØ Ö Ð ÔØÓ ´ ×Ó Þ Ø ×ÓÙÑ µº Å ØÓÒ ØÖ ÔÓ ÙØ Ô ØÙÕ ÒÓÙÑ Ò ØÙÔôÒÓÒØ Ø Þ Ù Ö ØÙÕ ÛÒ Ö ÑôÒ Ò ½¼¼¼ Ò Ô Ö ÓÐÓÙ Ó Ñ ØÓ ÔÓØ Ð ×Ñ Ö º ¿º¾º¾ ÈÇÌ Ä ËÅ Ì
Ó Ñ Ø ÐÛØØ×ÓÙÑ ØÓ ÔÖ Ö ÑÑ × Ñ ÛÒ Ñ Ø Ô Ö Ô ÒÛ ÑÔÓÖÓ Ñ Ò Ñ Ð Ø ×ÓÙÑ ØÓ ÔÖ Ð Ñ ÔÓÙ Ô ÖÓÙ× Þ Ó Ð Ö ÑÓ
ר Ò naiveran()º
ÖÕ×ÓÙÑ ØÖ ÕÓÒØ
ØÓ ÔÖ Ö ÑÑ Ñ Ø Ò ÒØÓÐ
% naiveran 100000 % drandom 100000
> naiveran.out > drandom.out
Å Ø
Ô Ö Ô ÒÛ ÒØÓÐ
Ô Ö ÓÙÑ ½¼¼¼¼¼ Þ ØÙÕ ÛÒ Ö ÛÒ ÓÑÓ ¹ ÑÓÖ Ø Ò Ñ Ñ ÒÓÙ
×ØÓ ×Ø Ñ [0, 10000) ÕÖ × ÑÓÔÓ ôÒØ
Ø Ò ÒØ×ØÓ ¹ Õ ×ÙÒ ÖØ × º Ò ÓÑ Ö Ø ÔÓØ Ð ×Ñ Ø Ñ
ÕÖ × ÑÓÔÓ Ó Ñ ØÓ ÔÖ Ö ÑÑ gnuplot½¾
% gnuplot gnuplot> plot "naiveran.out" using 1:2 with dots gnuplot> plot "drandom.out" using 1:2 with dots
Ç Ô Ö Ô ÒÛ ÒØÓÐ
Ô Ö ÓÙÒ Ø ËÕ Ñ Ø ¿º¾º¾ ¿º¾º¾ ר ÓÔÓ Ð ÔÓÙÑ Ö ØÓ ×Ù×Õ Ø ×Ñ ØÛÒ Þ Ù ôÒ ÔÓÙ Ô Ö ÓÒØ Ô Ø Ò naiveran()º À ÓÑÓ ÑÓÖ Ø ÒÓÑ ØÛÒ ØÙÕ ÛÒ Ö ÑôÒ ÑÔÓÖ Ò ÕÖ Ø ÕÒÓÒØ
ØÓ ר Ö ÑÑ Ø
×Õ Ø
×ÙÕÒ Ø Ø
ØÛÒ ØÙÕ ÛÒ Ö ÑôÒº Ò ÒÓÙÑ ×ØÓ Ö ÑÑ Ø ÕÖ × ÑÓÔÓ Ó Ñ ØÓ script histogram Ö ÑÑ ÒÓ ½¿ × awk Û
Ü
μέγεθος του buffer εξαρτάται από το σύστημα και τη συσκευή στην οποία γράφουμε. πρόγραμμα διαθέτει πολύ καλή on-line βοήθεια. Λ.χ. δώστε τις εντολές help ή help plot. Επισκευτείτε την ιστοσελίδα www.gnuplot.info για εγχειρίδιο και demos. ½¿ Βλ. συνοδευτικό λογισμικό στο αντίστοιχο κεφάλαιο
½¾ Το ½½ Το
Ã
10000 9000 8000 7000 6000 5000 4000 3000 2000 1000 0 0 1000 2000 3000
ï Ä ÁÇ ¿º Ç ÌÍÉ ÁÇË È ÊÁÈ ÌÀÌÀË
4000
5000
6000
7000
8000
9000
10000
ËÕ Ñ ¿º½ Τα ζέυγη ψευδοτυχαίων αριθμών από τη συνάρτηση naiveran(). Φαίνεται
καθαρά ο συσχετισμός των ζευγών που παράγονται αφού τα σημεια κάθονται πάνω σε εμφανές διακριτό πλέγμα.
% histogram -h % histogram -v f=0.01 drandom.out > drandom.hst % gnuplot gnuplot> plot "drandom.hst" using 1:3 with histeps gnuplot> plot [0:10000][0:0.012] "drandom.hst" using 1:3 with histeps
Ì ÔÓØ Ð ×Ñ Ø ÒÓÒØ ר ËÕ Ñ Ø ¿º¾º¾ ¿º¾º¾º ËØ ×ÙÒ Õ Ñ Ð ØÓ Ñ Ø ×ÔÓÖ ØÛÒ Ñ ØÖ × ÛÒ Ñ
¸ Ó ÓÔÓ
Ò Ñ Ò
Ô ØÓ ËÕ Ñ ¿º¾º¾º À ×ÔÓÖ ÙØ Ñ ôÒ Ø Ñ ØÓ Ñ Ó
ØÓÙ Ñ ØÓ
ØÛÒ ØÙÕ ÛÒ Ö ÑôÒ ÔÓÙ ×ÙÐÐ ÓÙÑ º ÙØ Ò Ø ×ØÓ ×Ø Ö ÑÑ ØÓÙ ËÕ Ñ ØÓ
¿º¾º¾º Ò Ó Ñ ÔÓ×ÓØ Ø Ò Ü ÖØ × ØÛÒ ÙÑ Ò× ÛÒ Ô ÓÐÓÙ ØÓ Ñ Ó
ØÓÙ Ñ ØÓ
n¸ ÙÔÓÐÓ ÞÓÙÑ Ø Ò ÔÓ× Ø Ø ´xi Ò
¿º¾º
´
Í ÇµÌÍÉ ÁÇÁ
10000 9000 8000 7000 6000 5000 4000 3000 2000 1000 0 0 1000 2000
ÊÁÂÅÇÁ
3000
4000
5000
6000
7000
8000
9000
10000
ËÕ Ñ ¿º¾ Τα ζέυγη ψευδοτυχαίων αριθμών από τη συνάρτηση δρανδομ(). Φαίνεται ότι τα σημεία αυτά κατανέμονται τυχαία σε σχέση με αυτά της ναιεραν().
ØÛÒ ØÙÕ ÛÒ Ö ÑôÒµ
σ=
Ø Ò ÓÔÓ ÔÓ ÓÙÑ Ö
1 1 n−1 n
n
i=1
x2 − i
1 n
n
2
xi
i=1
×ØÓ ËÕ Ñ ¿º¾º¾º À ×Õ ×
´¿º½ µ
ln σ ∼
ÔÛ
Ò Ø
1 ln(n) 2
ÕÒ Ø
´¿º½ µ
Ô Ø Ò Ù ÔÓÙ ÔÖÓ× ÖÑ ÞÓÙÑ ×Ø × Ñ
1 σ∼√ n
 Р×ÓÙÑ ØÓ ØÙÕ ÛÒ Ö ÑôÒ Ñ Ð Ó ÙØ Ò ÖÓÒØ
× ÒØÓÑ Ø Ò Ô Ö Ø ÒÓÑ ÓÖ Ø Ô Ø Ò ÓÑÓ ÑÓÖ º
´¿º½ µ Û Ý Ù Ó¹ Ñ ØÙÕ
¼
0.012
Ã
ï Ä ÁÇ ¿º Ç ÌÍÉ ÁÇË È ÊÁÈ ÌÀÌÀË
0.01
0.008
0.006
0.004
0.002
0 0 2000 4000 6000 8000 10000
ËÕ Ñ ¿º¿ Η σχετική συχνότητα κατανομής των ψευδοτυχαίων αριθμών που παράγονται από την συνάρτηση drandom(). Φαίνεται η ομοιόμορφη κατανομή και η διασπορά γύρω από τη μέση τιμή.
Ø ÒÓÑ Ñ ×ÙÒ ÖØ × ÔÙ Ò Ø Ø
Ô Ò Ø Ø
f (x) ÑÔÓÖÓ Ñ Ò Ô ÖÓÙÑ Ý Ù ÓØÙÕ ÓÙ
Ö ÑÓ
ÔÓÙ ÓÐÓÙ Ó Ò Ø Ò f (x) Ô ÓÑÓ ÑÓÖ ØÒѹ Ñ ÒÓÙ
Ö ÑÓ
×ØÓ ×Ø Ñ [0, 1)º ×ØÛ ×ÙÒ ÖØ × Ø ÒÓÑ
x
0 ≤ u = F (x) =
−∞
f (x′ ) dx′ ≤ 1 ,
´¿º½ µ
ÔÓÙ Ò Ò ÐÐÓ Ô ØÓ Ñ Ò ØÛ Ô Ø Ò f (x) ×ØÓ (−∞, x] ×Ó Ø Ñ Ø Ò Ô Ò Ø Ø P (x′ < x)º Ò Ô Ð ÜÓÙÑ ØÓ u ÓÑÓ ÑÓÖ Ø Ò Ñ Ñ ÒÓ ×ØÓ ×Ø Ñ [0, 1) Ø Ø ÕÓÙÑ P (u′ < u) = uº Ì Ø ØÓ x = F −1 (u) Ò ′ Ø ØÓ Ó ôר P (x < x) = u = F (x)¸ Ö Ø Ò Ñ Ø × Ñ ÛÒ Ñ Ø Ò f (x)º ÇÔ Ø Ò ui Ò ÓÑÓ ÑÓÖ Ø Ò Ñ Ñ ÒÓ Ý Ù ÓØÙÕ Ó Ö ÑÓ Ø Ø Ó
xi = F −1 (ui)
´¿º½ µ
¿º¾º
´
Í ÇµÌÍÉ ÁÇÁ
0.0108
ÊÁÂÅÇÁ
½
0.0106
0.0104
0.0102
0.01
0.0098
0.0096
0.0094
0.0092 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
ËÕ Ñ ¿º
διασπορά.
Το προηγούμενο σχήμα σε μεγαλύτερη κλίμακα για να φανεί καθαρότερα η
Ò Ñ f (x)º
ÓÐÓÙ Ý Ù ÓØÙÕ ÛÒ Ö ÑôÒ ÔÓÙ Ø Ò Ñ Ø × Ñ ÛÒ Ñ Ø Ò ÔÖ Ñ ÛÖÓ Ñ Ø Ò Ø ÒÓÑ Ø Cauchy
f (x) =
ÌØ
c 1 2 + x2 πc
c > 0.
´¿º¾¼µ
x
F (x) =
−∞
f (x′ ) dx′ =
x 11 + tan−1 ). 2π c
Ò Ø
´¿º¾½µ ÔÓ Ø ×Õ × ´¿º¾¾µ
Ë Ñ ÛÒ Ñ Ø Ô Ö Ô ÒÛ
ÒÒ ØÖ ØÙÕ ÛÒ Ö ÑôÒ
xi = c tan (πui − π/2)
×Ó Ò Ñ ´ ÔÓ Ö ÓÖÓ ÔÖ Ö ÑÑ µ
xi = c tan (2πui) .
´¿º¾¿µ
¾
0.018 0.016 0.014 0.012 0.01 0.008 0.006 0.004 0.002 0 1000 2000
Ã
ï Ä ÁÇ ¿º Ç ÌÍÉ ÁÇË È ÊÁÈ ÌÀÌÀË
100000 10000 1000
3000
4000
5000
6000
7000
8000
9000 10000
ËÕ Ñ ¿º Η σχετική συχνότητα κατανομής των ψευδοτυχαίων αριθμών που παράγονται από την συνάρτηση drandom() σαν συνάρτηση του μεγέθους του δείγματος των τυχαίων αριθμών n για n = 1000, 10000, 100000.
È Ö ×× Ø Ö
ÖÑÓ
Õ ÒÒ ØÖ Gaussian ØÙÕ ÛÒ Ö ÑôÒº À Ø ÒÓÑ ÙØ Ò Ø Ô Ø ×ÙÒ ÖØ × ÔÙ Ò Ø Ø
Ô Ò Ø Ø
g(x) = √
À ×ÙÒ ÖØ × Ø ÒÓÑ
Ò
x
1 2 2 e−x /(2σ ) 2π σ 11 + erf 22 x √ 2σ
´¿º¾ µ
G(x) =
x −∞
g(x′ ) dx′ =
´¿º¾ µ
ÔÓÙ erf(x) = −∞ exp{−(x′ )2 } dx′ Ò error function ÓÔÓ ÑÔÓÖ Ò ÙÔÓÐÓ ×Ø Ö Ñ Ø ô
ÒØ×ØÖÓ Ø
º ÙØ Ó Ó × × ÔÓ¹ ÐÖ Ð Ö ÑÓ Ø ÒÒ ØÖ Ñ
ÓÔ Ø ÕÖ × ÑÓÔÓ Ó Ñ Ø Ò ÔÙ Ò Ø Ø Ô Ò Ø Ø
ρ(x, y) Ó ØÙÕ ÛÒ Ñ Ø Ð ØôÒ x¸ y
ρ(x, y) dx dy = √
1 1 −r2 /(2σ2 ) 1 2 2 2 2 e r dr dφ e−x /(2σ ) √ e−y /(2σ ) dx dy = 2πσ 2π σ 2π σ ´¿º¾ µ
¿º¾º
´
Í ÇµÌÍÉ ÁÇÁ
ÊÁÂÅÇÁ
53
5 4.5 4 ln(σ) 3.5 3 2.5 2 6 7 8 9 ln(n) 10 11 12
ËÕ Ñ ¿º
Η εξάρτηση της διασποράς (3.15) από το n για τη συνάρτηση drandom().
ÔÓÙ x = r cos φ¸ y = r sin φº Ì Ø
r 2π 0
ÕÓÙÑ
Ø
2 /(2σ 2 )
u = G(r) =
0
dr dφ ρ(r, φ) = 1 − e−r −2 ln(1 − u) .
´¿º¾ µ
ÓÔÓ
Ø Ò ÒØ רÖ
Ñ
ô×
r=σ
ÇÔ Ø Ö Ò Ô Ö ÓÙÑ Ö ÑôÒ Ò Ô ÖÓÙÑ
´¿º¾ µ Ø Ò Ñ Ñ ÒÛÒ ØÙÕ ÛÒ ´¿º¾ µ ´¿º¿¼µ ´¿º¿½µ ´¿º¿¾µ
ÓÐÓÙ {ui } ÓÑÓ ÑÓÖ
ri = σ −2 ln(ui) φi = 2πui+1 xi = ri cos φi xi+1 = ri sin φi ,
ÓÔ Ø ÔÖÓ ÔØ ÓÐÓÙ {xi } ÔÓÙ Ò ÔÖÓ Ö ÑÑ Ø ×Ñ
Ø
×Õ Ø
×ÙÒ ÖØ ×
½
Gaussian ØÙÕ Ó Ö ÑÓ½ º Ç σ = 1 Ò Ø Ô Ö ØÛ
Μπορεί να δειχθεί ότι τα xi , xi+1 είναι στατιστικά ανεξάρτητα.
54
Ã
ï Ä ÁÇ ¿º Ç ÌÍÉ ÁÇË È ÊÁÈ ÌÀÌÀË
/************************ gausran() *****************************/ #define PI2 6.2831853071795864769 double gausran(){ double r,phi; static int new = 1; static double x; if(new){ new = 0; phi = PI2*drandom(); if( (r=drandom()) == 0.0) r=drandom(); r = sqrt(-2.0 * log(r)); x = r * cos(phi); return r * sin(phi); } else{ new = 1; return x; } }
ÌÓ ÔÓØ Ð ×Ñ Ò Ø ×ØÓ ËÕ Ñ ¿º¾º¾º À Ñ Ò ÓÑÓÖ ×ØÓÒ ÔÖÓ¹ Ö ÑÑ Ø ×Ñ Ò Ø× ÖÑÓ Ø
´¿º¾ µ Ô Ö ÓÙÑ ¾ ØÙÕ ÓÙ
Ö ÑÓ
Òô ×ÙÒ ÖØ × Ô ×ØÖ ØÓÒ Ò º ØÓ Ð Ó ÙØ ×ÙÒ ÖØ × Ø Ö ÑÒ Ñ ØÓ Ò ÔÖ Ô Ò Ô Ö ÒÓ Ö Ó Þ Ù Ö ´ × Ñ ´flagµ newµ Ò Õ Ø Ò Ø Ñ Ò
Ô ØÓÙ
ØÙÕ ÓÙ
Ö ÑÓ
´Ñ Ø Ð Ø xµº Ç Ø Ñ
ØÛÒ Ñ Ø Ð ØôÒ ÙØôÒ Ô Ö Ñ ÒÓÙÒ ×Ø ÑÒ Ñ Ñ Ø Ô Ø Ò Ô ×ØÖÓ Ô Ø ×ÙÒ ÖØ × ÐôÒÓÒØ
Ø
Û
static
static int new = 1; static double x;
Ô×
ØÓ ÔÖ Ö ÑÑ Ð Õ ØÓ r Ò Ò Ñ Ñ Ò º Ò Ò ÒÔ Ö ÓÑ Ò ×Ø × Ö Ø Ò drandom() ÓÔÓ ÐÜ Ò
if( (r=drandom()) == 0.0) r=drandom();
À Ò ÐÙ× ØÛÒ ÔÓØ Ð ×Ñ ØÛÒ ÐÓ ×Ñ º ÒØ × ×º Ò Ø ×ÙÒÓ ÙØ
¿º¿º
Å Ä ÌÀ ÌÇÍ ÌÍÉ ÁÇÍ È ÊÁÈ ÌÀÌÀ
55
0.45 0.4 0.35 0.3 0.25 0.2 0.15 0.1 0.05 0 -5 -4 -3 -2 -1 0 1 2 3 4 5
Η σχετική συχνότητα κατανομής των ψευδοτυχαίων αριθμών που παράγονται από την συνάρτηση gausran(). Το ιστόγραμμα υπερτίθεται στην γραφική παράσταση της (3.24) .
ËÕ Ñ ¿º
¿º¿
Å Ä ÌÀ ÌÇÍ ÌÍÉ ÁÇÍ È ÊÁÈ ¹ ÌÀÌÀ
ÖÕ Ô Ö ØÓÙÑ ØÓ ÔÖ Ö ÑÑ ÔÓÙ Û ÓÔÓ ØÓÒ Ð Ö ÑÓ ÔÓÙ Ô Ö ¹ Ö Ý Ñ ×ØÓ Ø ÐÓ
ØÓÙ ÙÔÓ Ð ÓÙ ¿º½º ÌÓ ÔÖ Ö ÑÑ ÔÓ Ø ×ØÓ ÖÕ Ó rw.c
/********************************* rw.c ******************************/ #include #define Nwalk 1000 #define Nstep 100000 double drandom(); int main (){
56
Ã
ï Ä ÁÇ ¿º Ç ÌÍÉ ÁÇË È ÊÁÈ ÌÀÌÀË
int iwalk,istep,ir; double x,y; FILE *fp,*fpR; fpR=fopen("dataR","w"); for(iwalk=1;iwalk<=Nwalk;iwalk++){ x=0.0;y=0.0; fp=fopen("data","w"); for(istep=1;istep<=Nstep;istep++){ ir=(int)(drandom()*4); switch(ir){ case 0: x += 1.0; break; case 1: x -= 1.0; break; case 2: y += 1.0; break; case 3: y -= 1.0; break; } fprintf(fp,"%f %f\n",x,y); }//istep fclose (fp); sleep (2 ); fprintf(fpR,"%f\n",x*x+y*y); fflush (fpR); }//iwalk }//main
ËØÓ ÔÖ Ö ÑÑ ÙØ ÖÕ Û ÓÔÓ Ó Ñ × Ð Ö ØÓ Ñ Ó
ØÛÒ ÖÓÑôÒ Nstep ØÓÒ Ö Ñ ØÛÒ ÖÓÑôÒ Nwalkº ÇÔ Ø Ø Ò ÐÐ ØÛÒ Ô ¹ Ö Ñ ØÖÛÒ ÙØôÒ Ô Ø Ø Ô Ò Ñ Ø ÐÛØØ ×Ñ
ØÓÙ ÔÖÓ Ö ÑÑ ØÓ
º Ì ÔÓ¹ data ר ÓÔÓ ÔÓ ¹ Ø Ð ×Ñ Ø Ñ
Ø ÔÓ ÓÙÑ ×Ø ÖÕ dataR 2 Ø
×ÙÒØ Ø Ñ Ò
ØÛÒ ÓÙÑ ØÓ Ø ØÖ ÛÒÓ ØÓÙ Ñ ÓÙ
Ø
ÖÓÑ
R
¿º¿º
Å Ä ÌÀ ÌÇÍ ÌÍÉ ÁÇÍ È ÊÁÈ ÌÀÌÀ
× Ñ ÛÒ (x, y) ÔÓÙ Ô × ÔØ Ø Ó Ô Ö Ô Ø Ø
ÒØ×ØÓ Õ × Ì ÖÕ ÒÓ ÓÙÒ Ö Ý ÑÓ Ñ Ø
ÒØÓÐ
ÖÓÑ º
fpR=fopen("dataR","w"); fp=fopen("data","w");
ÔÓÙ Ô ×ØÖ ÓÙÒ Ô Ò pointer × FILE structureº À Ó "w" ר ×Ù¹ Ò ÖØ × fopen() Ò ØÓ pointer × ÑÓ Ö Ý ÑÓ Ô Ø Ò ÖÕ ØÓÙ ÖÕ ÓÙ¸ ÓÔ Ø Ø Ô Ö Õ Ñ Ò ÔÓÙ ÑÔÓÖ Ò ÙÔ ÖÕ Ò ×Ø ÖÕ ÙØ Õ ÒÓÒ¹ Ø ½ º ËØ ÖÕ Ö ÓÙÑ Ñ Ø ×ÙÒ ÖØ × fprintf() ÕÖ × Ø
ÓÔÓ
Ò Ò ÐÓ Ñ ÙØ Ø
printf() Òô Ø Ð ÒÓÙÑ Ñ Ø Ò ×ÙÒ ÖØ × fclose()º Ò ÒÓÙÑ Ø Ô Ö Õ Ñ Ò ØÛÒ ÖÕ ÛÒ Ñ × ×Ѹ Ø ÞÓÙÑ Ø buffers Ñ Ø ×ÙÒ ÖØ × fflush()º È Ö Ø ÖÓ Ñ ØÓ ÖÕ Ó data ÒÓ Ñ ÒÞ Ø ×Ø Ò ÖÕ ÖÓÑ
¸ ÓÔ Ø × ×Ø Ñ Ô Ö Õ Ø
×ÙÒØ Ø Ñ Ò
Ñ
Ñ ÒÓ ÖÓÑ
º ËØ Ò ÖÕ ÖÓÑ
Ñ ÒÞÓÙÑ Ø × ØÓÙ Ô Ö Ô Ø Ø Òô 2 ×ØÓ Ø ÐÓ
Ø Ö ÓÙÑ ØÓ (Ñ Ó
) = x*x+y*y Ø
Ø Ð
ØÓÙ ×
×ØÓ ÖÕ Ó dataR
for(iwalk=1;iwalk<=Nwalk;iwalk++){ x=0.0;y=0.0; .... make one random walk .... fprintf(fpR,"%f\n",x*x+y*y); fflush (fpR); }//iwalk
À ÒØÓÐ dataRº Ã
fflush (fpR);
Ö ×
Ñ×
Nstep
ØÓÒ
Ö
Ñ ×ØÓ
x*x+y*y רÓ
ÖÕ Ó
ÖÓÑ
Ø Ð Ø
ÑØ
Ö
ÕÓ
for(istep=1;istep<=Nstep;istep++){ .... }//istep
ÔÓÙ Ó ×ØÓØ
½
ÔÐ ØÓ ØÙÕ Ó ÒÙ×Ñ ξistep ÙØ ÔÖÓר Ø × ristep = (x, y)º ÌÓ ξistep Ô Ð Ø ×Ø Ö ÑÑ
ר Ò
Η οδηγία "a" προσθέτει περιεχόμενα στο τέλος του αρχείου (append) ενώ η οδηγία "r" ανοίγει το αρχείο για διάβασμα. Για περισσότερες πληροφορίες δώστε την εντολή % man fopen.
Ã
ï Ä ÁÇ ¿º Ç ÌÍÉ ÁÇË È ÊÁÈ ÌÀÌÀË
ir=(int)(drandom()*4);
ÔÓÙ Ó ir = 0, 1, 2, 3 Ð Û ØÓÙ Ø Ð ×Ø ´castµ ´intµ ÔÓÙ ÔÐ ØÓ Ñ ÖÓ
ÒÓ
doubleº Ç Ø Ñ
ØÓÙ ir ÒØ ×ØÓ ÕÓ Ò ×Ø
Ø ×× Ö
ÙÒ Ø
Ø Ñ
ØÓÙ ξº À Ò Ñ ÖÛ× Ø
×
ØÓÙ Ô Ö Ô Ø Ø Ò Ø Ñ ØÓ switch() construct ÔÓÙ Ò ÐÓ Ñ Ø Ò Ø Ñ ØÓÙ ir Ò Ñ ÖôÒ Ø
×ÙÒØ Ø Ñ Ò
ÔÓÙ Ñ Ø ÐÐÓÒØ ר Ò ÒØ×ØÓ Õ ÙÒ× º ÂÙÑÞÓÙÑ ×ØÓÒ Ò Òôר Ø ÕÖ × ØÛÒ Ø Ð ×ØôÒ += ´-=µ ÔÓÙ ÙÜ ÒÓÙÒ ´Ñ ôÒÓÙÒµ ØÓ Ö ×Ø Ö Ñ ÐÓ
Ø Ø Ò ÔÓ× Ø Ø ÔÓÙ Ò ×ØÓ Ü Ñ ÐÓ
º Ô×
ØÓÒÞÓÙÑ ×ØÓÒ Ò Òôר Ø ×Ø Ò ÔÐ ÙØ ÑÓÖ ØÓÙ ÔÖÓ Ö ÑÑ ØÓ
Ô Ö ÓÙÑ Ô ÒØ Ø Ò ÓÐÓÙ Ý Ù ÓØÙÕ ÛÒ Ö ÑôÒ¸ Ö ÓÐÓÙ ØÙÕ ÛÒ ÖÓÑôÒ¸ Ñ drandom() ×Ô ÖÒ Ø Ô ÒØ Ñ ØÓÒ ÖÕ Ø ×Ø × º ÒØ ×× Ñ Ø ÓÐ ØÓÙ ô ôר Ò Ö Ó Ô Ö ÓÖ ×Ñ
ÙØ
º Ø Ñ Ø ÐôØØ × ØÓÙ ô Ø Ð × ØÓÙ ÔÖÓ Ö ÑÑ ØÓ
ÒÓÙÑ Ø
ÒØÓÐ
% cc rw.c drandom.c -o rw % ./rw
ÔÓÙ Ñ
Ò ØÓ Ø Ð × ÑÓ ÖÕ Ó Ø
ÒØÓÐ
sleep(2)¸ ØÓ ÔÖ Ö ÑÑ ÔÓÙ ÓÐÓ Ð ÖôÒ Ø Ñ ÖÓÑ ´ ÔÓÐÐ
ÖÓÑ
µº ÙØ Ñ
Ô ØÖ Ø
ÖÓÑ
ÔÓÙ Ô Ö ÓÒØ º Ã Ø ØÖ Õ ôר Ø
ÒØÓÐ
% gnuplot gnuplot> plot "data" with lines
rw ÔÓÙ ØÖ Õ ØÓ ÔÖ Ö ÑÑ º Ä Û ×Ø Ñ Ø ¾ ÙØº ÓÖ Ö ×Ø Ø Ò Ø Ò ÐØ Ò ÔÖ Ô Ò Ô Ö ÓÐÓÙ ×ÓÙÑ Ö Ø Ö ÔÓÙ ØÓ ÔÖ Ö ÑÑ
Ø
ÔÒÐ ÙØ ØÓ ×ÙÒÓ ÙØ
Ø
Ø Ò Ø Ð ÙØ ÒØÓÐ × ÙØ Ñ Ø ÕÖ × ÑÓÔÓ ÐÓ ×Ñ
×
ÓÖ
ÐØº Ò ×Ø ØÓ script eternal-rw
Ô
Ò Ø
% ./rw & % ./eternal-rw & % killall rw eternal-rw gnuplot
ÔÓÙ Ø Ò Ø Ð ÙØ ÒØÓÐ Ø Ø Ð × ØÛÒ ÔÖÓ Ö ÑÑ ØÛÒº
Ò Ø
Ù×
Ò
Ø ÖÑ Ø× Ø
ØÒ
¿º¿º
Å Ä ÌÀ ÌÇÍ ÌÍÉ ÁÇÍ È ÊÁÈ ÌÀÌÀ
59
100
50
0
-50
-100 -100 -50 0 50 100
ËÕ Ñ ¿º
4 τυπικές διαδρομές του τυχαίου περιπατητή για N = 10000.
ËØÓ ËÕ Ñ ¿º¿ Ô Ö Ø ÒØ ØÙÔ
ÖÓÑ
Ô ØÓ ØÖ Ü ÑÓ ØÓÙ Ô Ö Ô ÒÛ ÔÖÓ Ö ÑÑ ØÓ
º ËØÓ ËÕ Ñ ¿º¿ ÒÓÒØ Ø ÔÓØ Ð ×Ñ Ø N = 10, . . . , 100000 Ø ÓÔÓ Ô ôÒÓÙÒ Ø Ø Ò ÔÓ× Ø Ø R2 2 ×Õ × ´¿º½¼µ R = Nº ÌÓ ×Õ Ñ ÙØ ÑÔÓÖ Ò Ò Ô Ö Õ Û
Ü
½º  ØÓÙÑ rw.cº ¾º Å Ø Ø
Nwalk ÖÓ Ñ Ø Ò ØÓÒ
Nstep ר
Ô ÙÑ Ø
Ø Ñ
×ØÓ ÒØÓÐ sleep(2);
ÖÕ Ó
ÐÛØØÞÓÙÑ
ô
Ñ
ØÒ
ÒØÓÐ
% cc rw.c drandom.c -o rw
¿º ÌÖ ÕÓÙÑ dataR
% ./rw
ØÓ ÔÖ
Ö ÑÑ
Ò Ð ÓÙÑ
Ø
ÓÑ Ò
Ô
ØÓ
ÖÕ Ó
60
Ã
ï Ä ÁÇ ¿º Ç ÌÍÉ ÁÇË È ÊÁÈ ÌÀÌÀË
16 14 12 ln
2
10 8 6 4 2 2 4 6 8 10 ln N 12 14 16
Αριθμητική επιβεβαίωση της σχέσης R2 = N για N = 10, . . . , 100000. Η ευθεία γραμμή είναι προσαρμογή της συνάρτησης y = ax με a = 0.9994(13) και χ2 /(δοφ) = 0.25
ËÕ Ñ ¿º
% awk ’{av+=$1}END{print av/NR}’ dataR
ר ÔÖ ØÓ av of ºÅ Ù
× Ñ ôÒÓÙÑ Ø ÔÓØ Ð ×Ñ Ø × Ò ÖÕ Ó r2.dat × Ó 2 Ð
Ñ ØÓ Ñ Ó
ØÛÒ ÖÓÑôÒ N ØÓ ÙÔÓÐÓ Þ Ñ ÒÓ R º ÌÓ Ø Ò ÔÖôØ ×Ø Ð Ö ÑÑ awk Ñ Ø Ò ÒØÓÐ {av+=$1} ÔÖÓ× Ø Ö ÑÑ
ØÓÙ ÖÕ ÓÙ dataR ר Ñ Ø Ð Ø av Òô Ó × ÖÕ Ó Ñ Ø Ò ÒØÓÐ END{print av/NR} ØÙÔôÒ Ø ÑØ ÐØ Ö Ñ Ò Ñ ØÓÒ Ö Ñ ØÛÒ Ö ÑÑôÒ ×ØÓ ÖÕ Ó NR ‘‘Number Records’’¸ к ØÓ Ñ ×Ó ÖÓ Ø
ÔÖôØ
ר Ð
ØÓÙ dataRº Ø Ñ Ó Ó ØÛÒ Ð ÕרÛÒ Ø ØÖ ôÒÛÒ Ö× ÓÙÑ Ø ÐØ ר y = ax + b ÔÓÙ Ô ÖÒ Ô Ø × Ñ ´ln N¸ln R2 µº ØÓ Ö ÑÑ Ñ Ø
ÒØÓÐ
ºØ
ÕÒÓÙÑ
% gnuplot
¿º¿º
Å Ä ÌÀ ÌÇÍ ÌÍÉ ÁÇÍ È ÊÁÈ ÌÀÌÀ
61
gnuplot> a = gnuplot> b = gnuplot> plot "r2.dat" using (log($1)):(log($2)), a*x+b
ÔÓÙ Ò Ó ØÛÒ Ð ÕרÛÒ Ø ØÖ ôÒÛÒº Ù× Ø Ô Ö Ô ÒÛ Ø ×Ø Ø ×Ø × ÐÑ Ø ×Ø Ø ×Ø
ÔÓ× Ø Ø
¸ Ô ÖÛÒ Ñ ØÖ × ÛÒ Ñ Ñ Ñ ØÖ × ÛÒº Å ØÓÙ
ÖÓÑ
´Ñ ØÓ × ÐÑ ×Ø
Ñ ØÖ ×
δ R2 =
Ø Ñ
ÔÓÙ ÙÔÓÐÓ × Ø
Ñ
Ø Ò
Ñ
ÓÓ
ÔÓØ Ð ×Ñ Ø Ò ÕÓÙÒ Ò Ñ Ò ÔÓÙ ÙÔ × ÖÕÓÒØ º Å ÔÖ Ò Ñ Ò Ñ Ò Ø√ ÔÖÓ× Ñ Þ Ø Ø Õ Ø Ø ∼ 1/ M ÔÓÙ M Ó ÓÖ Ô Ö ÓÙÑ ×ØÓÕ ×Ø Ò ÖÓÑ Ò Ò Ü ÖØ Ø Ô Ø
Ñ
Ò Ø Ô Ø ×Õ ×
M 2 (Ri )2 −
ÒÛÖÞÓÙÑ Ø ×ØÓ Ö Ó Ö Ñ
ØÛÒ Ü ÖØ Ø
Ñ Ø Ü ÔÖÓ Ó Ñ Ò
µ½ ¸ ´¿º½ µ ¸ кպ
´¿º¿¿µ
ÌÓ × ÐÑ ÔÖ Ö ÑÑ ÑÓÖ Ó Ø
ÙÔÓÐÓ Þ Ø ÓÐ Ø ÔÖÓ× ØÓÒØ
ØÓÒ ÙÔÓÐÓ rw.c Ø Ö ØôÒØ
ØÓ × ÔÖ Ö ÑÑ ×Ø ÙÒ ÒÓÒØ
Ø Ò ´ Ô Ò Ð Ñ Ò Ñ Ò µ ÖÛÑÓ ÓÙÐ ÔÖÓ Ö ÑÑ Ø ´utilitiesµ ÔÛ
ØÓ Ô Ö ØÛ ÖÕ Ó
1 1 M −1 M
i=1
1 M
M 2 Ri i=1
2
×Ñ ×ØÓ Ø Ò ÔÐÓ ×Ø Ö × ÜÛØ Ö average
#!/bin/awk -f { av += $1; # the sum of data er += $1*$1; #$ the sum of squares of data } END{ av /= NR; # NR = "Number of Records" = number of lines er /= NR; # formula for error of uncorrelated measurements er = sqrt( (er - av*av)/(NR-1) ); print av, "+/-", er; }
Αν υπάρχει στοχαστική εξάρτηση τότε αυτή πρέπει να ληφθεί υπ’οψη όπως θα δούμε στα επόμενα κεφάλαια.
½
62
Ã
ï Ä ÁÇ ¿º Ç ÌÍÉ ÁÇË È ÊÁÈ ÌÀÌÀË
ÌÓ Ô Ö Ô ÒÛ ÖÕ Ó Ò ÔÖ Ñ Ô script ØÓ ÓÔÓÓ ÖÑ Ò Ø Ô ÔÓ Ó ÔÖ Ö ÑÑ ¸ ר ×Ù Ö Ñ Ò Ô ÖÔØÛ× ØÓ ÔÖ Ö ÑÑ awkº ÙØ Ò Ø ÒØ Ð ÔØ Ô ØÓ Ð ØÓÙÖ × ×Ø Ñ Ô Ø Ò ÔÖôØ Ö ÑÑ #!/bin/awk -f ÔÓÙ Ð ØÓ ÔÖ Ö ÑÑ ØÒ Ø Ð ×Ø ØÓ ÖÕ Ó average Û
Ñ ÓÔÓ ÔÓØ ÒØÓÐ º Ò Ò ÙØ ¸ Ó Ö ÝÓÙÑ ØÓ ÖÕ Ó¸ ØÓÙ ÒÓÙÑ Ø Ð × Ñ ÔÖ × × Ñ Ø Ò ÒØÓÐ
% chmod a+x average
ר
×ÙÒ Õ
ØÓ
Ø ÐÓ Ñ
кպ
Ô ÒÛ ×ØÓ
ÖÕ Ó dataR
% ./average dataR
Ç
ÒØÓÐ
ÔÓÙ Ô Ö ÕÓÒØ ×ØÓ ÖÕ Ó Ò Ô Ö ÑÓ
Ñ ÙØ
ÑÔÓÖÓ × Ñ Ò ô×ÓÙÑ ÔØ Ö ÑÑ ÒØÓÐôÒ¸ ÔÛ
Ü Ñ Ô ÔÓÙ ÙÔÓÐÓ × Ñ Ñ ÒÓ ØÓ Ñ ×Ó ÖÓº Ç ÒØÓÐ
ÔÓÙ ÕÓÙÑ Ñ Ø Ü ººº } Ø ÐÓ ÒØ Record ´ к ô Ö ÑÑ ÔÖÓ
Ò ÐÙ× ÖÕ ÓÙµ Ø
ÙØ
ÔÓÙ Ò Ñ Ø Ü END{ ... } Ø ÐÓ ÒØ Ó ×Ø ÐÓ ØÓ ÖÕ Ó½ º ÇÔ Ø Ó Ö ÑÑ
av += $1; er += $1*$1; # the sum of data #$ the sum of squares of data
ÔÓÙ Ö Ô ÒÛ { ØÓÙ ÔÓÙ
ÔÖÓ× ØÓÙÒ ×Ø
Ñ Ø Ð Ø
av er Ø Ò Ø Ñ Ö ÑÑ
ØÓÙ ÖÕ ÓÙ dataR ØÓÙ Ø ØÖ ôÒÓÙ Ö ÑÑ
av /= NR; er /= NR;
Ø
ÔÖôØ
ר Ð
ÙØ
ÒØ×ØÓ Õ º Ç
# NR = "Number of Records" = number of lines
Ø ÐÓ ÒØ Ó ×Ø ÐÓ ØÓ ÖÕ Ó dataR ÖÓ Ò Ø
Ô Ö Ô ÒÛ Ñ Ø Ð Ø
Ñ Ø Ò ÔÖÓÓÖ ×Ñ Ò Ñ Ø Ð Ø Ø
awk NR ÓÔÓ × ×Ø Ñ Õ Ø Ñ × Ñ ØÓÒ Ö Ñ ØÛÒ Ö ÑÑôÒ ØÓÙ ÖÕ ÓÙ ÔÓÙ Õ Ô Ü Ö ×Ø ØÓ ÔÖ Ö ÑÑ º Ç Ø Ð ÙØ
Ö ÑÑ
ØÓÙ script ÒÓÙÒ ØÓÒ Ø Ð ÙÔÓÐÓ ×Ñ ØÓÙ × ÐÑ ØÓ
× Ñ ÛÒ Ñ Ø ×Õ × ´¿º¿¿µ ØÙÔôÒÓÙÒ ØÓ ÔÓØ Ð ×Ñ º ËÙÒÓÝÞÓÒØ
ÔÖÓØ ÒÓÙÑ Ø Ò Ô Ö Ô ÒÛ × Ö ÒØÓÐôÒ ØÑ ØÛÒ Nstep ÔÓÙ Ô Ð ÓÙÑ ´ ÓÑ ÒÓ Nwalkµ
Υπάρχει και η δυνατότητα εκτέλεσης εντολών πρίν διαβαστεί το αρχείο (για λ.χ. αρχικοποίηση μεταβλητών) όταν αυτές είναι μεταξύ BEGIN{ ... }
½
¿º¿º
Å Ä ÌÀ ÌÇÍ ÌÍÉ ÁÇÍ È ÊÁÈ ÌÀÌÀ
¿
% cc rw.c drandom.c -o rw % ./rw % ./average dataR ... collection of data with errors in a file r2.dat ... % gnuplot gnuplot> plot "dataR" with lines gnuplot> quit ..after all values of Nwalk have been analyzed and a,b calculated.. % gnuplot gnuplot> a = gnuplot> b = gnuplot> plot "r2.dat" using (log($1)):(log($2)):($3/$2) with err, a*x+b
Ù× ÔÛ
Ö ÓÖ Ò ×ØÓÒ Ô Ñ Ð Ò Òôר ¸ ÓÙÐ Ò Ø Ö ÓÖ ÔÓÐÐ ¸ Ô Ò Ð Ñ Ò Ñ Ò ººº ÓÙÖ ×Ø º ØÓÙ
ºººØ ÑÔ Ð
½ ÔÖÓØ ÒÓÙÑ Ò Ñ Ð Ø ×ÓÙÒ Ø × Ò Ö ÐÓ Ó ´shell scriptsµ ÔÓÙ ÖÓÙÒ ×ØÓ ×ÙÒÓ ÙØ ÐÓ ×Ñ ´ к ×Õ Ø ØÓ rw1-anal.csh Ó ÑÛ
ÔÓ Ø ×ÓÙÒ Ø Ò ÑÔ Ö Ø
ÓÙÐ
ÔÓÙ ÔÖÓØ Ò Ñ Ô Ö Ô ÒÛº È Ö ×× Ø Ö ÙØ ר ÔÑÒ Ð º
¿º¿º½ À ÏÅ ÌÊÁ ÌÏÆ ÌÍÉ ÁÏÆ Á Êǹ
ÅÏÆ
×Ò Ò Ð ×ÓÙÑ Ñ Ñ Ð Ø Ö Ð ÔØÓÑ Ö Ø ÛÑ ØÖ Ñ ×Ø ØôÖ × Ñ
ØÙÔ
ÖÓÑ
ØÓÙ ØÙÕ ÓÙ Ô Ö Ô Ø Ø º À ÔÖôØ ÔÐ ÖÓ ÓÖ ÔÓÙ ÕÓÙÑ ÔÖ Ò ×Õ × ´¿º½½µ R2 = Nº ÙØ Õ ÖÑ Ò ÙØ Ò Ø Ó Ñ × Ò ×Õ × Ñ Ø Ø Ô ×
ÕÖ ÒÓÙ Ø Ó ØÙÕ Ó
Ô Ö Ø Ö Ø
´ÙÔ Ø ×Ø Ø ×Ø ÒÒÓ µ Ò ÒØ Ñ Ð ×× ØÕØØº Ì ×Õ Ñ Õ ØÙÔ ØÖÓÕ ÔÓÙ ÓÐÓÙ Ò Ñ ÑÓÒÓ ×Ø Ø Ð ×× ØÖÓÕ Ø Ô Ó Ô ÖÔÐÓ Ó Ò ÕØÓ Ñ Ø R2 Ò Ñ ØÙÔ ÐÑ Ñ ÓÙ
ÔÓÙ ÓÖÞ ØÒ Ø × ØÓÙ ×Õ Ñ ØÓ
ÔÓÙ ÞÛ Ö Þ Ó Ô Ö Ô Ø Ø
×ØÓ ÕôÖÓ Ø Ø ×Õ × ´¿º½½µ ÙÔÓ Ò Ñ Ò Ø
Ø ØÓ Ñ Ó
Ø
ØÖÓÕ
N ÒØ ×ØÓ Õ ×ØÓ ØÙÔ Ô Ö ÓÕ
´ ÓÙ Ò Ø × Ñ ÔÓÙ Ô × ÔØ Ø Ó Ô Ö Ø Ö Ø
µº ÇÔ Ø Ô Ö Ñ ÒÓÙÑ ØÓ ÖÓÑ
ÔÓÙ ÓÐÓÙ Ó Ô Ö Ô Ø Ø
ÒØ ×ØÓ ÕÓ Ò ×Ñ ×Ø Ø Ô Ò Õ×Ñ ÑÓÒÓ ×Ø Ø ÑÔ Ð
½
Κυκλοφορεί πως πρόκειται για ... αρετή για όσους δουλεύουν σε βαριούς υπολογισμούς
Ã
ï Ä ÁÇ ¿º Ç ÌÍÉ ÁÇË È ÊÁÈ ÌÀÌÀË
Ó ÔÖ Ñ Ø ØÙÕ Ó
Ô Ö Ô Ø Ø
Ò Ô Ö ÓÖÞ Ø Ò ÑØ ÒØ × Ò ÔÐ Ñ ´× ÓÖ ×Ñ Ò
к Ù Ò×
Ñ ÓÖ ×Ñ ÒÓÙ Ñ ÓÙ
Ñ µ ÔÓÙ ÕÓÙÑ ÔÓÐÐ ÔÐ
Ô × Ý
ØÛÒ ÛÒ × Ñ ÛÒ Ô ÐÝ
Ñ ØÛÒ¸ ÐÐ ÐÔÞÓÙÑ ÔÛ
×ØÓ Ö Ó Ñ ÐÛÒ ÖÓÑôÒ Ø ØÓ ÑÓÒØ ÐÓ Ñ
Ô× Ø × Õ Ö Ø Ö ×Ø ØÓÙ ÔÖ Ñ Ø ØÙÕ ÓÙ Ô Ö Ô Ø Ø ÔÛ
ÒØÛ
×ÙÑ Ò º À ØÖÓÕ ÔÓÙ ÓÐÓÙ Ó ØÙÕ Ó
Ô Ö Ô Ø Ø
Õ Ö Ø ÖÞ Ø Ô ÓÖ
ÐÑ
Ñ ÓÙ
» Ñ Ó ÔÓÙ ÒÒôÒØ ÙÒ Ñ º À Ñ Ò Ó Ô Ö Ô Ø Ø
º À ÔÓ× Ø Ø ØÓ Ñ Ò A Ø
Ô Ö ÓÕ
ÔÓÙ Ô × ÔØ Ø ÙØ ×Õ ØÞ Ø ÔÛ
ÓÑ Ñ × Ñ ØÓ Ñ Ó
Ø
ÖÓÑ
N ÑÔÓÖ Ñ ÖÓ× ÓÔ Ò ÓÖ ×Ø Ñ ÓÖÓÙ
ØÖ ÔÓÙ
º À ÐÐ Ò Ô ÖÑ ØÖÓ
lp ¸ к Ø × Ñ Ò ÔÓÙ Ö× ÓÒØ ×ØÓ Ö Ó Ø
Ô Ö ÓÕ
ÔÓÙ Ö Ó Ô Ö Ô Ø Ø
º Ô×
Ñ× Ô ×Ø × × Ñ ÛÒ lav Ñ ×Ø Ô ×Ø × lmax Ò ÐÐ
ÐÑ
Ñ ÓÙ
ÔÓÙ ×Õ ØÞÓÒØ Ñ ØÒ Ø × Ø
ØÙÕ
ÖÓÑ
º Ò ÔÖ Ñ Ø ÕÓÙÑ ØÓ Ñ Ð ×× ÔÓØ Ð ×Ñ Ø ØÙÔ ØÙÕ ÖÓÑ Ò ×Ø Ø ¸ Ø Ø ÔÖ Ô Ò Ñ Ð Ø ×ÓÙÑ ×Õ ×
ÑÛ×
Ø
ÑÓÖ
A ∼ ld ´¿º¿ µ ×ÙÑÔØÛØ ×Õ × ×Ø Ö Ó N → ∞º À ר × ÔÓÙ ∼ × Ñ Ò Ø
ØÖÓÕ
d ÔÖ Ô Ò Ò ¾ Ò Ó Ô Ö Ô ÒÛ ×ÙÐÐÓ ×ÑÓ Ñ
Ò ×Û×ØÓº ÍÔ ÖÕ Ô ÒØ ÙÒ Ø Ø Ø ØÓ d Ò Ñ Ò Ò ¾ Ñ ÓØ Ö Ó
¸ Ø ÔÓÙ ×ÙÑ Ò × ÔÓ Ò ÙÑ Ò ÑÓÒØ Ð ØÙÕ ÛÒ ÖÓÑôÒº Ò ØÓ ×Õ Ñ Ø
ØÙÕ
ÖÓÑ
Ò Ò Ò Ð ×× ÑÓÒÓ ×Ø ØÓ ×Õ Ñ ÐÐ Ò fractalº Ò Ñ Ð Ø ×ÓÙÑ Ø Ò ÛÑ ØÖ Ø
ÖÓÑ
¸ ÕÖ ÞØ Ò ÓÖ×ÓÙÑ ØÓ ÕôÖÓ Ñ × ×ØÓÒ ÓÔÓÓ ÒØ Ó Ô Ö Ô Ø Ø
º ÙØ
Ò Ò Ø ØÖ ÛÒ ÔÐ Ñ Ñ Ø Ò ØÓÔÓÐÓ ØÓÙ torus ÔÛ
×ØÓ ËÕ Ñ ½º º ÌÓ ÔÐ Ñ Õ L ÔÐ Ñ Ø
×
× ÔÐ ÙÖ 2 L ×ÙÒÓÐ ÔÐ Ñ Ø × Ñ º À Ô ×Ø × a Ñ Ø Ü ØÛÒ ÔÐ Ñ Ø ôÒ × Ñ ÛÒ Ð Ñ Ò Ø Û
ÑÓÒ Ñ ØÖ ×
Ñ ÓÙ
´a = 1µ Ó ×
ØÓÙ Ô Ö Ô Ø Ø ÓÖÞÓÒØ Ô Ó Ö ÓÙ
´x¸yµ¸ Ø
×ÙÒØ Ø Ñ Ò
ÖÓÑ Ò Ñ ÓÐÓÙ ÔN ØÓÙ Ò ×Ñ ØÓ
rº Å ØÙÕ × Ñ ØÓÙ ÔÐ Ñ ØÓ
Ç ×ÙÒÓÖ ÐÐ ×Ø Ò
×ÙÒ ÒØ Ø
Ò Ô ÞÓÙÒ Ò Ò Ö ÐÓ Ò Ô ÖÓÙÑ L > N¸ Ô ÖÔØÛ× Ó ØÙÕ Ó
Ô Ö Ô Ø Ø
ÑÔÓÖ Ò Ø×
P = {rk | k = 1, . . . , N}
´¿º¿ µ
Ù×
¿º¿º
Å Ä ÌÀ ÌÇÍ ÌÍÉ ÁÇÍ È ÊÁÈ ÌÀÌÀ
ר × ÒÓÖ ØÓÙ ÔÐ Ñ ØÓ
ÓÔ Ø ×Ø Ò Ô ÖÔØÛ× ÙØ ÔÖ Ô Ò ÓÖÞÓÙÑ Ø ×ÙÑ Ò º Ù× Ò Ó ØÙÕ Ó
Ô Ö Ô Ø Ø
Ô ÖÒ ×ÙÕÒ ØÓ × ÒÓÖÓ¸ ØØ Ø ÔÓØ Ð ×Ñ Ø Ñ
ÕÓÙÒ bias Ô finite size effectsº Ô Ø ×Õ × R2 =√ Ò Ñ Ò Ø N Ø finite size effects Ò ÒÓÒØ ×ÕÙÖ L ∼ N½ º ×ÙÒ ÖØ × ×ÙÕÒ Ø Ø
h(r) ÔØ ÖÓÑ P ÓÖÞ Ø × Ñ Ó ØÓÙ ÔÐ Ñ ØÓ
¸ ÔÓÙ Ò × Ñ ØÓÒ Ö Ñ ÓÖôÒ ÔÓÙ Ó ØÙÕ Ó
ÔÖÔØØ
Ô× Ø ØÓ Ò Ð Û × Ñ Óº ÈÖÓ Òô
h(r) = N
r∈P
´¿º¿ µ
Ò Ô×
ÓÐ Ò ÓÖ×ÓÙÑ Ø Ò Ô Ö ÓÕ ÙØ Ó Ô Ö Ô Ø Ø
ØÓÙ ÔÐ
Ñ ØÓ
Ø Ò ÓÔÓ
Õ
A = {r | h(r) > 0}
´¿º¿ µ
ÌÓ Ñ Ò ØÓ ÓÖ×ÓÙÑ Ñ ØÖ
ØÖ ÔÓÙ
¸ ÔÓÙ ÔÛ
Ò N → ∞º ÃÓ Ø ÞÓÒØ
ØÓ ËÕ Ñ ¿º¿ Ó Ö Ñ
Ò ×Ó Ò ÑÓ ØÛÒ × Ñ ÛÒ ÔÓÙ Õ Ô × ÙØ Ó Ô Ö Ô Ø Ø
Ñ
ÒÓÙÒ ØÓÒ ÔÖôØÓ ÓÖ ×Ñ A1 = H(h(r)) = 1 = NA ´¿º¿ µ
r r∈A
ÔÓÙ H(x)
×ÙÒ ÖØ ×
Heavyside H(x) = 1 x>0 . 0 x≤0
´¿º¿ µ
к A1 Ò Ñ × Ø Ñ ØÓÙ Ö ÑÓ ØÛÒ × Ñ ÛÒ NA ÔÓÙ Ô Ö ÕÓÒØ ר Ò Ô Ö ÓÕ A ÔÓÙ Ô × Ø Ó Ô Ö Ô Ø Ø
º ÅÔÓÖÓ Ñ Ò ÓÖ×ÓÙÑ ØÓ Ñ ÒÒ ÔÓØ Ð Ø Ñ ÒÓ Ô ×ÛØ Ö ×Ñ Ðº A2 = G0 (r) ´¿º ¼µ
r
Για το λόγο αυτό μπορεί η εξοικονόμηση μνήμης/χρόνο CPU στο πρόγραμμα να είναι σημαντική για μεγάλες διαδρομές. Γενικά στους υπολογισμούς μας βρίσκουμε ότι για L ≈ √ (5−6) N είναι πρακτικά απίθανο να φτάνει ο παρατηρητής στο σύνορο του πλέγματος μια και 2 2 η πιθανότητα να φτάσει ο παρατηρητής σε απόσταση r από την αρχή P (r) ∝ 2πre−r /(2 R ) .
½
Ã
ï Ä ÁÇ ¿º Ç ÌÍÉ ÁÇË È ÊÁÈ ÌÀÌÀË
ÔÓÙ Ò Ò Ñ
h(r ′ ) > 0 ×ÙÒ ÖØ × G0 (r) = 1 Ø Ò h(r) > 0 ´r ∈ Aµ ÔÐ × ×Ø ÖÓ ØÓÒ r′ ØÓÙ r 0× ÐÐ Ô ÖÔØÛ× º Ì ÐÓ
Õ ÔÖÓ Ò
Ü ÖÕ
Ó ×Ûר Ø ÖÓ
ÓÖ ×Ñ
ØÓ Ñ Ò Ó A0 = N ´¿º ½µ
Ò Ó Ô Ö Ô Ø Ø
Ô × ÔØ Ø Ò × Ñ Ó Ô Ö ×× Ø Ö
Ô Ñ ÓÖ º Ç Ð Ó
Ò Ø Ó ØÙÕ Ó
Ô Ö Ô Ø Ø
Ø Ò Ô ×ØÖ ×ØÓ Ó × Ñ Ó ÙØ Ó Ð Ø ×ØÓ ÓÒ
Ø Ô Ö ÓÖ× Ñ Ø Ò Ò × Ô ÒÛ ×ØÓ ÔÐ Ñ ¸ Òô Ò Ø Ò Ð ÖÓ
Ô ÒØØ Ò Ô ×ØÖ Ý Ö ô
×ØÓ Ó × Ñ Ó ØÒÑ Òº ÇÔ Ø × Ñ ÛÒ Ñ ØÓÙ
Ô Ö Ô ÒÛ ÓÖ ×ÑÓ
ÕÓÙÑ Ñ ÖÓ× ÓÔ Ø
A0 > A1 > A2 .
´¿º ¾µ
ÙØ ÑÛ
ÔÓÙ ÖÓ Ñ Ò Ø N → ∞ Ó ØÖ
ÓÖ ×ÑÓ Ò ×ÙÑÔØÛØ ×Ó Ò ÑÓ º ÙØ Ò Ò ÔÖ Ñ ÔÓÙ Ñ ÔÓ× Ø Ø Ò ÙÒ Ø Ò Ò ÓÖ ×Ø Ñ Ñ ÑÓÒÓ× Ñ ÒØÓ ØÖ ÔÓ ×ØÓ ÔÐ Ñ ´Ñ ÖÓ× ÓÔ ÐÐ × Ñ Ð
ÐÑ
Ñ ÓÙ
´ÓÖ Þ Ñ Ò
Ò ÐÓ Ñ ØÓ ÔÖ Ð Ñ µ Ò Ò ×Ó Ò Ñ
º ÌÓ Ó ÖÓ Ñ ×Ø Ò ÔÖÓ×Ô Ñ
Ò ÓÖ×ÓÙÑ Ñ ÐÑ Ñ ÓÙ
ÔÓÙ Ò ÓÖÞ ØÒ Ø× Ø
ØÙÕ
ÖÓÑ
º Ç ÔÖôØÓ
ÓÖ ×Ñ
Ò Ô ×Ø × Ø
Ø Ð
× ØÓÙ Ô Ö Ô Ø Ø
l0 = R2
´¿º ¿µ
µ
Ø Ò ÓÔÓ
ÕÓÙÑ
Ö
Ø
2 A0 = l0
´¿º
µ
ËØ ×ÙÒ Õ ÓÖÞÓÙÑ ØÓ Ñ Ó
l1 Ò Ò Ñ × Ô ÖÑ ØÖÓ
lp ¸ к Ñ × Ø Ñ ØÓÙ Ö ÑÓ ØÛÒ × Ñ ÛÒ ÔÓÙ Ö× ÓÒØ ×ØÓ × ÒÓÖÓ Ø
Ô Ö ÓÕ
ÔÓÙ Ô ÖÔ Ø × Ó Ô Ö Ô Ø Ø
º
l1 = lp =
r
G1 (r) .
´¿º
µ
ÔÓÙ ×ÙÒ ÖØ × G1 (r) = 1 Ø Ò h(r) > 0 ´r ∈ Aµ ÙÔ ÖÕ ÔÐ × ×Ø ÖÓ
′ ′ ÒÕ Ô × ÙØ Ó Ô Ö Ô Ø Ø
º ØÓÒ
r Ñ h(r ) = 0¸ к ÔÓÙ Å ÐÐ ÐÑ Ñ ÓÙ
ÓÖÞ Ø Ô Ø Ñ× Ô ×Ø × ØÛÒ × Ñ ÛÒ lav ÔÓÙ Ò ÓÙÒ ×Ø Ò Ô Ö ÓÕ A ÔÓÙ Ô × Ø Ó Ô Ö Ø Ö Ø
º
¿º¿º
Å Ä ÌÀ ÌÇÍ ÌÍÉ ÁÇÍ È ÊÁÈ ÌÀÌÀ
Þ ÓÖÞÓÙÑ
Ó
ri , rj ∈ A ÙÔÓÐÓ ÞÓÙÑ
l2 = lav =
ØÒ
1 Nij
Ô ×Ø ×
2 rij ij
2 rij = (rj − ri )2
´¿º µ
ÔÓÙ Nij = NA (NA −1)/2 Ó Ö Ñ
ØÛÒ Þ Ù ôÒ ØÛÒ × Ñ ÛÒ ×Ø Ò Aº Ì ÐÓ
ÓÖ×ÓÙÑ Ø Ò ÐÑ Ñ ÓÙ
l3 ÔÓÙ ÓÖÞ Ø ÔØ Ñ ×Ø Ô ×Ø × lmax Ñ Ø Ü ØÛÒ × Ñ ÛÒ Ø
A
l3 = lmax = max{rij }
ij
´¿º µ
Ò Þ ØÓ Ñ
ØôÖ
×Õ ×
ÑÛ×
Ø
ÑÓÖ
i = 1, 2 , i = 1, 2, 3 .
´¿º µ ´¿º µ
Ai ∼ N ai li ∼ N bi
Ò Ó ÔÖÓ Ð Ý
Ñ
ØÒ ÛÑ ØÖ Ø
ØÙÔ
ÖÓÑ
ØÓÙ bi = 1/2º ÔÖÔØØ Ò ×Ûר
Ø Ø ai = 1 Ì ÔÓØ Ð ×Ñ Ø Ñ
×ÙÒÓÝÞÓÒØ ר ËÕ Ñ Ø ´¿º¿º½µ ´¿º¿º½µ ô
רÓÒ ÈÒ ¿º¿º½º È Ö Ø ÖÓ Ñ Ø Ó ×Õ ×
ÑÛ×
ÒÓÒØ ÒÖ
Ñ Ö
×Õ Ø ÖÓÑ
N 100º Ç Ø Ñ
ÔÓÙ Ô ÖÒÓÙÑ ØÓÙ
Ø
ai bi Ò ×ÙÒ Ô
Ñ Ø
Ò Ñ ÒÓÙ×
Ø
Ô ØÓÒ b1 º ÌÓ Ø Ð ÙØ Ó ÙØ ÔÓØ Ð ×Ñ ÙÔÓ ÐôÒ Ø ØÓ Ô Ö Ö ÑÑ ØÛÒ ØÙÕ ÛÒ ÖÓÑôÒ Ò Ò Ò Ð ×× ×Õ Ñ ×Ø × Ñ ÙØ Ø
Ô Ö ÓÕ
ÔÓÙ Ô Ö Ð ÐÐ Ò fractal Ñ Ðº Ø
A Â Ð ×ÓÙÑ ØÓ Ð Ó Ñ Ð ØôÒØ
Ø
×ÙÒ ÖØ ×
×ÙÕÒ Ø Ø
h(r)º ÙØ
Ñ
ô×ÓÙÒ Ò Ñ ØÖÓ Ø
Ø ×
ØÓÙ Ô Ö Ô Ø Ø Ò Ô ×ØÖ ×ØÓ Ó × Ñ Ó Ò Ø ØÖ ÔÓ Ø Ò Ñ ×ÙÒ ÖØ × ÔÙ Ò Ø Ø
ØÛÒ × Ñ ÛÒ ÔÓÙ Ô × ÔØ Ø Ó Ô Ö Ô Ø Ø
¸ Ø Ø Ò ÒÒÓ ÔÓÙ Ô Ñ Ô Ö Ô ÒÛ Ñ Ô Ö ÓÖÞÓÙÑ ØÓ Ô Ö Ô Ø Ø Ò ÒØ Ô ÒÛ ×ØÓ Ø ØÖ ÛÒ ÔÐ Ñ º ËØÓ ËÕ Ñ ¿º¿º½ Ð ÔÓÙÑ Ø ×ÙÒ ÖØ × h(r) ÓÖ Ø
ÖÓÑ
ØÓÙ ØÙÕ ÓÙ Ô Ö Ô Ø Ø N = 4096º È Ö Ø ÖÓ Ñ ÔÛ
Ø × Ñ ÔÓÙ Ø Ò Ò Ô × ÔØ Ø ×ÙÕÒ Ò ×Ù ÒØÖÛÑ Ò ÐÐ Ó Ô Ö ÓÕ
ÙØ
ÕÓÙÒ ØÙÕ Ø ÒÓÑ ´ÔÖ Ðº ËÕ Ñ ¿º¿µº ËØÓ ËÕ Ñ ¿º¿º½ Ð ÔÓÙÑ Ø ×ÙÒ ÖØ ×
hav (r) = h(r) ,
´¿º ¼µ
Ã
ï Ä ÁÇ ¿º Ç ÌÍÉ ÁÇË È ÊÁÈ ÌÀÌÀË
16 14 12 10 ln A 8 6 4 2 0 2 4 6 8 ln N 10 12 A1 A2 A0 14 16
ËÕ Ñ ¿º½¼ Αριθμητική επιβεβαίωση της σχέσης Ai = N ai για N = 32, . . . , 8388608 και i = 1, 2. Βρίσκουμε ότι a1 = 0.938(2), a2 = 0.968(2). Η ευθεία γραμμή αντιστοιχεί στο A0 ≡ N
ÓÔÓ ÕÒ ÓÒØ ר Ò ÖÕ
¿º¿º¾
Ò
ÙÐ
Ò
×ÙÑÑ ØÖ ¸ ×ÙÕÒ Ø Ö
ÔÛ
ÒÑÒØ Ô× ÝѺ
¸Ñ
Ø Ò Ô Ö ÓÕ
Æ ÄÍËÀ ÌÇÍ ÈÊÇ Ê ÅÅ ÌÇË
 Ø
Ò Ð ×ÓÙÑ ØôÖ ØÓ ÔÖ Ö ÑÑ ÔÓÙ ÕÖ × ÑÓÔÓ × Ñ Ò Ô ÖÓÙÑ ÔÓØ Ð ×Ñ Ø Ø
ÔÖÓ Ó Ñ Ò
Ô Ö Ö ÓÙº Ò ÒÓÙÑ Ø Ò Ò ÐÙ× Ø
ÛÑ ØÖ
ØÛÒ ØÙÕ ÛÒ ÖÓÑôÒ ÔÖ Ô Ò ÔÓ ×ÓÙÑ ×Ø ÑÒ Ñ Ø × Ñ ÔÓÙ Ô × Ø Ó Ô Ö Ô Ø Ø
º Ô ×Ø
Ñ ØÖ ×
ÔÓÙ ÒÓÙÑ Ò Ô Þ Ö ÐÓ × Ö ÔÓÙ Ø Ô× Ø ¸ Ò ÓÐ Ò ÔÓ ×ÓÙÑ ÔÐ Ø ×ÙÒ ÖØ × h(r)º ØÓ Ð Ó ÙØ ÔÖ Ô Ò ÖÓ Ñ Ò ÔÓØ Ð ×Ñ Ø ØÖ ÔÓ Ò Û ÓÔÓ ×ÓÙÑ × ÛÒº Ø
×ÙÒØ Ø Ñ Ò
ØÛÒ ÔÐ Ñ Ø ôÒ L ÔÐ Ñ Ø
×
× ÔÐ ÙÖ Ò ØÓ Ø ØÖ ÛÒ ÔÐ Ñ Õ ØÓÙ¸ ÔÐ Ñ Ø × ÑÔÓÖ Ò Û ÓÔÓ ÞÓÒØ
Ø Ò ı ÖÕ ØÛÒ Ü ÒÛÒ ×Ø Ñ ÛÒ ØÓÙ ÔÐ Ñ ØÓ
ØÓÒØ
r = xˆ+
¿º¿º
Å Ä ÌÀ ÌÇÍ ÌÍÉ ÁÇÍ È ÊÁÈ ÌÀÌÀ
9 8 7 6 5 4 3 2 1 0 2 4 6
ln l0 ln √l1 ln l2 ln l3 ln √A0
8
10 ln N
12
14
16
ËÕ Ñ ¿º½½ Αριθμητική επιβεβαίωση της σχέσης li = N bi με N = 32, . . . , 8388608 για i = 0, 1 και N = 32, . . . , 65536 για i = 2, 3. Βρίσκουμε ότι b0 = 0.499(3), b1 = 0.878(4), b2 = 0.50(1), b3 = 0.50(1). Παρατηρούμε την ανώμαλη βάθμωση για το l1 και τις μεγάλες επιδράσεις πεπερασμένου μεγέθους στις μετρήσεις. Οι ευθείες γραμμές αντιστοιχούν σε √ βάθμωση ∼ N
Ñ ØÖ × Ò ÖÕÞ yˆ¸ x, y = 0, . . . , L − 1º ÈÖÓ× ÜØ Ø × Ñ × Ô ØÓ 0¸ Ñ Ö ÓÙÑ Ø ÔÖÓ Ö ÑÑ Ø Ñ
× Cº ËØ Ò Ô ÖÔØÛ× Ò array h[L][L] ØÑ ÙØ ×ÙÒ ÖØ × h(r) ÒØ ×ØÓ Õ × ×ÙÒ ÖØ ×
×ØÓ r Ò h[x][y] ÔÓÙ int x,y;º Ç ×ÙÒÓÖ
×ÙÒ
Ô Ð ÓÒØ ÔÖÓ
Ø Ø Ó ×ÙÒØ Ø Ñ Ò
(x, y) ÓÖÞÓÒØ ÔÐ modL ´ØÓ ÙÔ ÐÓ ÔÓ Ø
Ö ×
Ñ Lµº ÙØ Ò Ø ×Ø ËÕ Ñ Ø ¿º¿º¾ ¿º º Ò ÙÔÓÐÓ ×Ø ÑÛ
Ñ × ×ØÓ ÔÐ Ñ ÔÖ Ô Ò ÙÔÓÐÓ ×Ø × ×Ø ÑÒ Ñ x*L+y¾¼ ÔÓÙ ÑÔ Ö Õ Ò ÔÓÐÐ ÔÐ × ×Ñ ¸ Ó ÓÔÓÓ
Ò Ö
× ÕÖ ÒÓ CPUº ÙØ × ÔÓÐÐ
Ô Ö ÔØô×
Ò ÙØ Ø ÓÑ ÓÑ ÒÛÒ × Ñ ÓÖ ¾½ º Ò ØØ ÔÓØ Ð ×Ñ Ø Ø ÖÓ Ò Ò Ø
η θέση στη μνήμη δεν είναι αριθμητικά ίση με τη θέση r στο array h[r] που αναφέρεται παρακάτω. ¾½ Αυτό θα είναι σημαντικό στην περίπτωση του μοντέλου Ising που θα μελετήσουμε αρ¾¼ Προσοχή,
¼
Ã
ï Ä ÁÇ ¿º Ç ÌÍÉ ÁÇË È ÊÁÈ ÌÀÌÀË
i ¼ ½ ¾ ¿
ai ½ ¼º ´½µ ½º¼¿´¾µ
bi ¼º ¼º ¼º ¼º
´½µ ´¾µ ´½µ ¼´½µ
ÈÒ
¿º½ ÔÓØ Ð ×Ñ Ø ØÓÙ
Ø
ÑÛ×
ØÛÒ ×Õ × ÛÒ Ai ∼ N ai li ∼ N bi º ר Ø
ÖÓÑ
Ô Ö Ñ ÒÓÙÑ ai = 1 bi = 1/2º Ò Ø ÒôÑ Ð ÑÛ× Ø
Ô ÖÑ ØÖÓÙ ØÛÒ ÖÓÑôÒ l1 Ñ b1 ≈ 3/4º
× × Ñ ÓÙ ØÓÙ ÔÐ Ñ ØÓ
Ô Ò Ñ ÒÓ Ö Ó Ö Ñ r= 2 0, . . . , L −1 ÔÛ
Ò Ø ×ØÓ ËÕ Ñ ¿º¿º¾º ËØ Ò Ô ÖÔØÛ× ÙØ ×ÙÑ Ö Ò Ô ÖÓÙÑ Ø
×ÙÒÓÖ
×ÙÒ
ÐÓ
ÔÛ
Ò Ø ×ØÓ ËÕ Ñ ¿º¿º¾º À ØÓÔÓÐÓ Ô Ö Ñ Ò ØÓÖÓ
ÐÐ ÛÑ ØÖ Ò ÓÖ Ø ÔÛ
Ò Ø ×ØÓ ËÕ Ñ ¿º º Å Ó ØÙÕ Ó
Ô Ö Ô Ø Ø
× Ñ ØÓÙ Ô ×Ñ Ô Ø
ÔÐ × ×Ø Ö ØÓÒ
ØÓÙ ×
¸ ÔÖ Ô Ò ÔÖÓ× ÓÖ×ÓÙÑ Ôô
Ò Ø ÙØ Ð ÓÖ Ñ º È Ö Ø ÖÓ Ñ Ø Ò Ó Ô Ö Ô Ø Ø
Ö× Ø ×Ø × r¸ Ó ÔÐ × ×Ø ÖÓ ØÓÒ
ר
Ù Ò×
±x Ò Ó r±1¸ Òô ר
Ù Ò×
±y Ó r±Lº Ç ×ÙÒÓÖ
×ÙÒ
Ð Ñ ÒÓÒØ ÔÓÐ ÔÐ ÙÔ³ Ý Ô Ö Ø ÖôÒØ
Ø ÓÙÑ Ô ØÓ Ø Ø ÖØ Ñ Ö Ó ÔÓÙ Ö × Ñ ×Ø ØÒÓ Ø
r Ô ØÓ Ô ØÖ ÔØ ר Ñ 0, . . . , L2 − 1º À ÔÐ Ø Ø ÔÓÙ ÔÖÓ× ÖÓÙÒ Ó ÐÓ
×ÙÒÓÖ
×ÙÒ
Ò Ø ÔÒ ÖÓÒØ
ØÓÒ r ×ØÓ ×Ûר ר Ñ ÔÖÓ× ØÓÒØ
ÖôÒØ
2 Ò ÐÓ L ¸ Ö× ÓÙÑ ØÓ ×Ûר ÔÐ × ×Ø ÖÓ ØÓÒ À Ò × ×Ø
¾¾ ÙÒ Ø
Ù Ò×
ÒØ ×ØÓ Õ Ø Ø ×ØÓÒ ÔÐ ô
int r,L,L2; L2 = L*L; if((++r )>=L2)r if((--r )< 0 )r if((r+=L)>=L2)r if((r-=L)< 0 )r
-= += -= +=
L2;// L2;// L2;// L2;//
Move Move Move Move
in in in in
+X -X +Y -Y
direction direction direction direction
γότερα. ¾¾ Θυμίζουμε στον αναγνώστη ότι η έκφραση (++r) έχει τιμή r+1 ενώ η (r++) έχει τιμή r. Και στις δύο περιπτώσεις φυσικά στο τέλος η μεταβλητή r έχει αυξηθεί κατά 1.
¿º¿º
Å Ä ÌÀ ÌÇÍ ÌÍÉ ÁÇÍ È ÊÁÈ ÌÀÌÀ
½
h(x,y) 25 20 15 10 5 0 20 30 y 40
-40 -30 -20 -10 x
0
10
20
30
-10 -20 -30 -40 40
0
10
ËÕ Ñ ¿º½¾ Η συνάρτηση h(r) για 4 διαφορετικές διαδρομές του τυχαίου περιπατητή για
N = 4096.
ËØÓ Ø Ð ÙØ Ó × Ñ Ó ÔÓÙ ÔÖ Ô Ò ô×ÓÙÑ ÔÖÓ×ÓÕ ×ØÓÒ ô Ñ
Ò ÐÐ ×ÙÒØ Ø Ñ ÒÛÒ r→(x,y)º ÙØ
Ñ
ÕÖ ×ØÓ Ò ØÓÒ ÙÔÓÐÓ ×Ñ ØÛÒ ÔÓר × ÛÒ Ñ Ø Ü ØÛÒ ÔÐ Ñ Ø ôÒ × Ñ ÛÒº Ò ÓÖ×ÓÙÑ Ø Ò Ò × ØÓÙ Ô Ö Ô Ø Ø ×Ø
×ÙÒØ Ø Ñ Ò
ÙØ
Ò ÓÐ Ò Ô Ö ÓÖ ×ØÓ Ñ ×Ø
Ô Ö ÔØô×
ÔÓÙ Ó L Ò Ô Ö ØØ
º ÌØ Ò × ØÓÙ Ô Ö Ô Ø Ø ÑÔÓÖ Ò Ü Ò× Ô ØÓ ÒØÖÓ ØÓÙ ÔÐ Ñ ØÓ
ØÓ ÓÔÓÓ Ö× Ø ×Ø × r = [L2 /2]¾¿ ØÓ ÓÔÓÓ ÒØ ×ØÓ Õ ×ÓÙÑ ×Ø × (0, 0) ´ к ËÕ Ñ ¿º¿º¾µº ËØ ×ÙÒ Õ Ô Ö Ø ÖÓ Ñ Ø
r=y∗L+x int x,y,L¸ ÓÔ Ø
´¿º ½µ
ÒØ×ØÖÓ
×Õ ×
r→(x,y)
Ò Ø
Ô
ØÒ
y = r/L; x = r − y ∗ L; x− = (L/2); y− = (L/2); .
´¿º ¾µ
ÂÙÑÞÓÙÑ ×ØÓÒ int Ø
¾¿ [x]
Ò
Òôר Ö ×
ØÓ ÓÑØ
Ñ Ø Ð Ø
r, x, y, L Ò Ð ØôÒ Ø ÔÓÙ int Ò ØÓ
Ø ÔÓÙ ÖÓ
είναι το ακέραιο μέρος του πραγματικού x.
72
Ã
ï Ä ÁÇ ¿º Ç ÌÍÉ ÁÇË È ÊÁÈ ÌÀÌÀË
hav(x,y) 2.5 2 1.5 1 0.5 0 40 20 -40 -20 x 0 0 -20 20 40 -40 y
ËÕ Ñ ¿º½¿ Η συνάρτηση hav (r) για N = 4096.
Ñ ÖÓ
ØÓÙ ÔÓØ Ð ×Ñ ØÓ
º ÇÔ Ø Ö × r/L ×ÕÞÓÙÑ ×ØÓ ËÕ Ñ ¿º¿º¾ Ò Ø ×ÓÙÑ ×Ø r Òô Ö × r-y*L Ò ØÓ ÙÔ ÐÓ ÔÓ Ø
ÔÓÙ Ö× Ø ÔÐ Ñ Ø × rº Ç ÓØÐ Ñ Ø ØÓÔÞÓÙÒ Ø
×ÙÒØ Ø Ñ Ò
Ø× ôר ÖÕ × r=(L*L)/2º Ñ ×Ø ØÓ ÑÓ ØôÖ Ò Ô Ö ×ÓÙÑ ØÓÒ ô ÖÕ Ó rw2.cº È Ö Ð ÔÓÙÑ Ñ ÒÓ Ø
×ÙÒ ÖØ × À ÔÖôØ Ò ÒÛר Òô Ø ØÖ ØÒ Ò ÖÕÞ Ø Ò drandom() Ø ØÓ Ó Ó Òººº
/************************ #include #include /* Nwalk: Number of random walks generated.
Ò Ò ÔÐ Ö × ÙØ ØÛÒ
Ô×
× Ö
ÑØ ×
¸ Ö Ø ×Ø Ð
ÔÖ Ü
x-=(L/2);y-=(L Ü ÒÛÒ Ò Ò
ÔÓÙ ÕÓÙÑ ×ØÓ
drandom() init random() ÒÓÙÑ ×ØÓÒ Ò Òôר
rw2.c *********************************/
¿º¿º
Å Ä ÌÀ ÌÇÍ ÌÍÉ ÁÇÍ È ÊÁÈ ÌÀÌÀ
73
1 6 2 7 3 8 4 9
0 5
1 6
2 7
3 8
4 9
0 5
1 6
2 7
3 8
4 9
0 5
10 11 12 13 14 15 16 17 18 19 20 21 22 0 5 1 6 2 7
10 11 12 13 14 15 16 17 18 19 23 24 3 8 4 9
10 11 12 13 14 15 16 17 18 19 20 21 22 0 5 1 6 2 7 23 24 3 8 4 9
23 24 20 21 22 3 8 4 9 0 5 1 6 2 7
10 11 12 13 14 15 16 17 18 19 20 21 22 0 5 1 6 2 7 23 24 3 8 4 9
10 11 12 13 14 15 16 17 18 19 20 21 22 0 5 1 6 2 7 23 24 3 8 4 9
10 11 12 13 14 15 16 17 18 19 20 21 22 0 5 1 6 2 7 23 24 3 8 4 9
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
ËÕ Ñ ¿º½
Τετραγωνικό πλέγμα με περιοδικές συνοριακές συνθήκες και L = 5. Η τοπολογία είναι τοροϊδής.
N L */ int int
: Length of random walks : Linear size of lattice and L2 = L*L
Nwalk, N, L, L2; *h; /* The frequency function array h[L2]: How many times each point is visited by the random walker */ int R; /*Final position of walker */ int iwalk; /*Random walk counter */ int *hav; /*Average h[r] */ void init(int, char**),end(); void generate_a_walk(),measure(); double measA1(); /*Area and length functions */ void measA2l1(double *,double *),measl2l3(double *,double *); double drandom(); void init_random();
74
Ã
ï Ä ÁÇ ¿º Ç ÌÍÉ ÁÇË È ÊÁÈ ÌÀÌÀË
0 0 1 6 2 7 3 8 4 9 5 1 6 2 7 3 8 4 9
0 5
1 6
2 7
3 8
4 9
5
10 11 12 13 14 15 16 17 18 19 20 21 22 0 5 1 6 2 7 23 24 3 8 4 9
10 11 12 13 14 15 16 17 18 19 20 21 22 0 5 1 6 2 7 23 24 3 8 4 9
10 11 12 13 14 15 16 17 18 19 20 21 22 0 5 1 6 2 7 23 24 3 8 4 9
10 11 12 13 14 15 16 17 18 19 20 21 22 0 5 1 6 2 7 23 24 3 8 4 9
10 11 12 13 14 15 16 17 18 19 20 21 22 0 5 1 6 2 7 23 24 3 8 4 9
10 11 12 13 14 15 16 17 18 19 20 21 22 0 5 1 6 2 7 23 24 3 8 4 9
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
ËÕ Ñ ¿º½ Τετραγωνικό πλέγμα με ελικοειδείς συνοριακές συνθήκες και L = 5. Η τοπολογία είναι τοροϊδής.
/************************ main () *****************************/ int main(int argc, char **argv){ init(argc,argv); /*initialize program*/ for(iwalk=1;iwalk<=Nwalk;iwalk++){ generate_a_walk(); measure(); } end(); } //main()
/************************ init () *****************************/ void init(int argc, char **argv){ int i; if( argc != 4 ){ fprintf(stderr,"Usage: %s \n",basename(argv[0])); exit(1);
¿º¿º
Å Ä ÌÀ ÌÇÍ ÌÍÉ ÁÇÍ È ÊÁÈ ÌÀÌÀ
75
0 5 10 15 20
1 6 11 16 21
2 7 12 17 22 13
3 8 14
4 9
(−2,−2) (−1,−2) (0,−2) (1,−2) (2,−2) (−2,−1) (−1,−1) (0,−1) (1,−1) (2,−1) (−2,0) (−1,0) (0,0) (−2,1) (−1,1) (0,1) (−2,2) (−1,2) (0,2) y
ËÕ Ñ ¿º½
(1,0)
(2,0) x
18
(1,1)
19
(2,1)
23
(1,2)
24
(2,2)
Συντεταγμένες r = 0, . . . , L2 − 1 και συντεταγμένες (x,y) με x,y = −[L/2], . . . , [L/2] για περιττό L. Στο σχήμα L = 5.
} Nwalk = atoi(argv[1]); N = atoi(argv[2]); L = atoi(argv[3]); if( L%2 == 0 ) L++; //we accept odd L only L2 = L*L; printf("# Size of lattice: L= %d L2= %d\n",L,L2); printf("# Nwalk= %d random walks with Nstep= %d steps\n",Nwalk,N); /*Allocate memory for the h[L2] array */ h = (int *)malloc((size_t) (L2*sizeof(int))); if( h == NULL){fprintf(stderr,"rw2: Not enough memory!\n");exit(1);} hav = (int *)malloc((size_t) (L2*sizeof(int))); if( hav == NULL){fprintf(stderr,"rw2: Not enough memory!\n");exit(1);} for(i=0;i=L2){r -= L2;boing++;}//carefull ++r not r++! h[r]++; break; case 1: // Move in -X direction if((--r )< 0 ){r += L2;boing++;}//carefull --r not r--! h[r]++; break; case 2: // Move in +Y direction if((r+=L)>=L2){r -= L2;boing++;} h[r]++; break; case 3: // Move in -Y direction if((r-=L)< 0 ){r += L2;boing++;} h[r]++; break; }//switch(ir) //printf("w %d %d %d\n",iwalk,i,r);//if you wish to print the path if(r == r0) nret++; }//for(i=0;i 0 ) icount++; return (double)icount; }//A1() *********************/ ****/
78
Ã
ï Ä ÁÇ ¿º Ç ÌÍÉ ÁÇË È ÊÁÈ ÌÀÌÀË
/* A2 = # of sites that are internal to region rw has visited */ /* l1 = # of boundary sites, i.e. at least one nn not visited */ void measA2l1(double *A2, double *l1){ int icountA,icountl,i,nn,sum; icountA = 0; icountl = 0; for(i=0;i0){ /*Visit 4 neighbors. If all visited then site is internal*/ if((nn=i+1)>= L2) nn-=L2; if( h[nn] > 0 ) sum++ ; if((nn=i-1)< 0 ) nn+=L2; if( h[nn] > 0 ) sum++ ; if((nn=i+L)>= L2) nn-=L2; if( h[nn] > 0 ) sum++ ; if((nn=i-L)< 0 ) nn+=L2; if( h[nn] > 0 ) sum++ ; if( sum == 4 ) icountA++; else icountl++; }//if(h[i]>0) }//for(i=0;i 0 ){ yi=i/L;xi=i-yi*L; //i-coordinates for(j=i+1;j 0 ){ yj=j/L; xj=j-yj*L;//j-coordinates xij = (double)(xj-xi); yij = (double)(yj-yi); */ */
¿º¿º
Å Ä ÌÀ ÌÇÍ ÌÍÉ ÁÇÍ È ÊÁÈ ÌÀÌÀ
79
rij = xij*xij + yij*yij; len2 += rij; norm2 += 1.0; //Count number of pairs if( rij > len3) len3 = rij; }//if( h[j] > 0 ) }//for(j=i+1;j 0 ) }//for(i=0;i&
ÑØ
ÐÛØØÞÓÙÑ
ØÖ ÕÓÙÑ
Û
Ü
% cc -O2 rw2.c -o rw2 % ./rw2
rwalk2.dat &
ÔÓÙ ¸ Ò Ó Ö Ñ
ØÛÒ Ô Ö ÓÑ ÒÛÒ ØÙÕ ÛÒ ÖÓÑôÒ¸ ØÓ Ñ Ó
ØÓÙ
ÔÐ ÙÖ ØÓÙ Ø ØÖ ÛÒ Ó ÔÐ Ñ ØÓ
ÒØ×ØÓ Õ º Å Ö
ÔÜ ×
Ô ÒÛ × Ø ÕÒ
Ð ÔØÓÑ Ö
ØÓÙ Ô Ö Ô ÒÛ ÔÖÓ Ö ÑÑ ØÓ
À ÓÑ ØÓÙ ÔÖÓ Ö ÑÑ ØÓ
Ò ÔÐ º À ×ÙÒ ÖØ × main() Ð ÖÕ Ø Ò init() ÔÓÙ ÖÕ ÓÔÓ Ø
Ô Ö Ø Ø
Ñ Ø Ð Ø
ô
ØÒ ÒÒ ØÖ ØÛÒ Ý Ù ÓØÙÕ ÛÒ Ö ÑôÒ drandom()º Å Ø Ð Nwalk ÓÖ
Ø ×ÙÒ ÖØ × generate a walk() ÔÓÙ Ô Ö Ñ ØÙÕ ÖÓÑ Ø
Ñ ØÖ ×
Ô ÒÛ × Ø ×ÙÒ ÖØ × measure() ÔÓÙ Ò Ð Ñ Ò ÖÓÑ º Ì ÐÓ
×ÙÒ ÖØ × end() Ò Ø
Ø Ð ÙØ
ÓÙÐ
ÔÖ Ò ØÓÒ Ø ÖÑ Ø ×Ñ ØÓÙ ÔÖÓ Ö ÑÑ ØÓ
º
80
Ã
ï Ä ÁÇ ¿º Ç ÌÍÉ ÁÇË È ÊÁÈ ÌÀÌÀË
ÞÓÙÑ Ø
×
Ô Ö Ñ ØÖÓÙ
Nwalk, N, L¸ ÞÓÒØ
ËØ Ò init() Ø ÓÖ×Ñ Ø argv Ø
ÒØÓÐ
ÔÓÙ ØÖ Õ ØÓ ÔÖ Ö ÑÑ Ñ Ø ØÖ ÔÓÒØ
Ø× Ö ÓÙ
Ñ Ø Ò atoi() ÔÛ
Ü × Ñ ×Ø × Ðº º Nwalk Ò Ó Ö Ñ
ØÛÒ ØÙÕ ÛÒ ÖÓÑôÒ ÔÓÙ ÔÖ ØÓ ÔÖ Ö ÑÑ ¸ N ØÓ Ñ Ó
ØÓÙ
N L Ó Ö Ñ
ØÛÒ ÔÐ Ñ Ø ôÒ × ÛÒ × ÔÐ ÙÖ ØÓÙ Ø ØÖ ôÒÓÙ ÔÓÙ ÓÖÞ ØÓ × ÔÐ Ñ º ËØ ×ÙÒ Õ hav[L*L] ÔÓÙ Þ Ø Ñ Ø Ò Ô ØÓ Ñ Ò ÑÒ Ñ Ø arrays h[L*L] ÔÓ ÓÙÒ Ø ×ÙÒ ÖØ × h(r) hav (r) = h(r) ÒØ×ØÓ Õ º Ô ØÓ Ñ Ó
ÙØ Ò Ò ÒÛר ØÛÒ ÔÖÓØ ÖÛÒ¸ Þ ØÓ Ñ Ø ÑÒ Ñ ÙÒ Ñ ÕÖ × ÑÓÔÓ ôÒØ
Ø ×ÙÒ ÖØ × malloc()º
int L, L2, *h, *hav; L2 = L*L; h = (int *)malloc((size_t) (L2*sizeof(int))); hav = (int *)malloc((size_t) (L2*sizeof(int)));
Ìh hav Ò pointers × int ÕÖ × ÑÓÔÓ Ó Ñ Ø Ò casts (int *) Ø
Ô Ö Ø Ø
Ñ Ø ØÖÓÔ
º ÌÓ macro sizeof() Ò ØÓÒ Ö Ñ ØÛÒ bytes ÔÓÙ ØÐÑ Ò ØÓ Ö ×Ñ ØÓÙ¸ ר Ò Ô ÖÔØÛ× Ñ
ØÛÒ intº ÌÓ Ö ×Ñ Ø
malloc() Ò Ó Ö Ñ
ØÛÒ bytes ÔÓÙ ÞØÑ Ô Ø ÑÒ Ñ ØÓÙ ÙÔÓÐÓ ×Ø Ø Ñ Ø
Ò pointer ר × Ø
ÑÒ Ñ
ÔÓÙ Ñ
º ËØ ×ÙÒ ÖØ × generate a walk() Ô Ð ÓÙÑ Ø Ò ØÙÕ ÙÒ× ÔÛ
×ØÓ ÔÖ Ö ÑÑ rw.c¸ Òô ÒØ×ØÓ Õ Ò × Ò Ø ÔÛ
Ò Ö Ô Ö Ô ÒÛº À Ñ Ø Ð Ø boing Ñ ØÖ Ô ×
ÓÖ
Ó ØÙÕ Ó
Ô Ö Ô Ø Ø
Ô ÖÒ ØÓ × ÒÓÖÓ ØÓÙ ÔÐ Ñ ØÓ
º Å ÙØ Ð ÕÓÙÑ Ø finite size √ effectsº Ò Ö Ñ Ô Ö Ô ÒÛ Ø Ô Ð ÓÒØ
L ∼ (5 − 6) N Nwalk ≈ 1000¸ N 105 Ø finite size effects Ò Ñ Ð Ø º ÌÓ array h[r] Ò Ñ ÖôÒ Ø × Ñº Ò × ×Ø Ò +x ÙÒ× ÕÓÙÑ
case 0: // Move in +X direction if((++r )>=L2){r -= L2;boing++;}//carefull ++r not r++! h[r]++;
À Ñ Ø Ð Ø nret Ñ ØÖ Ô ×
ÓÖ
Ó Ô Ö Ô Ø Ø
Ô ×ØÖ ×ØÓ ÖÕ × Ñ Óº Ì ÐÓ
× Ñ ôÒÓÙÑ Ø Ò Ø Ð × ØÓÙ Ô Ö Ô Ø Ø Ô Ü Ö × Ô Ø Ò measure() ר global Ñ Ø Ð Ø R
¿º¿º
Å Ä ÌÀ ÌÇÍ ÌÍÉ ÁÇÍ È ÊÁÈ ÌÀÌÀ
81
ËØ measure() Ñ ØÖ Ñ ØÓ Ø ØÖ ÛÒÓ Ø
Ô ×Ø ×
R2 ÔÓÙ Ò Ó Ô Ö Ô Ø Ø
×ØÓ Ø ÐÓ
Ø
ÖÓÑ
º ØÓ Ð Ó ÙØ ÙÔÓÐÓ ÞÓÙÑ Ø
×ÙÒØ Ø Ñ Ò
(x, y) × Ñ ÛÒ Ñ ØÓÒ Ð Ö ÑÓ ÔÓÙ ô× Ñ Ô Ö Ô ÒÛ
int Lh, x, y; double yr,xr, R2; Lh = L/2; y = R/L ; x = R - y*L; y -= Lh yr = (double)y; xr = (double)x; R2 = xr*xr+yr*yr;
; x -= Lh;
À Ñ Ø ØÖÓÔ × double Ò Ø Ò Ñ Ò Ü Ô Ö ×ÓÙÑ ØÓ ÒÛ Ö Ó ØÛÒ Ñ Ø Ð ØôÒ intº 2 2 ËØ ×ÙÒ Õ ÙÔÓÐÓ ÞÓÙÑ Ø
ÔÓ× Ø Ø
A1 ¸ A2 ¸ l1 ¸ l2 l3 º ÈÖÓ×ÓÕ ×Ø Ò Ò ÐÙ× ØÑ li ¸ Ò Ð ×ØÓ Ø ØÖ ÛÒÓ Ø
Ô ØÓ l1 ´ × Ñ Ø
Ø ØÖ ÛÒ
ÖÞ
Ø ÔÖÓ Ö ÑÑ Ø Ø
Ò ÐÙ×
µº ÙØ Ò Ø ×Ø
×ÙÒ ÖØ ×
measA1()¸ measA2l1() measl2l3()º Ì ÐÓ
Ò Ü ÕÒ Ñ Ø
Ô Ö Ø Ø
ÔÖ Ü
ØÓÒ ÙÔÓÐÓ ×Ñ Ø
Ñ ×
Ø Ñ
hav[r]Ø
h(r)º ËØ ×ÙÒ ÖØ × measA1() Ö Ò ÖÓ Ñ Ô × × Ñ Õ Ô × ÙØ Ó Ô Ö Ô Ø Ø
º À ×ÙÒ Ò ÔÐ ¸ h[i]>0¸ ÓÔ Ø Ö Ò Ñ ØÖ ×ÓÙÑ Ø ×Ñ ÙØ
for(i=0;i 0 ) icount++; return (double)icount;
×ÙÒ ÖØ × measA2l1() Ñ ØÖ Ñ ØÓÒ Ö Ñ ØÛÒ ×ÛØ Ö ôÒ × Ñ ÛÒ A2 ×ÙÒÓÖ ôÒ × Ñ ÛÒ l1 ר Ò Ô Ö ÓÕ Aº À ×ÙÒ Ò Ò Ò ×Ø Ò A¸ h[i]>0 × Ñ Ó Ò Ò ×ØÓ ×ÛØ Ö Ø
A Ò ÔÐ × ×Ø ÖÓ
ØÓÒ
nn Ò Ò ×Ø Ò A¸ h[nn]>0º À ×ÙÒ Ò × Ñ Ó Ò Ò ×ØÓ × ÒÓÖÓ Ø
A Ò Ò Ò ×Ø Ò A Ò Õ Ð Ø ÖÓÙ
Ô Ø ×× Ö
ÔÐ × ×Ø ÖÓÙ
ØÓÒ
Ò Ò ÓÙÒ ×Ø Ò Aº Ç ÔÐ × ×Ø ÖÓ ØÓÒ
Ö× ÓÒØ Ñ ØÓÒ Ó Ð Ö ÑÓ ÔÓÙ ÙÔÓÐÓ ÞÓÙÑ Ø Ñ Ø ØÓÙ Ô Ö Ô Ø Ø ÑØ ÐØ sum ÙÔÓÐÓ Þ ØÓÒ Ö Ñ ØÛÒ ÔÐ × ×Ø ÖÛÒ Ø ÒÛҺŠÙÔ Ò Ñ × ×ØÓÒ Ò Òôר À ×ÙÒ ÖØ × measA2l1() Ð Ø Ô ØÓ ÔÖ Ö ÑÑ Û
measA2l1(&A2,&l1);
ËØ
82
Ã
ï Ä ÁÇ ¿º Ç ÌÍÉ ÁÇË È ÊÁÈ ÌÀÌÀË
double A2, l1º Ô ÐÓÙÑ measA2l1() Ò ÐÐ Ü ØÒØÑ ØÛÒ Ô Ö Ô ÒÛ Ñ Ø Ð ØôÒ ×Ø C Ó ×ÙÒ ÖØ ×
Ô ÖÒÓ Ò Ø ÓÖ×Ñ Ø ØÓÙ
‘‘by value’’ Õ ‘‘by reference’’ ´ ÔÛ
кպ Fortranµ ÔÖ Ô Ñ × ×Ø Ò measA2l1() Ò Ô Ö ×ÓÙÑ Ø ÔÓ ÒØ Ö
ÔÖÓ
Ø
Ô Ö Ô ÒÛ Ñ Ø Ð Ø
º Ç ×ÙÑ ÓÐ ×Ñ
&A2 × Ñ Ò ØÓ ÔÓ ÒØ Ö ÔÖÓ
Ø × ÑÒ Ñ
ÔÓÙ Ö× Ø Ñ Ø Ð Ø A2º À measA2l1() Ô ÖÒ Ö ×Ñ Ø pointers ÔÖÓ
Ø
ÒØ×ØÓ Õ
Ñ Ø Ð Ø
ÑØ ÐÐ Ø
Ø Ñ
ÔÓÙ ÕÓÙÒ ÔÓ ÙØ × ÙØ
void measA2l1(double *A2, double *l1){ ... *A2 = (double)icountA; *l1 = (double)icountl; }
Å Ò ÐÓ Ó ØÖ ÔÓ ×Ø Ò measl2l3() Ò Ø Ó ÙÔÓÐÓ ×Ñ
´ØÛÒ Ø ØÖ ôÒÛÒµ ØÛÒ Ñ ×ÛÒ Ñ ×ØÛÒ ÔÓר × ÛÒ l2,l3 Ñ Ø Ü ØÛÒ × Ñ ÛÒ Ø
Aº ô ÔÖÓ× ÓÖÞÓÒØ ØÞ ØÛÒ × Ñ ÛÒ i¸ j ÔÓÙ Ò ÓÙÒ ×Ø Ò A ´h[i]>0 h[j]>0µ Ô Ø nested loops
for(i=0;i 0 ){ for(j=i+1;j 0 ){ .... calculate distance squared .... } } } }
ÔÓÙ .... calculate distance squared .... ÙÔÓÐÓ Þ Ø Ò Ô ×Ø × Ô Ø
×ÙÒØ Ø Ñ Ò
ØÛÒ × Ñ ÛÒ ×ØÓ (x, y) × ×Ø Ñ º È Ö Ø ÖÓ Ñ Ø Ø ×ÙÒ ÖØ × ÙØ Ñ ÒÓ ×ÙÑ Ö ÓÑ ÓÑ ÒÛÒ × ×Ñ Ò ×ØÓ (x, y) × ×Ø Ñ ×ÙÒØ Ø Ñ ÒÛÒº Ø ×Ûר ÒÓÒ ÓÔÓ × Ñ ØÖ Ñ ØÞ ØÛÒ × Ñ ÛÒ Ñ Ø Ñ Ø Ð Ø norm2 Òô Ñ Ø ØÖ ÔÓÙÑ Ø
×ÙÒØ Ø Ñ Ò
× Ø ÔÓÙ double Ò Ñ Ò ÕÓÙÑ ÔÖÓ Ð Ñ Ø ÙÔ ÖÕ Ð ×
Ö ÛÒ ´overflowµº Ì ÓÑ Ò Ñ
ØÙÔôÒÓÒØ ר Ò ÖÛÑ Ò ÜÓ Ó ´stdoutµ Ñ Ñ ×Ù ÖÑÒ Õ × Ü ÕÛÖ ×Ø ÖÕ º Ã Ö ÑÑ printf ÖÕÞ ÓÐÓÙ Õ Ö Ø ÖÛÒ Ø× ôר Ñ Ø ÕÖ × ÐØÖÛÒ Ò Ô ÖÒÓÙÑ Ø Ò ÔÐ ÖÓ ÓÖ ÔÓÙ Ñ
Ò ÖºÇ ÒØÓÐ
Ü ÓÙ
¿º¿º
Å Ä ÌÀ ÌÇÍ ÌÍÉ ÁÇÍ È ÊÁÈ ÌÀÌÀ
¿
printf("boing= %d iwalk= %d\n",boing,iwalk); printf("nret= %d\n",nret); printf("R %d %f %d %d %d\n",iwalk,R2,x,y,R); printf("Al %d %f %f %f %f %f %f %f\n",iwalk,A0,A1,A2,l0,l1,l2,l3);
Ô Ö ÓÙÒ ×Ø Ò ÜÓ Ó ´ÔÓÙ Ö ÑÑ
Ø
ÑÓÖ
Ô Ò ÓÖ× Ñ
Ò
Ò
ØÓ
ÖÕ Ó
rwalk2.datµ
boing= 0 iwalk= 1 nret= 0 R 1 5.000 -2 1 15 Al 1 5.000 3.000 0.000 5.000 3.000 9.333 17.000
ÓÔ Ø
Ñ
Ø
ÒØÓÐ
% grep ^boing rwalk2.dat % grep ^nret rwalk2.dat
Ü Ø ÞÓÙÑ Ø Ò Ü Ð Ü ØÓÙ Ö ÑÓ ÔÓÙ Ó ØÙÕ Ó
Ô Ö Ô Ø Ø
Ô ÖÒ ØÓ × ÒÓÖÓ ØÓÙ ÔÐ Ñ ØÓ
ØÓÙ Ö ÑÓ ØÛÒ ÓÖôÒ nret ÔÓÙ Ô ×ØÖ ×ØÓ × Ñ Ó Ô ØÓ ÓÔÓÓ Ü Ò × º Ò Ô ÖÓÙÑ Ø
Ñ ×
Ø Ñ
Ø × ÐÑ Ø ØÛÒ Ñ ØÖ × ÑÛÒ ÔÓ×ÓØ ØÛÒ ÕÖ × ÑÓÔÓ Ó Ñ ÒØÓÐ
Ø
ÑÓÖ
% grep ^R rwalk2.dat | awk ’{print $3}’ | ./average % grep ^Al rwalk2.dat | awk ’{print $7}’ | ./average
ÔÓÙ ÔÖôØ ÙÔÓÐÓ Þ average ØÓ ÓÖ× Ñ ×Ø ÕÖÓÒÓ× Ö
ØÓ R2 ±δ R2 × Ðº ½µ º
Ò
Ø Ö ØÓ l1 ±δl1 ´ÌÓscript Ó Ñ Ø
ÒØ×ØÓ Õ
% gnuplot gnuplot> plot " plot "1 ØÓÒ NRRW × Ñ Ò Ø Ó Ø Ð ÙØ Ó
ÔÐôÒ Ø Ô Ö ×× Ø ÖÓ Ô ØÓÒ RW ÐÐ ØÓ ÖÓÑ ÔÓÙ ÓÐÓÙ Ò ÑÓ Ñ ÙØ ØÓÙ RW × Ñ ÐØÖ ÑÛ
ÐÑ º ÙØ Ò Ø ×Ø ËÕ Ñ Ø ¿º¿º¿ ¿º¿º¿ ÔÓÙ Ò ÑÓ Ñ Ø ËÕ Ñ Ø ¿º¿º½ ¿º¿º½ ØÓÒ RWº ÀÛ ÓÔÓ × ØÓÙ NRRW Ò Ø ÕÛÖ
Ù× ÓÐ Ñ ÔÐ Ñ Ø ØÖÓÔ ØÓÙ ÔÖÓ Ö ÑÑ ØÓ
rw.cº ÔÐ ÕÖ ÞØ × ÑÒ Ö Ø Ñ ×Ø ÑÒ Ñ Ø ÙÒ× Ô Ø Ò ÓÔÓ ÔÖÓ Ð Ó Ô Ö Ô Ø Ø
º ÔÐ Ø Ø −y Û ÓÔÓ Ó ÒØ רÓÙ
Ó Ø ×× Ö
Ù Ò×
+x¸ +y¸ −x Ò Ó Ô Ö Ô Ø Ø
ÔÖÓ ÖÕ Ø ÔØ Ö ÓÙ
0, . . . , 3 ÒØ×ØÓ Õ º
¿º¿º
Å Ä ÌÀ ÌÇÍ ÌÍÉ ÁÇÍ È ÊÁÈ ÌÀÌÀ
85
18 16 14 ln 12 10 8 6 4 2 2 4 6 8 ln N 10
RW NRRW
2
12
14
16
ËÕ Ñ ¿º½
Μελέτη της σχέσης R2 ∼ aN για τα πρότυπα RW και NRRW. Παρατηρούμε ότι για το πρότυπο NRRW η μόνη διαφορά είναι στον αριθμητικό συντελεστή a = 1.98(4) ο οποίος είναι 1 για τον RW.
ÙÒ× dir Ø Ø ØÓ Ô Ñ ÒÓ Ñ Ò Ø × Ñ Ô Ø
ØÖ
Ù dir-1, dir, dir+1 ÔÓÙ ÔÖ Ü ± Ò Ø mod 4º À Ñ Ø ÓÐ Ò Ø ×Ø Ò ×ÙÒ ÖØ × generate a walk() Û
Ü
r = L2/2; r0= r; /*dir is the stored direction of the previous step*/ dir=(int)(drandom()*4); for(i=0;i0 for % operation, we add 4 */ ir=dir+3+(int)(drandom()*3); ir %= 4; dir = ir;//Stored for next move //The four directions are now stored counterclockwise: switch(ir){ case 0: // Move in +X direction
Ò×
86
16 14 12 10 ln A 8 6 4 2 0 2 4
Ã
ï Ä ÁÇ ¿º Ç ÌÍÉ ÁÇË È ÊÁÈ ÌÀÌÀË
A1 A2 6 8 ln N 10 12 14 16
ËÕ Ñ ¿º½ Αριθμητική επιβεβαίωση της σχέσης Ai = N ai για N = 32, . . . , 4194304 και i = 1, 2 για τον NRRW. Βρίσκουμε ότι a1 = 0.943(2), a2 = 0.981(4).
if((++r )>=L2){r h[r]++; break; case 2: // Move in if((--r )< 0 ){r h[r]++; break; case 1: // Move in if((r+=L)>=L2){r h[r]++; break; case 3: // Move in if((r-=L)< 0 ){r h[r]++; break; }//switch(ir)
-= L2;boing++;}//carefull ++r not r++!
-X direction += L2;boing++;}//carefull --r not r--!
+Y direction -= L2;boing++;}
-Y direction += L2;boing++;}
¿º¿º
Å Ä ÌÀ ÌÇÍ ÌÍÉ ÁÇÍ È ÊÁÈ ÌÀÌÀ
8 7 6 5 4 3 2 1 0 2 4 6
ln l0 ln √l1 ln l2 ln l3
8
10 ln N
12
14
16
ËÕ Ñ ¿º½
Αριθμητική επιβεβαίωση της σχέσης li = N bi για N = 32, . . . , 4194304 και i = 0, 1 και για N = 32, . . . , 65536 και i = 2, 3 για τον NRRW. Βρίσκουμε ότι b0 = 0.500(2), b2 = 0.500(3), b3 = 0.503(3).
Ç ÑÒ
ÑØ ר Ñ Ø Ð Ø Ñ ÓÖ ÒØ Ø Ò Ô ÐÓ Ø ØÓ Ø Ð
ÓÐ
ÔÓÙ int dir¸ Ø Ø Ø
ÓÖ
ÙÒ× ÙØ Ó ØÓ Ô
ÒÑ ÓÖÓ Ò Ø Ò ÔÓ Ù× Ø
ÙÒ×
Ò ÒØ ×ØÓ Õ ØÛÒ Ö ÛÒ 0, . . . , 3 ר
Ù Ò×
Ò ×
ØÛÒ ØôÒ ØÓÙ ÖÓÐÓ Ó
Ò ×
ir Ò Ò Ó dir-1, dir, dir+1º ØÙÕ ÒÓÙÑ Ñ Ø Ò ÔÖ Ü
ir = dir - 1 + ran + 4, ran = 0,1,2
Ø Ô Ò Ô ÖÒÓÒØ
ØÓ ÙÔ ÐÓ ÔÓ Ø
Ö ×
Ñ ØÓ Ñ Ø Ò ÔÖ Ü mod 4º ÌÓ ØÓ ÔÖÓ× ØÓÙÑ Ó 4 mod 4 = 0 ÐÓÙÑ ØÓ ir Ò Ò Ø ØÒ ÒÓÙÑ Ø Ò ÔÖ Ü ir = ir % 4º  Р×ÓÙÑ Ø Ò Ò Ø Ø ÙØ Ñ Ñ Ò ÓÖ ×ØÓÒ ÙØÓ ÔÓ ÛÒ ÌÙÕ Ó
È Ö Ô Ø Ø
´Self Avoiding Random Walk ¹ SAWµº Ì ØÓ
ÖÓÑ
ÑÔÓÖÓ Ñ Ò Ñ ÓÙÖ ×ÓÙÑ Ü ÒôÒØ
Ô Ò × Ñ Ó ØÓÙ ÔÐ Ñ ØÓ
Ñ ÔÐ Ñ Ø × ×Ø Ò ×Ø Ñ ØôÒØ
ÔÓØ Ó SAW Ô × ÔØ Ø ÓÔÓ Õ Ö º Ì ØÓ
ÖÓÑ
ÙÑÞÓÙÒ Ø Ò ÒÓÒ ×ÙÐÐÓ Ò
×Ùר Ñ ØÓ
ÔÓÙ ÔÖÓ×ÓÑÓ Þ Ñ ÐºÕº ÔÖÛØ Ò × ÖØÑ Ð
88
Ã
ï Ä ÁÇ ¿º Ç ÌÍÉ ÁÇË È ÊÁÈ ÌÀÌÀË
ÖÑÓ Ö × ØÛÒ Ø ÑÛÒ Ø ÖÓÑ
Ñ Ø× Ò ÑÔÓÖ Ò N →∞
Ø× ôר Ò ÑÔÓÖ ×ÓÙÑ Ò ÒÓ ×ÓÙÑ Ø Ò ÐÜ Ñ Ø Ü
º ÌÓ ÔÖ Ð Ñ Ñ Ø Ò ÔÖÓ× × ÙØ Ò ØÓ Ñ ÐÓ Ñ Ó
N Ò Ô ÒÓ ÛÖ Ø Ø ØÔ ÑÔÓÖÓ Ñ Ò Ø
Ñ Ð Ø ×ÓÙÑ Ñ ÐÓ Nº ÈÖ Ñ Ø Õ Ø Ó Ö Ñ
ØÛÒ ÖÓÑôÒ Ñ ÓÙ
N ×ÙÑÔØÛØ Õ Ø Ò ×ÙÑÔ Ö ÓÖ
SAW N ZN ∼ N γ−1 zeff
×Ñ Ò
´¿º
µ
Òô Ó ÒØ×ØÓ ÕÓ
Ö
Ñ
ØÛÒ
ÖÓÑôÒ Ñ
ÓÙ
N
ØÓÒ RW
´¿º
Ò
µ
RW ZN = z N
ÔÓÙ z = 4 Ó Ö Ñ
ÔÐ × ×Ø ÖÛÒ Ø ÒÛÒ ×ØÓ ÔÐ Ñ º Ç Ø
γ Ò Ò
Ö× ÑÓ
Ø
Òô Ó zeff < z−1 Ò Ñ Ö Ó
º ÀÔ ÒØØ Ñ RW ÖÓÑ Ò Ò SAW Ò Ó Ð Ó
ØÛÒ Ô Ö Ô ÒÛ ÔÓ×ÓØ ØÛÒ
pN =
SAW zeff ZN ∼ N γ−1 RW ZN z N
= exp −N ln
zeff + (γ − 1) ln N z
,
´¿º
µ
ÓÔÓ Ñ ôÒ Ø Ø Ñ ØÓ Nº Ò Ô Ø ÕÓÙÑ ×Ø Ø ×Ø ÒÓÔÓ Ø ×ÙÐÐÓ ÓÑ ÒÛÒ¸ ÔÖÓ×Ô Ñ
ÙÜ Ò Ø Ñ ØÓ Nº ÌÓ Ñ ×ØÓ N ÔÓÙ ÑÔÓÖ Ò Ñ Ð Ø ×ÓÙÑ Ñ ØÓÒ ØÖ ÔÓ ÙØ Ò ∼ 100º ÌÓ ÔÖ Ö ÑÑ saw2.c ÑÔÓÖ Ò ÕÖ × ÑÓÔÓ ØÒ ÔÖÓ×ÓÑÓÛ× ØÓÙ ÑÓÒØ ÐÓÙº
¿º
º ½º
ÈÊÇ ÄÀÅ Ì
Ø Ð ×Ø ØÒ ÒØÓÐ
% cpp hello.c > hello1.c % less hello1.c
Ü Ø ×Ø Ø Ô Ö Õ Ñ Ò ØÓÙ ÖÕ ÓÙ hello1.c ×Ù ÖÒ Ø Ø Ñ Ø Ô Ö Õ Ñ Ò ØÛÒ ÖÕ ÛÒ /usr/include/stdlib.h /usr/include/std Ì Ö ô
×ÙÒ
¿º º
ÈÊÇ ÄÀÅ Ì
¾º Ò Ô Ö ØØ ÔÓØ Ð ×Ñ Ø ÔÓÙ Ó Ó Ò ×Ø ËÕ Ñ Ø ¿º¾º¾ ¿º¾º¾ Ø ÜØ Ø ÒØ×ØÓ Õ ×Õ Ñ Ø º ´ËÙÒÓ ÙØ ÐÓ study-ran-fluct, plotµ ¿º Ô ØÓ ×ÙÒÓ ÙØ ÐÓ ×Ñ Ø Ð ×Ø Ø
ÒØÓÐ
¾
×Ñ
% ./naiveran 100000 > data & % ./eternal-ran
ר
×ÙÒ Õ
% ./drandom 100000 > data & % ./eternal-ran
º ÃÛ
ÓÔÓ ×Ø Ø Ò Ô Ö Û ØÙÕ ÛÒ Ö ÑôÒ Ñ Ø ÒÓÑ Gaussian Cauchy ´c = 1µº Ø ÜØ ×ØÓ Ö ÑÑ Ø Ø ÒÓÑ
ØÛÒ Ö ÑôÒº ÜØ Ø Ó ×Õ ×
´¿º¾¾µ ´¿º¾¿µ ÒÓÙÒ Ø
Ø ÒÓÑ
º ´ËÙÒÓ ÙØ ÐÓ ×Ñ gausran.cµ
º ÔÓ ÜØ Ø Ò Ñ × Ø Ñ ØÛÒ ÒÙ×Ñ ØÛÒ ξi = vτ Ø Ø R = vτ N ÕÓÙÑ Ö ÑÑ ×Õ × Ñ Ø Ü Ñ Ø Ø Ô × × Ñ ÓÙ
ØÖÓÕ
º À ÔÓ× Ø Ø v Ò Ñ × Ø Õ Ø Ø ØÓÙ ×ÛÑ Ø ÓÙº 2 ÍÔÓÐÓ ×Ø ØÓ R Ñ Ð
Ø Ñ
ØÓÙ Nº º Ü Ø ×Ø Ö ÑØ Ø
Ô Ö Ô ÒÛ ×Õ ×
ØÓÒØ
רÓÒ ô ×
ØÒÔ Ò Ø Ø ×Ø Ò ÔÖôØ Ö ÑÑ Ø
´¿º¾µ × Ñ 1/2 Ø
ÙÔ ÐÓ Ô
1/6º ÍÔÓÐÓ ×Ø Ø
ÔÓ× Ø Ø
(ξi)x ¸ (ξi)y Ô ÙØ
Ø Ñ × Ø Õ Ø Ø ØÓÙ ×ÛÑ Ø ÓÙº Ü Ø ×Ø Ø
×Õ ×
R2 ∼ N α Rx ∼ N 2ax Ry ∼ N 2ay º ÈÓ ×Õ × Ñ Ø Ü a¸ ax ay ×ØÓ ÔÖ Ö ÑÑ ºÅØ Ð Ø ØÓ ÔÖ Ö ÑÑ rw.c ôר Ó ÕÖ ×Ø
Ò Ô Ö Õ ØÓÒseed ר Ò drandom() ÔÓÙ Ô ÙÑ º ÅÔÓÖ Ø Ò Ò Ø ØÓ seed Ò ÓÖÞ Ø Ô Ø ÕÖÓÒ ×Ø Ñ ÔÓÙ Ü Ò ØÓ ÔÖ Ö ÑÑ ´ÍÔÓ º ÉÖ × ÑÓÔÓ ×Ø Ø Ò ÒØÓÐ seed = (long)time((time t *) 0);º ÐØÖ ÖÕ ÓÔÓ × Ø ×ØÓ ×ÙÒÓ ÙØ ÐÓ ×Ñ ÔÛ
ÑÔÓÖ Ø Ò ÕÖ × ÑÓÔÓ × Ø ØÓÒ Ö Ñ ×
´process IDµ Ñ Ø ×ÙÒ ÖØ × getpid()µ
¾
Μπορείτε να πατήσετε Ctrl-c για να σταματήσει το πρόγραμμα eternal-ran.
¼
Ã
ï Ä ÁÇ ¿º Ç ÌÍÉ ÁÇË È ÊÁÈ ÌÀÌÀË
º
ØÓÒ ØÙÕ Ó Ô Ö Ô Ø Ø ÒÛÖÞÓÙÑ Ø R = 0º ÍÔÓÐÓ ×Ø Ø
Ñ×
ØÑ
x y N = 100, 100000º Ò ÔÖ Ñ Ø Ñ Ò Ø ÈÛ
Ü ÖØ Ø ØÓ ÔÓØ Ð ×Ñ ×
Ô ØÓÒ Ö Ñ ØÛÒ Ñ ØÖ × ÛÒ
º ÍÔÓÐÓ ×Ø Ø Ñ × Ø Ñ ØÓÙ Ö ÑÓ ØÛÒ ÓÖôÒ ÔÓÙ Ó ØÙÕ Ó
Ô Ö Ô Ø Ø
Ô ×ØÖ ×ØÓ ÖÕ × Ñ Ó × Ò ×ÙÒ ÖØ × ØÓÙ Nº Ì ×ÙÑ Ò N →∞ Ø ½¼º Æ ÒÔÖ Ø Ø ËÕ Ñ Ø ÈÒ ¿º¿º½ ´ËÙÒÓ ÙØ ¿º¿¸ ¿º¿º½ ÐÓ ×Ñ µº ¿º¿º½ ô
ØÓÒ
N = 32, 64, 128, 256, 512, 1024, 2048 ½½º ÉÖÓÒÓÑ ØÖ ר √ ÔÖ Ö ÑÑ rw2.c ØÓ L ≈ (5−6) Nº ËØ ×ÙÒ Õ Ô Ò ÕÖÓÒÓÑ ØÖ ר ØÓ ÖôÒØ
ÓÕ Ô ØÓ ÔÖ Ö ÑÑ Ø
×ÙÒ ÖØ ×
measA1()¸ measA2l1() measl2l3()º Å Ð Ø ×Ø Ö Ø ×Õ × ØÓÙ ÕÖ ÒÓÙ CPU ÑØN L ÒØ×ØÓ Õ ´× ÐÓ ¹ÐÓ ÔÐÓØµº ÈÖÓ Ð ÝØ Ô ×Ó Ô ÖÔÓÙ ØÖ Ü ØÓ ÔÖ Ö ÑÑ N = 4096, 8192, 16384 ÑØ Ô ôר Ø Ò ÔÖ Ð Ý ×
º Ô ×Ó Ô Ö Ñ Ò Ø Ò ØÖ Ü ØÓ ÔÖ Ö ÑÑ ×
N = 131072
½¾º Æ ÒÔÖ Ø Ø ËÕ Ñ Ø ÈÒ ¿º¿º½ ´ËÙÒÓ ÙØ ½¿º Æ ÖÝØ ô ×Õ ×
R2 ∼ N 2ν Ø Ñ ØÓÙº
¿º¿º¿¸ ¿º¿º¿ ÐÓ ×Ñ µº
¿º¿º¿
ô
ØÓÒ
Ø νØ
ØÓÒ SAWº Æ ÙÔÓÐÓ × Ø ØÓÒ Ò ØÓÒ ×Ù ÖÒ Ø Ñ Ø Ò Ò Ñ Ò Ñ Ò
¿º º
ÈÊÇ ÄÀÅ Ì
½
0 5
12 67
34 89
0 5
1 6
2 7
3 8
4 9
0 5
1 6
2 7
3 8
4 9
10 11 12 13 14 15 16 17 18 19
10 11 12 13 14 15 16 17 18 19 23 24 3 8 4 9
10 11 12 13 14 15 16 17 18 19 20 21 22 0 5 1 6 2 7 23 24 3 8 4 9
20 21 22 23 24 20 21 22 0 5 12 67 34 89 0 5 1 6 2 7
10 11 12 13 14 15 16 17 18 19 0 5 12 67 34 89
10 11 12 13 14 15 16 17 18 19 23 24 3 8 4 9 0 5 1 6 2 7
10 11 12 13 14 15 16 17 18 19 20 21 22 0 5 1 6 2 7 23 24 3 8 4 9
20 21 22 23 24 20 21 22
10 11 12 13 14 15 16 17 18 19
10 11 12 13 14 15 16 17 18 19 23 24
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
20 21 22 23 24 20 21 22
ËÕ Ñ ¿º¾¼ Οριζόντια κίνηση στο τετραγωνικό πλέγμα με περιοδικές συνοριακές συνθήκες
και L = 5. Η τροχιά είναι κύκλος.
¾
Ã
ï Ä ÁÇ ¿º Ç ÌÍÉ ÁÇË È ÊÁÈ ÌÀÌÀË
0 0 0 5 1 6 2 7 3 8 4 9 5 1 6 2 7 3 8 4 9 5
1 6
2 7
3 8
4 9
10 11 12 13 14 15 16 17 18 19 20 21 22 0 5 1 6 2 7 23 24 3 8 4 9
10 11 12 13 14 15 16 17 18 19 20 21 22 0 5 1 6 2 7 23 24 3 8 4 9
10 11 12 13 14 15 16 17 18 19 20 21 22 0 5 1 6 2 7 23 24 3 8 4 9
10 11 12 13 14 15 16 17 18 19 20 21 22 0 5 1 6 2 7 23 24 3 8 4 9
10 11 12 13 14 15 16 17 18 19 20 21 22 0 5 1 6 2 7 23 24 3 8 4 9
10 11 12 13 14 15 16 17 18 19 20 21 22 0 5 1 6 2 7 23 24 3 8 4 9
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
ËÕ Ñ ¿º¾½ Οριζόντια κίνηση στο τετραγωνικό πλέγμα με ελικοειδείς συνοριακές συνθήκες και L = 5. Η τροχιά είναι σπείρα.
Ã
ÐÓ
ÈÊÇËÇÅÇÁÏËÀ ÌÇÍ ÈÊÇÌÍÈÇÍ ISING
ËØÓ Ã Ð Ó ÙØ Ò ×Û ØÛÒ × ôÒ Ñ ÛÒ Å ÒØ à ÖÐÓ Ø Ò ÔÖÓ×ÓÑÓÛ× ØÓÙ ÔÖ ØÙÔÓÙ Ising ÓÖ ×Ñ ÒÓÙ ×ØÓ ×Ø ØÓ Ø ØÖ ÛÒ ÔÐ Ñ º ÖÕ ÑÐØ Ò Ñ ØÓÒ Ð Ö ÑÓ Metropolis ÔÓÙ ÑÐØ × ÔÓÙ ØÓ × ×Ø Ñ ÖÒ Ø ×Ø Ò Ø ×Ø × ÖÑ
×ÓÖÖÓÔ
´thermalizationµ ô
× Ñ Ø Ò ÓÔÓ Ô ÖÒÓÙÑ ×Ø Ø ×Ø Ò Ü ÖØ Ø
Ñ ØÖ ×
Ñ Ð ØôÒØ
ØÓÙ
ÕÖ ÒÓÙ
ÙØÓ×Ù×Õ Ø ×ÑÓ ´autocorrelation timesµ ØÓÙ ×Ùר Ñ ØÓ
º À Ø Ò × ØÛÒ × ôÒ ÒÒÓ ôÒ Ò Ñ Ð ô
¸ Ó Ø Ô Ö Ô ÒÛ Ò Ó Ö
Ø ÕÒ
Ù× ÓÐ
ÔÓÙ ÒØ Ñ ØÛÔÞÓÙÑ Ø Ò ÔÖÓ×Ô Ó Ñ Ò Ñ Ð Ø ×ÓÙÑ ×Ùר Ñ Ø Ñ Ñ ÐÓ Ö Ñ ÑôÒ Ð Ù Ö
º À Ö ØÛÒ ÔÖÓ Ö ÑÑ ØÛÒ ÔÓÙ ÕÖ × ÑÓÔÓ ×ÓÙÑ ¸ Ò Ò ×Ñ Ò Barkema ½℄º Ô ØÓ ÐÓ ØÛÒ Newman
º½
Ä ÇÊÁÂÅÇË METROPOLIS
ÌÓ ÔÖ ØÙÔÓ Ising ÓÖר ר Ò Ò Ø Ø ½º º ô ÛÖÓ Ñ Ø Ò Ô ÖÔØÛ× ØÓÙ Ø ØÖ ÛÒ Ó ÔÐ Ñ ØÓ
Ñ L ÔÐ Ñ Ø
×
2 × ÔÐ ÙÖ ¸ Ø× ôר N = L×L = L Ò Ó ×ÙÒÓÐ
Ö Ñ
ÔÐ Ñ Ø ôÒ × ÛÒ Nl = 2N Ó ×ÙÒÓÐ
Ö Ñ
ØÛÒ ×ÑôÒ Ñ Ø Ü ÔÐ × ×Ø ÖÛÒ Ø ÒÛÒº À Ø Ð ÙØ ×Õ × ×Õ Ô Ô Ð ÓÙÑ ÐÓ
×ÙÒÓÖ
×ÙÒ
×ØÓ ÔÐ Ñ ´ к Ò Ø Ø ¿º¿º¾¸ ËÕ Ñ Ò Ñ Ð Ù Ö
¸ ØÓ ¿º¿º¾µº Ë ÔÐ Ñ Ø × i ÕÓÙÑ
¿
Ã
ï Ä ÁÇ º ÈÊÇËÇÅÇÁÏËÀ ÌÇÍ ÈÊÇÌÍÈÇÍ
ISING
×Ô Ò si ØÓ ÓÔÓÓ Ô ÖÒ Ó Ø Ñ
¸ ×ØÛ ±1º  ÛÖÓ Ñ ØÓ × ×Ø Ñ Ø Ò Ô ÖÔØÛ× Ñ Ò Ó Ñ Ò Ø Ó Ô ÓÙ B = 0 ÓÔ Ø Hamiltonian ½ ØÓÙ ×Ùר Ñ ØÓ
Ò Ø Ô Ø ×Õ ×
H =− si sj .
ij
´ º½µ
ÂÙÑÞÓÙÑ ÔÛ
Ò ÖÓ ×Ñ Ô ÒÛ ×ØÓÙ
×ÑÓ
i, j ¸ к ij N Ô ÒÛ ×Ø Þ ØÓÒ ôÒ ÔÐ Ñ Ø ôÒ × ÛÒº i,j = (1/2) i=1 Ó ×Ø Ø Ö Ô ÖÔØÛ× ×Ñ
ÖÓÞ Ø Ó ÓÖ
¸ Ñ Ô ÔÐ Ñ Ø × ÔÓÙ Ö× Ø ×Ø Ö ØÓÙº À ×ÙÒ ÖØ × Ô Ñ Ö ×ÑÓ Ò
Z=
s1 =±1 s2 =±1
N j=1
...
sN =±1
e−βH[{si }] ≡
eβ
{si }
P
ij
si sj
.
´ º¾µ
ËØ ÕÓ
Ñ
Ò Ñ ÓÙÖ Ò
Ñ ØÓ
Ø Ü ÛÒ ×Ô Ò ØÓÙ ×Ùר Ñ ØÓ
ØÓ ÔÓÙ ØÒÑØ × Ñ ÛÒ Ñ Ø Ò Ø ÒÓÑ Boltzman ´½º µ Ñ ÓÙÖ ×ÓÙÑ Ø ÕÒÓÒØ
Ñ ÐÙ× Markov × Ñ ÛÒ Ñ ÙØ ÔÓÙ Ôô Ò ×Ø Ò Ô Ö Ö Ó ¾º¾º À Ñ ØÓÐ Ý Ò × Ñ ÛÒ Ñ Ø Ò ´¾º µ Ó Ñ×
ØÑ
ÙÔÓÐÓ ÞÓÒØ Ô ØÓ Ñ Ô Ø Ò ´¾º µ º Ô Ð ÓÒØ
× Ñ Ø
×
Ø Ò Ô Ñ Ò Ø ×Ø × ØÓÙ ×Ùר Ñ ØÓ
× Ñ ÛÒ Ñ Ø Ò ´¾º½¿µ ¸ ØÓ Ñ Ñ
Ö× Ø ÔÖÓ× ×Ø ר Ò Ô ÙÑ Ø Ø ÒÓÑ Ö Ø Ñ ÐÓ ÔÐ Ó
×ØÓ Õ ÛÒ ×Ó Ò Ñ ÖÑ Ñ ØÛÒ ´ ÐÐ ô
Å ÒØ à ÖÐÓ ÕÖ ÒÓ µ ר Ò × Markovº ³ ×ØÛ ÓØ ØÓ × ×Ø Ñ Ñ
Ö× Ø ÖÕ ×Ø Ò Ø ×Ø × ¾ µº À Ô ÒØØ Ò Ö ×ØÓ Ô Ñ ÒÓ Ñ Ø
×
ר Ò Ø ×Ø × ν¸ × Ñ ÛÒ Ñ Ø Ò ´¾º½ µ Ò ÔÓÙ g(µ → ν) Ò Ô ÒØØ Ô ÐÓ
Ø
Ø ×Ø ×
ν Ø Ò ØÓ × ×Ø Ñ Ö× Ø ×Ø Ò Ø ×Ø × µ A(µ → ν) Ó Ð Ó
¹ ÔÓ ÓÕ
¸ к Ô Ò Ø Ø Ø Ø ØÓ × ×Ø Ñ Ò Ñ Ø ×Ø Ò Ø ×Ø × º Ò ÒÓÔÓ Ø ×ÙÒ Ð ÔØÓÑ ÖÓ
×ÓÞ ×
´¾º½¿µ
P (µ → ν) g(µ → ν) A(µ → ν) = = e−β(Eν −Eµ ) P (ν → µ) g(ν → µ) A(ν → µ)
´ºµ
P (µ → ν) = g(µ → ν) A(µ → ν) ,
´ º¿µ
½Η ¾Η
σταθερά J = 1 με κατάλληλη επιλογή μονάδων για τα si . κατάσταση µ εδώ ορίζεται από μία συγκεκριμένη διάταξη των N σπινς {si }i=1...N
º½º
Ä ÇÊÁÂÅÇË
METROPOLIS
Ø ÒÓÑ ×ØÓ Ñ Ñ
×Ù ÐÒ ×Ø Ò ´½º µ pµ = e−βEµ /Zº Ò Ò ÓÐÓ ÔÓ ÓÕ
A(µ → ν) Ö Ø Ñ ÐÓ ôר ØÓ × ×Ø Ñ Ò ÐÐ Þ ×ÙÕÒ Ø ×Ø × ´ØÓÙÐ Õ ×ØÓ > ¼±µ Ó Ñ Ø ÓÐ
ר Ò Ò Ö Eν −Eµ Ò ÔÖ Ô Ò Ò ÔÓÐ Ñ Ð
º Â ÔÖ Ô ØÓ Ò Ñ ÒÓ Ñ Ø ÖÑÓ Ö × Ò Ò Ö Ñ
Ø
Ø Ü
Ø
ÑÓÒ
º ³ Ò
ØÖ ÔÓ
Ò ØÓ Ô Ø ÕÓÙÑ ÙØ Ò Ò ÖÑ ×ÓÙÑ Ò Ò Ð Ö ÑÓ ÔÓÙ × Ñ ÑØ ÐÐ ØÒØÑ Ò
Ô Ø ×Ô Ò ØÓÙ ÔÐ Ñ ØÓ
′ si = ±1 → si ∓1º Ô ÒÖ ´ º½µ Ò ØÓÔ ÔÓ× Ø Ø ¸ Ñ Ø ÓÐ Ò Ö Ñ
×Õ Ø Ñ Ö
º È Ó ×Ù ÖÑÒ¸ Ò ÔÐ Ñ Ø × Õ z = 4 ÔÐ × ×Ø ÖÓÙ
ØÓÒ
¸ Ñ Ñ Ø ØÓ Ñ Ø ÓÐ ØÓ ÔÖ × ÑÓ ØÓÙ ÖÓÙ si sj ÐÐ Þ z ÖÓÙ
Ø
´ º½µ ¸ ÙØÓ
ÔÓÙ ÕÓÙÒ ×ØÓ Ò ÖÓ ØÓÙ
Ø × iº À Ñ Ø ÓÐ Ø
Ò Ö
Ò ±2 ×Ñ º Ò Ø ×Ø × µ ÓÖÞ Ø Ò Ò {s1 , . . . , si , . . . , sN } Ø ×Ø × ν Ò {s1 , . . . , s′i , . . . , sN } ´ к Ñ Ð Ø ×Ô Ò ¸ Ø
Ô ØÓ si ØÓ ÓÔÓÓ ÐÐ Þ ÔÖ × ÑÓ s′i ≡ −si µ¸ Ø Ø Ñ Ø ÓÐ Ø
Ò Ö
Ò
|∆E| ≤ 2z ⇔ Eµ − 2z ≤ Eν ≤ Eµ + 2z .
´ºµ
ØØ
Ò
Ô Ð ÜÓÙÑ
Ø
×
i ØÙÕ 0
1 N
ØØ ÖÓÙÒ Û
ÔÖÓ
ØØ Ò ×Õ Ò ×Ô Ò flip
´ºµ
g(µ → ν) = g(ν → µ) =
(µ, ν) ÐÐ ô
,
Ó
Ð
Ö
ÑÓ
Ò
ÖÓ
º
Â
ÔÖ Ô
³ Ò
ÔÐ
ØÖ ÔÓ
Ò Ø ×Õ × ´¾º½ µ
A(µ → ν) = e−β(Eν −Eµ ) . A(ν → µ)
´ºµ
ÒÓÔÓ
×ÓÙÑ
Ø
×ÙÒ
ÙØ
Ò
Ò
Ô ÖÓÙÑ
A(µ → ν) = A0 · e− 2 β(Eν −Eµ ) .
1
´ºµ
ÒÑ ×ØÓÔÓ ×ÓÙÑ ØÓÙ
Ð ÓÙ
ÔÓ ÓÕ
¸ Ó −βz A(µ → ν) ≤ 1¸ |∆E| ≤ 2z¸ Ô ÖÒÓÙÑ A0 = e º ³ Ö
A(µ → ν) = e− 2 β(Eν −Eµ +2z) .
1
ÔÖ Ô
Ò
´ºµ
×Õ
ËØÓ ËÕ Ñ
º½
Ò Ø
Ü ÖØ ×
ØÓÙ A(µ → ν)
Ô
Ø
ÑØ
ÓÐ
96
1 0.8 A(µ → ν) 0.6 0.4 0.2 0 -8
Ã
ï Ä ÁÇ º ÈÊÇËÇÅÇÁÏËÀ ÌÇÍ ÈÊÇÌÍÈÇÍ
ISING
β=0.20 β=0.44 β=0.60 A(µ → ν)
1 0.8 0.6 0.4 0.2 0 β=0.20 β=0.44 β=0.60 -8 -6 -4 -2 0 ∆Ε 2 4 6 8
-6
-4
-2
0 ∆Ε
2
4
6
8
ËÕ Ñ
º½ Λόγοι αποδοχής A(µ → ν) για το διδιάστατο πρότυπο Ising στο τετραγωνικό πλέγμα για τη σχέση (4.9) (αριστερά) και για τον αλγόριθμο Metropolis (δεξιά) σα συνάρτηση της μεταβολής της ενέργειας ∆E = Eν − Eµ . Φαίνεται η υπεροχή του τελευταίου, αφου οι λόγοι αποδοχής είναι πολύ μεγαλύτεροι.
Ø
ÒÖ Ò Ø Ñ ÔÓØ Ð ×Ñ
Ö¸
Ñ ÔÓ ÓØ
ÓÖ ØØ
βº
Ñ ØÓÙ
È Ö Ø ÖÓ Ñ Ø Ô ÒØØ ÙØ Ò Ñ Ø ÓÐ Ø
Ò Ö
¸ Ñ Ð Ö ÑÓÙ Ò Ò ×Õ Ø Ñ Öº Ð Ô Ö ÑÓ ØÛÒ Ø Ò ´¾º½ µ
Ò ÔÓÐ ÔÓ ÓØ Ø ÖÓ Ò ÕÖ × ÑÓÔÓ ×ÓÙÑ ØÓÒ Nicolas Metropolis et. al. 1953 ½ ℄ Ó ÓÔÓÓ
Ò Ø
e−β(Eν −Eµ ) Eν − Eµ > 0 . 1 Eν − Eµ ≤ 0
A(µ → ν) =
´ º½¼µ
Ë Ñ ÛÒ Ñ Ø Ò Ô Ö Ô ÒÛ ×Õ × ¸ ØÓ × ×Ø Ñ Ô ÒØ ÕØ Ø Ò ÐÐ Ñ
Ø ×Ø ×
Ø Ò ÙØ Ð ØØôÒ ØÒ ÒÖ ¸ Òô Ø Ò ÐÐ Ó × Ü× Ø
ÒÖ
ÙØ Ò Ø ØÑÔ ÒØØ Ñ ÖØÖ Ø
ÑÓÒ
º ³ÇÔÛ
Ò Ø Ô ØÓ ËÕ Ñ º½¸ ØÓ × ×Ø Ñ ÕØ ÐÐ
Ø ×Ø × ÛÒ ÔÓÐ ×ÙÕÒ Ø Ö Ô Ø Ò ÔÖÓ Ó Ñ Ò Ô ÐÓ Ñ
º Ç Ð Ö ÑÓ
ÙØ
Õ ÔÓÐ Ò ØÖ ÖÑÓ Ô Ø Ò Ô ÖÔØÛ× ÔÓÙ Ñ Ð Ø Ñ Õ ÙÖ ÕÖ × × ÒÑ ÐÓ ×Ñ ÔÖÓ Ð Ñ ØÛÒ Ð ÛØ
Ò Ø Ø
¸ ÔÐ Ø Ø
ÔÓ ÓØ Ø Ø
ØÓÙº Æ × Ñ ô×ÓÙÑ ÔÛ
Ô ÐÓ Ñ
Ò ÐÐ ÞÓÙÑ Ø Ò Ø ×Ø × µ → ν ÐÐ ÞÓÒØ
Ø Ò ØÑ Ò
Ñ ÒÓ ×Ô Ò Ò Ò Ô Ö ÓÖ ×Ñ
Ø
Ñ ÓÙ ÙØ
ÑÔÓÖÓ × Ò ÖÑÓר ÓÔÓ ÔÓØ ÐÐ Ø ×Ø × ÛÒº
º¾º
ËÉ
Á ËÅÇË ÃÏ
ÁÃ
º¾
ËÉ
Á ËÅÇË ÃÏ
ÁÃ
ØÓ ×Õ ×Ñ ØÓÙ ô ¸ Ø ÓÑ ØÛÒ ÓÑ ÒÛÒº Ç ±1 ÓÖ ×Ñ Ò ×Ø
N ÔÐ Ñ Ø ×ÙÒÓÖ
×ÙÒ
Ø ØÖ × ÛÒ¸ × Ñ ÛÒ Ñ × Ôô ר ËÕ Ñ Ø ¿º¿º¾¸ ¿º ¸ × Ô ÒÒ Ö Ó r=0,...,N-1 Ö ÓÙ
nn Ô
if((nn=r+1)>= if((nn=r-1)< if((nn=r+L)>= if((nn=r-L)< N) 0) N) 0) nn nn nn nn -= += -= += N N N N
Ò ÖÕ × Ñ ÒØ Ò ÓÖ×ÓÙÑ ÑÓ Ð Ù Ö
Ñ
Ò Ø ×Ô Ò si =
×
º Ô Ð ÓÒØ
Ð Ó
ÛÒ ÔÐ Ñ ÔÐ ÙÖ
L N=L*L ÔÐ Ñ Ø Ò ×Ø Ò Ò Ø Ø ¿º¿º¾ ÒÓÒØ Ô ÒÛ ×ØÓ ÔÐ Ñ ÑÔÓÖ Ò ÔÖÓ× ÓÖ ×Ø Òô Ó ÔÐ × ×Ø ÖÓ ØÓÒ
Ô ØÓÙ
direction direction direction direction
ôÒ
//+X //-X //+Y //-Y
Ç Ø Ü
ØÛÒ ×Ô Ò ÑÔÓÖÓ Ò Ò ÔÓ ÙØÓ Ò × Ö Ó array int s[N] Ñ Ô ØÖ ÔØ
Ø Ñ
±1º À Ô ÐÓ ØÛÒ Ð Ó ôÒ ´ ØÓÖÓ ôÒ»Ô Ö Ó ôÒµ ×ÙÒÓÖ ôÒ ×ÙÒ ôÒ Ò × Ñ ÒØ ØÓÒ × Ñ ÒØ Ô Ö ÓÖ ×Ñ ØÛÒ ÒÓÑ ÒÛÒ Ô Ô Ö ×Ñ ÒÓÙ Ñ ÓÙ
ØÓÙ ×Ùר Ñ Ø
Ñ
º ³ÇÐ
Ó ÔÐ Ñ Ø
×
ÕÓÙÒ ØÓÒ Ó Ö Ñ ÔÐ × ×Ø ÖÛÒ Ø ÒÛÒ ØÒ ØÓÔ ÛÑ ØÖ º ÌÓ × ×Ø Ñ Ò ×ÙÑÑ ØÖ Û
ÔÖÓ
Ø
Ñ Ø ØÓÔ×
Ð Ø ×Ô Ò ×Ó Ò Ñ º ÙØ ×ÙÒ Ò Ò ÐºÕº ÔÐ Ñ ØÓ Ø ØÖ ôÒÓ Ò Õ × ÒÓÖÓ ÔÓÙ Ø ×Ô Ò Ô ÖÒ Ò ÓÖ ×Ñ Ò
Ð Ö
Ø Ñ
º À ÙÒ Ñ Ø
Å ÒØ Ã ÖÐÓ Ü Ð Ü
ÓÖÞ Ø Ô Ø Ò ÖÕ Ø ×Ø × ØÓÙ ×Ùר Ñ ØÓ
ØÓÒ Ð Ö ÑÓ ØÓÙ Metropolisº Ã Ø ÐÐ Ð Ô ÐÓ ÖÕ ôÒ ×ÙÒ ôÒ ÑÔÓÖ Ò Ò Ü ÖØ × Ñ ÒØ ÔÖÓ×ÓÑÓ ô×
×Ùר Ñ ØÛÒ Ñ Ø Ñ Ó Ó Å ÒØ à ÖÐÓº Ô ÙØ Ü ÖØ ØÓ Ô ×Ó Ö ÓÖ ¸ Ñ ØÓ Ò¸ ØÓ × ×Ø Ñ Ö × Ø ×Ø × ÖÑ
×ÓÖÖÓÔ
º ËØ Ò Ô ÖÔØÛ× Ñ
ÙØ Ò Ø Ö × Ñ ÒØ ÔÖ Ð Ñ ÐÐ ØÓ Ñ Ð Ø ×ÓÙÑ Ð Û Ø
× Ñ ×
ØÓÙ × ÐÐ ÔÖÓ Ð Ñ Ø º ô ÖÕ Ø ×Ø × ÑÔÓÖ Ò ÔÐ Ò Ò Ô ÛÑ Ò ´β = ∞ ¹ Ð Ø ×Ô Ò Ò ÕÓÙÒ Ø Ò ØÑµ ÖÑ ´ØÙÔ Ø ×Ø × β = 0 ¹ Ø ×Ô Ò Ò ÕÓÙÒ Ø Ñ ±1 Ñ × Ô ÒØØ 1/2µº Ñ Ð ÔÐ Ñ Ø ÔÓÙ Ö× Ø
Ø ×Ø ×
ÖÑ
×ÓÖÖÓÔ
ÑÔÓÖ Ò Ô Ø Ö Ø Ñ Ø ¸ Ô Ð ÓÙÑ Ø ×Ø β = ∞ ר
Ô ÙÑ Ø
Ø Ñ
º Ñ Ø ÓÐ Ø
ÖÑÓ Ö ×
Ô β = 0
Ã
ï Ä ÁÇ º ÈÊÇËÇÅÇÁÏËÀ ÌÇÍ ÈÊÇÌÍÈÇÍ
ISING
Ë Ñ Ñ Ø ÓÐ
Ø
ÖÑÓ Ö ×
ÕÖ × ÑÓÔÓ Ó Ñ Ø ØÜ ×Ô Ò Ô Ø Ò ÔÖÓ Ó Ñ Ò ÔÖÓ×ÓÑÓÛ× Ø× ôר Ò Ö × Ñ ×Ø Ö ÓÖ ×Ø Ò Ø ×Ø × ÖÑ
×ÓÖÖÓÔ
º ÒôÒØ
Ô ÓÖ Ø
ÖÕ
×ÙÒ
×Ù ÖÒÓÒØ
Ø ÔÓØ Ð ×Ñ Ø Ñ
Ð ÕÓÙÑ Ø Ò ÓÖ Ø Ø ØÓÙ
¸ к ØÓ Ò ØÓ × ×Ø Ñ Ñ
Õ ÔØÕ Ø ÖÑ ×ÓÖÖÓÔ Ò Ñ Ó
Ñ
Ô ×Õ Ô ÔÖÓ Ð Ñ Ø ÖÓ Ø Ø
º Ø Ü Ø ÞÓÙÑ ØôÖ Ø ÑØ Ø
×
Markov ÔÓÙ Ô Ö Ô ØÓÒ Ð Ö ÑÓ Metropolisº ³ ×ØÛ Ø ØÓ × ×Ø Ñ Ñ
Ò ×Ø Ò Ø ×Ø × µ = {sµ , . . . , sµ , . . . , sµ } Ü Ø ÞÓÙÑ Ø Ñ Ø × ×Ø Ò 1 N k Ø ×Ø × ν = {sν , . . . , sν , . . . , sν } ÔÓÙ ÔÖÓ ÔØ Ô Ø Ò ÐÐ Ø
1 N k Ø Ñ
ØÓÙ ×Ô Ò sν = −sµ ´spin flipµ Òô Ø ÙÔ ÐÓ Ô ×Ô Ò Ô Ö Ñ ÒÓÙÒ k k Ø sν = sµ ∀j = kº j j À Ñ Ø ÓÐ Ø
Ò Ö
Ò
Eν − Eµ = (− =− =2
ik
ij
sν sν ) − (− ij
ν sµ (sk i
sµ sµ ) ij
ij
´ º½½µ ´ º½¾µ ´ º½¿µ
ik
−
sµ ) k
sµ sµ ik sµ , i
ÔÓÙ ×Ø ØÖ × Ö Ô Ð Ý Ñ ØÓÙ
Ó ÒÓ
ÖÓÙ
ØÛÒ Ó ÖÓ ×Ñ ØÛÒ µ µ ν ר Ò ØÖØ ÕÖ × ÑÓÔÓ × Ñ Ø ×Õ × sk −sk = −2sk ÔÓÙ ÑÔÓÖ Ø ÓÐ Ò ÔÓ Ü Ø Ü Ø ÞÓÒØ
Ø
Ó Ô Ö ÔØô×
sµ = ±1º k Ç Ð Ö ÑÓ
Metropolis ÖÑ Þ Ø ØôÖ ÓÐ º ÍÔÓÐÓ ÞÓÒØ
ÔÐ ØÓ ÖÓ ×Ñ ×Ø Ò Ô Ö Ò × Ø
Ø Ð ÙØ
× Ö
Ø
´ º½½µ Ô ÖÒÓÙÑ Ø Ñ Ø ÓÐ Ø
Ò Ö
Eν −Eµ º Ò Eν −Eµ ≤ 0 Õ Ñ ×Ø Ø Ø ×Ø × ν Ò Ò Ò Ø ×Ø × ØÓÙ ×Ùר Ñ ØÓ
º Ò Eν − −β(Eν −Eµ ) Eµ > 0 Ø Ø A(µ → ν) = e < 1º Ô Ð ÓÙÑ Ò Ò ÓÑÓ ÑÓÖ Ø Ò Ñ Ñ ÒÓ ØÙÕ Ó Ö Ñ 0 ≤ x < 1º À Ô ÒØØ Ò ÕÓÙÑ x < A(µ → ν)º ³ Ö Ò x < A(µ → ν) Õ Ñ ×Ø Ø A(µ → ν) Ò Ñ Ø ÓÐ ÐÐ ô
Ñ Ø ÓÐ ÔÓÖÖÔØ Ø Ô Ö Ñ ÒÓÙÑ ×Ø Ò Ø ×Ø × µº
= 2sµ k
´ º½ µ
ik
º¾º
ËÉ
Á ËÅÇË ÃÏ
ÁÃ
Ö Ø ÕÒ Ô Ö Ø Ö × ×ØÓ ×Õ ×Ñ ØÓÙ ÔÖÓ Ö ÑÑ ØÓ
Ò µ = −4, −2, 0, 2, 4º Ç ØÓ ÙÒ Ø
Ø Ñ
ØÓÙ ÖÓ ×Ñ ØÓ
ik si Ñ ÒÓ Ø Ñ
ÔÓÙ ÙÔ × ÖÕÓÒØ רÓÒ ÙÔÓÐÓ ×Ñ Ø
A(µ → ν) Ò ÙØ
ÔÓÙ ÙÜ ÒÓÙÒ Ø Ò Ò Ö ¸ к Ó Ó Ø Ñ
2, 4º Ç Ô ÒØ ÙØ
Ø Ñ
Ø A(µ → ν) ÑÔÓÖÓ Ò Ò ÔÓ ÙØÓ Ò ×Ø ÑÒ Ñ ØÓÙ ÙÔÓÐÓ ×Ø Ò ÔÓ ÓÙÑ Ø Ò Ö × ÕÖ ÒÓ Ô Ò Ð Ý ÙÔÓÐÓ ×ÑÓ −β(Eν −Eµ ) ØÛÒ Ø ôÒ e º Ì ÐÓ
ØÓ ÔÖ Ö ÑÑ Ñ
ÔÖ Ô Ò ÙÔÓÐÓ Þ Ø
Ù×
ÔÓ× Ø Ø
ÔÓÙ Ñ ØÖ ×ÓÙÑ Ø Ø Ñ Ð Ø ØÓÙ ×Ùר Ñ Ø
Ñ
º ÙØ
Ò ÒÖ ´ º½µ E=− si sj , ´ º½ µ
ij
Å
Ñ
Ñ
ÒØ×
M=
i
si .
´ º½ µ
À Ô ÐÙØ Ø Ñ ×Ø Ò Ø Ð ÙØ ×Õ × ÑÔ Ò Ð Û Ø
×ÙÑÑ ØÖ
Ò Ð ×
ØÛÒ ×Ô Ò ØÓÙ ×Ùר Ñ ØÓ
´ÓÑ Z2 µº Ô Ò ×ÓÔ ÒÓ Ò ÕÓÙÑ Ó ØÜ
Ñ Ð Ø ×Ô Ò ØÓÙ
Ò ÕÓÙÒ ÒØ Ø
Ø
Ø Ñ
ØÓÙ
× ÔÐ Ñ Ø ×¸ Ñ× ØÑ Ò Ô ÒØ ¼º ÖØ i si Ñ ÐÓ Ö Ñ Ñ ØÖ × ÛÒ ×
ÓÖ
ØÓ × ×Ø Ñ Ñ
Ò × ØÜ Ñ Ò × ØÜ Ñ si = M1 si = −M1 º ËØ Ò ÔÖ Ü ¸ i i ÔÛ
ÓѸ ÑØ × Ô ØÒ Ø ×Ø × Ñ Ñ Ò Ø × M1 ר Ò Ø ×Ø × Ñ Ñ Ò Ø × −M1 ÑÔÓÖ Ò ÕÖ ÞØ Ñ ÐÓ Ö Ñ Ñ ØÛÒ Å ÒØ à ÖÐÓ ÙØ Ò Ñ Ò Ô Ö Ø Ö Ø ×Ø Ò ÔÖÓ×ÓÑÓ ô× Ñ
º ËØÓ Ö Ó N → ∞ ´ ÖÑÓ ÙÒ Ñ Ö Óµ ØÓ × ×Ø Ñ ÔÐ Ø Ñ Ô Ø
Ó Ø ×Ø ×
´ Ù ÖÑ ØÓ ×Ô × ÑÓ ×ÙÑÑ ØÖ
µº Ç Ñ ØÖ ×
Ø
Ò Ö
Ø
Ñ Ò Ø ×
ÑÔÓÖÓ Ò Ò ÒÓÒØ Ñ Ó ØÖ ÔÓÙ
º ËØÓÒ ÔÖôØÓ Ò Ñ ÖôÒÓÙÑ Ø Ò Ø Ñ Ø
Ò Ö
Ø
Ñ ÒØ×
× Ñ Å ÒØ à ÖÐÓº ÙØ Ò Ø ÓÐ Ø Ñ Ø ÓÐ ØÛÒ Ø ÑôÒ ØÛÒ ÖÓ ×Ñ ØÛÒ ×Ø
´ º½ µ ´ º½ µ Ü ÖØ Ø ØÛÒ Ø ÑôÒ ØÓÙ ×Ô Ò Ñ ÒÓ Ô Ø Ò Ø Ñ ØÓÙ ×Ô Ò sµ ÔÓÙ ÐÐ Þ k ØÛÒ ÔÐ × ×Ø ÖÛÒ Ø ÒÛÒº Ì Ñ Ø ÓÐ Ø
Ò Ö
Ø Ò ÙÔÓÐÓ ÞÓÑ Ø× ÐÐ ô
Ô Ø ×Õ × ´ º½½µ Òô Ñ Ø ÓÐ ØÓÙ ÖÓ×Ñ ØÓ
ר Ò ´ º½ µ Ò Ø ÔÐ Ô ØÒ
i
sν − i
i
µ sµ = sν − sµ = −2sk i k k
´ º½ µ
½¼¼
Ã
ï Ä ÁÇ º ÈÊÇËÇÅÇÁÏËÀ ÌÇÍ ÈÊÇÌÍÈÇÍ
ISING
Ç Ø ÖÓ
ØÖ ÔÓ
Ò Ò ÙÔÓÐÓ ÞÓÙÑ Ø ÖÓ×Ñ Ø ´ º½ µ ´ º½ µ ÓÖ ÔÓÙ ÐÓÙÑ Ò Ô ÖÓÙÑ Ñ Ñ ØÖ × º ÈÓ Ñ Ó Ó
Ò Ô Ó ×ÙÑ ÖÓÙ× Ü ÖØ Ø Ô ØÓ Ô ×Ó ×ÙÕÒ Ô ÖÒÓÙÑ Ñ ×Ø Ø ×Ø Ò Ü ÖØ Ø Ñ ØÖ × ´ÕÖ ÒÓ ÙØÓ×Ù×Õ Ø ×ÑÓ ¸
ÔÖ ØÛµ Ô ØÓ Ð Ó ÔÓ ÓÕ
ØÛÒ Ñ ØÛÒ Å ÒØ à ÖÐÓº ĺպ ØÓÒ ÙÔÓÐÓ ×Ñ ¯ Ø
Ñ Ò Ø ×
¸ Ò Ó Ñ ×Ó
Ð Ó
ÔÓ ÓÕ
Ò A¸ Ø Ø Ñ ØÓÒ ÔÖôØÓ ¯ Ñ Ø ´1 sweepµ Òô ØÖ ÔÓ ÕÛ AN ÔÖÓ× ×
Ò N ÅÓÒØ Ã ÖÐÓ Ñ ØÓÒ Ø ÖÓ ÕÛ N ÔÖÓ× ×
Ò Ñ ØÖ × º Ò ×ÙÒ ×Ñ ÒÓ Ò ÒÓÒ ÓÔÓ Ó Ñ Ø Ò Ò Ö Ò ×Ñ
e= 1 1 E= E, Nl 2N
´ º½ µ
ÓÔÓ Ô ÖÒ ØÑ ÕÓÙÒ Ø Ñ ¹½µ Ñ ÕÖ
Ô ¹½ ´ Ñ Ð ô
·½¸ Òô Ø Ñ Ò Ø ×
m= 1 M, N
Ø ×Ø × ¸ ÐÓ Ò ÔÐ Ñ Ø
Ó
2N ×
´ º½ µ
×ÑÓ
ÓÔÓ Ô ÖÒ ØÑ Ô Ø ×Ø × ¹ β = ∞µº Ø Ü
´order parameterµ¸ Ø Ñ Ñ
ÙÔÓ Ò ÔØ phaseµ × × Ø Ü
Ô Ø
ÔÓ× Ø Ø
ÙØ Ô ØÒ ÖÑ Ø Ø
¼ ´ÔÐ Ö
Ø Ü ¹ β = 0µ Û
½ ´ Ñ Ð ô
ØÓ Ð Ó ÙØ ¸ Ñ ÒØ× Ò Ñ Ô Ö Ñ ØÖÓ
к Ñ Ù× ÔÓ× Ø Ø Ø
ÓÔÓ
Ñ× ØÓ × ×Ø Ñ Ö× Ø × × Ø Ü
´ordered ´disordered phaseµº
ÙÔÓÐÓ ÞÓÙÑ Ø
ÙÑ Ò×
Ø
Ò Ö
´ º¾¼µ
c = β 2 N (e − e )2 = β 2 N( e2 − e 2 ) ,
Ø
Ñ
ÒØ×
Ô
Ø
Ñ
ÒØ
Ô
Ø
ØØ
´ º¾½µ
χ = βN (m − m )2 = βN( m2 − m 2 ) .
Ò Ø Ñ ×ÓÙÑ Ô × ÓÑ Ò ÔÖ Ô Ò ×ÙÐÐ ÜÓÙÑ Ñ Ð Ñ ØÖ × ØÛÒ Ô Ö Ô ÒÛ ÔÓ×ÓØ ØÛÒ¸ Ò ØÖ ÕÓÙÑ ×ØÓ ÔÓØ Ð ×Ñ Ø
Ò ×Ø Ø ×Ø
ÔÓÙ Ñ
Ð Ø Ò ÕÓÙÑ n √ Ü ÖØ Ø
Ñ ØÖ ×
¸ Ø Ø ØÓ ר Ø ×Ø × ÐÑ Ð ØØôÒ Ø × Ò ∼ 1/ nº ÌÓ ÔÖ Ð Ñ Ò ÔØ ÕÓÙÑ Ò Ü ÖØ Ø
Ñ ØÖ ×
ØÓ ÒØ Ñ ØÛÔ×ÓÙÑ Ô Ö ØÛº
º¾º
ËÉ
Á ËÅÇË ÃÏ
ÁÃ
½¼½
º¾º½
Ç ÃÏ
ÁÃ
Ë
ËØ Ò Ô Ö Ö Ó ÙØ Ô ÖÓÙ× ×ÓÙÑ Ò Ð ×ÓÙÑ ØÓÒ ô ÔÓÙ ÙØ Ò ØÓ ÕÖ × ÑÓÔÓ ×ÓÙÑ ×Ø Ò ÔÖÓ×ÓÑÓÛ× ØÓÙ ÔÖ ØÙÔÓÙ Isingº Ô ÖÒÓÙÑ Ô ØÓ ÐÓ ØÛÒ Newman Barkema ½℄º  ÓÐÓÙ ×ÓÙÑ Ø ÐÓ×Ó ØÓÙ modular programming ÔÓÙ ØÓÔÓ Ø ×ÓÙÑ × ÓÖ Ø ÖÕ Ü ÕÛÖ ×Ø
Ò Ø Ø
ØÓÙ ô º ÙØ Ò Ù ÓÐ Ø Ö Ø Ò Ò ÔØÙÜ ¸ Ð ÕÓ ×ÙÒØ Ö × ØÓÙ ô Ô ÒÒ Ô Ö ×× Ø ÖÓÙ
ÔÖÓ Ö ÑÑ Ø ×Ø
º ÖÕ × Ò ÖÕ Ó Ô Ð ´header fileµ ØÓÔÓ ØÓ Ñ ØÓÙ
ÓÖ ×ÑÓ
ÔÓÙ Ò Ó ÒÓ Ò Ô Ö ×× Ø Ö ÖÕ º ÌÓ ÖÕ Ó ÙØ ¸ ô ØÓ ÓÒÓÑ ÞÓÙÑ include.h¸ ×ÙÑÔ Ö Ð Ñ Ò Ø × ÖÕ Ó ÔÓÙ ØÓ ÕÖ × ÑÓÔÓ Ñ Ñ ÒØÓÐ ØÓÙ preprocessor
#include "include.h"
Ì
ÔÖ
ÕÑÒ
ØÓÙ
ÖÕ ÓÙ
Ò
/************************** include.h ********************************/ #include #include #include #define #define #define #define L 12 N (L*L) XNN 1 YNN L
int s[N]; double beta; double prob[5]; int E(), M(); double drandom(); long seed; void init(int ), met(), measure();
ÉÖ × ÑÓÔÓ Ó Ñ ØÓÒ preprocessor ØÓÙ ×Ùר Ñ ØÓ
L ´ ô Ò ½¾µ
¿ Παρατηρήστε
Ò ÓÖ×ÓÙÑ ×ÙÑ ÓÐ ØÓ N ØÓ ÓÔÓÓ Ò
ØÓ Ñ ØÓ L*Lº
¿
Ó
τις παρενθέσεις. Γιατί μπαίνουν;
½¼¾
Ã
ï Ä ÁÇ º ÈÊÇËÇÅÇÁÏËÀ ÌÇÍ ÈÊÇÌÍÈÇÍ
ISING
ÌÓ array s[N] Ò × ×Ø ÑÒ Ñ ÔÓÙ ÕÖ × ÑÓÔÓ Ó Ñ Ø Ò ØÖ ÕÓÙ× Ø Ü ØÛÒ ×Ô Ò ØÓÙ ×Ùר Ñ ØÓ
º ÂÙÑÞÓÙÑ ÔÛ
Ó Ô ØÖ ÔØ
Ø Ñ
ØÓÙ Ø ØÓÙ array Ò s[0], s[1], ... , s[N-1]º À Ñ Ø Ð Ø beta Ò ÖÑÓ Ö × β ØÓÙ ×Ùר Ñ ØÓ
ר Ò prob[5] ØÓÔÓ ØÓ Ñ Ø
ÙÒ Ø
Ø Ñ
ØÛÒ Ô ÒÓØ ØÛÒ A(µ → ν) ÔÛ
Ü × Ñ ×Ø × Ð º Ç ÙÔ ÐÓ Ô
Ðô×
ÓÖÓ Ò Ø
Ø Ñ ÒØ× ×ÙÒ ÖØ ×
E(), M() ÔÓÙ ÙÔÓÐÓ ÞÓÙÒ Ø Ò Ò Ö ØÓÙ ×Ùר Ñ ØÓ
¸ Ø Ò init(int start) ÔÓÙ ÖÕ ÓÔÓ Ø Ò ÔÖÓ×ÓÑÓÛ× ¸ Ø Ò met() ÔÓÙ Ò Ò Å ÒØ Ã ÖÐÓ sweep ´N Ñ Ø Metropolisµ ô
Ø measure() ÔÓÙ Ò Ø
Ñ ØÖ ×
Ø
Ò Ö
Ø
Ñ Ò Ø ×
º À drandom() Ò ÙØ ÔÓÙ ÕÖ × ÑÓÔÓ ×ÓÙÑ ÒÒ ØÖ Ý Ù ÓØÙÕ ÛÒ Ö ÑôÒ Ó ×Ô ÖÓ
seed Ò ÓÖ Ø
Ô ÐÓ ØÓ ÔÖ Ö ÑÑ ¸ Ø× ôר Ò ÑÔÓÖÓ Ñ Ò ØÓÒ ×ÓÙÑ Ô ÓÖ Ø
×ÙÒ ÖØ ×
ÔÓØ ØÓ Ô ÙÑÓ Ñ º Ì ÐÓ
Ó Ô Ö Ñ ØÖÓ XNN YNN Ò ÙØ
ÔÓÙ Ñ
Ó Ó Ò ×ØÓÙ
ÔÐ × ×Ø ÖÓÙ
ØÓÒ
Ñ
ÔÐ Ñ Ø
×
× Ñ ÛÒ Ñ × Ô Ñ ×Ø Ò ÖÕ Ø
Ò Ø Ø
º¾º ÔÖ Ñ i+XNN Ò Ó ÔÐ × ×Ø ÖÓ
ØÓÒ
Ø
´ ×ÛØ Ö
µ ×
i Ø Ø Ò +x ÙÒ× i-YNN Ò Ó ÔÐ × ×Ø ÖÓ
ØÓÒ
Ø Ø Ò −y ÙÒ× º ÌÓ ÔÖ Ö ÑÑ Ñ
Ó Ø Ô Ø Ò ×ÙÒ ÖØ × main()
/************************ #include "include.h" main.c ********************************/
int main(int argc, char **argv){ int start=0; int isweep,nsweep = 100; beta=0.21;seed=9873;start=1; init(start); for(isweep=0;isweep0 ÇÔ Ò Ø Ø
ÙØ
Ñ
Ò ÖÓÙÒ Ø Ò sµ k ik si ÙÒ Ø
Ø Ñ
ÔÓÙ ÑÔÓÖ Ø Ø Ò Ô Ö Ò ¾ º ÙØ
Ò Ó Ø Ñ
ÔÓÙ ÔÓ ÓÙÑ ÙÑ Ñ ×Ø Ø Ó Ø
ØÓÙ array µ µ Ò Ö × sk Ø Ò ÙØ Ò Ø º ik si ËØ ×ÙÒ Õ ÓÖÞÓÙÑ Ø Ò ÖÕ Ø Ü ØÛÒ ×Ô Ò Ò ÐÓ Ñ Ø Ò Ø Ñ ÔÓÙ Ô ÖÒ Ó Ö Ó
startº ÌÓ switch block Ñ
Ô ØÖ Ô Ò ÔÖÓ× ×ÓÙÑ ×ØÓ Ñ ÐÐÓÒ ÐÐ
ÙÒ Ø Ø Ø
Ò ØÙÕ Ò Ò Ñ ×ÓÙÑ ØÓÒ ô º Ò start=0 Ó Ø Ñ
ÐÛÒ ØÓÒ ×ÔÒ Ø ÓÒØ ×
Ñ ½¸ Òô Ò start=1 ØÓÙÑ Ø
Ø Ñ
ØÛÒ ×Ô Ò Ñ × Ô Ò Ø Ø ±1º ÀÔ Ò Ø Ø drandom()<0.5 Ò 1/2 ÓÔ Ø ×Ø Ò Ô ÖÔØÛ× ÙØ s[i]=1 ÐÐ ô
´Ô Ò Ø Ø 1 − 1/2 = 1/2µ s[i]=-1º ÙØ ØÐ À Ö ØÓÙ ÔÖÓ Ö ÑÑ ØÓ
Ò ×ÙÒ ÖØ × met()º N Metropolis ÑØº Ô × ÔØ Ø N ÓÖ
Ñ ØÙÕ ÔÐ Ñ Ø × Ø ØÓ ÖôØ Ñ Ò ÑØ ÐÐ Ø Ò Ø Ñ ØÓÙ ×Ô Ò ´spin flipµº ÙØ Ò Ø × Ñ ÛÒ Ñ ØÓÒ Ð Ö ÑÓ Metropolis ÙÔÓÐÓ ÞÓÒØ
Ø Ñ Ø ÓÐ ×Ø Ò Ò Ö ÔÖ Ò Ñ Ø Ø Ò ÐÐ ØÓÙ ×Ô Ò × Ñ ÛÒ Ñ Ø ×Õ × ´ º½½µ
P
/************************ #include "include.h" void met(){ int i,k; int nn,sum,delta;
met.c *********************************/
for(k=0;k= N) nn -= N; sum = s[nn]; if((nn=i-XNN)< 0) nn += N; sum += s[nn]; if((nn=i+YNN)>= N) nn -= N; sum += s[nn]; if((nn=i-YNN)< 0) nn += N; sum += s[nn]; /*change in energy/2*/ delta = sum*s[i]; /*flip*/ if(delta <=0 ) {s[i] = -s[i];} //accept
º¾º
ËÉ
Á ËÅÇË ÃÏ
ÁÃ
½¼
else if(drandom()= if((nn=i-XNN)< if((nn=i+YNN)>= if((nn=i-YNN)< N) 0) N) 0) nn nn nn nn -= += -= += N; N; N; N; sum = s[nn]; sum += s[nn]; sum += s[nn]; sum += s[nn];
À
ÒØÓÐ
кպ
if((nn=i+XNN)>= N) nn -= N;
ÙÔÓÐÓ Þ ØÓÒ ØÓÒ ×Ø Ò +x ÙÒ× º ÌÓ if(...) ÑÔ Ò Ø Ò Ô ÖÔØÛ× ÔÓÙ Ü Ô Ö ×ÓÙÑ Ø Ö ØÛÒ Ø ÑôÒ 0,...,N-1¸ ÓÔ Ø ÔÒ ÖÓÙÑ Ø Ò Ø Ñ ÖôÒØ
Nº ô Ð ÔÓÙÑ Ø Ò ÔÐ Ø Ø ØÛÒ ÐÓ ôÒ ×ÙÒÓÖ ôÒ ×ÙÒ ôÒ¸ Ò Ö ô
Ó Ð Ó
ÔÓÙ Ø
ÔÐÜѺ Ó Ö Ó ØÓÒ
¸ ÔÖÓ× ØÓÙÑ Ø Ò Ø Ñ ØÓÙ ×Ô Ò ØÓÙ ×Ø Ò Ö Ñ Ø Ð Ø sumº Ô Ò Ð Ñ ÒÓÙÑ Ø × ÐÓÙ
ØÓÙ
ÔÐ × ×Ø ÖÓÙ
ØÓÒ
º ËØ ×ÙÒ Õ ×Ø Ò Ñ Ø Ð Ø delta ØÓÙÑ ØÓ Ò Ñ ÒÓ ´ º½½µ µ µ sk Ò ÙØ Ò ÖÒ Ø ¸ØØ Ñ Ø ÓÐ Ø
Ò Ö
ik si º Ò ÖÒ Ø ÐÐ ØÓÙ ×Ô Ò Ò Ø Øº Ò Õ¸ØØ ÖÑ ÞÓÙÑ ØÓ Ö Ø Ö Ó ´ º½¼µ ÕÖ × ÑÓÔÓ ôÒØ
Ø Ò Ø Ñ ØÓÙ array prob[delta] × Ñ ÛÒ Ñ ØÓÒ ØÖ ÔÓ ÔÓÙ ØÓ Ø × Ù × Ñ ×Ø Ò init(start)º ÀÔ Ò Ø Ø ØÓÙ ÓÑÓ ÑÓÖ Ø Ò Ñ Ñ ÒÓÙ ×ØÓ ×Ø Ñ [0, 1) Ö ÑÓ
106
Ã
ï Ä ÁÇ º ÈÊÇËÇÅÇÁÏËÀ ÌÇÍ ÈÊÇÌÍÈÇÍ
ISING
prob[delta] ר Ò Ô ÖÔØÛ× ÙØ drandom()= N) nn -= N; sum = s[nn]; if((nn=i+YNN)>= N) nn -= N; sum += s[nn];
º¾º
ËÉ
Á ËÅÇË ÃÏ
ÁÃ
107
e += sum*s[i]; } return -e; } int M(){ int i,m; m=0; for(i=0;i out.dat % less out.dat -52 10 -48 40 -64 44 -92 64 ......
À ÜÓ Ó
ØÓÙ ÔÖÓ Ö ÑÑ ØÓ
Ò × Ó ×Ø Ð
¸ ר Ò ÔÖôØ ØÙÔôÒ Ø ×ÙÒÓÐ ÒÖ ×Ø ÙØ Ö Ñ Ò Ø × ´ÕÛÖ
Ô ÐÙØ Ø Ñ µº Ò Ø ÜÓÙÑ Ø
Ð Ñ Ò
ÕÖÓÒÓ× Ö
ØÛÒ Ñ ØÖ × ôÒ Ñ
ÑÔÓÖÓ Ñ Ò ô×ÓÙÑ Ø
ÒØÓÐ
% gnuplot gnuplot> plot "out.dat" using 1 with lines gnuplot> plot "out.dat" using 2 with lines gnuplot> plot "out.dat" using (($2>0)?$2:-$2) with lines
ËØ Ò Ø Ð ÙØ Ö ÑÑ Ø ÕÒÓÑ ØÓ Ö Ñ Ø
M Ô ÖÒÓÒØ
Ø Ò Ô ÐÙØ Ø Ñ ØÓÙ ÖÓ×Ñ ØÓ
ØÑ Ô ØÓ gnuplot Ò Ñ
i si º Ò Ø Ö Ô Ö ×Ø × Ô ÖÒÓÒØ
Ø Ø Ö ×Ø Ð $2 Ò ÙØ Ò Ø ($2>0) ÐÐ ô
ØÓ ÒØ Ø Ø
-$2º
º¾º¾ ÄÌÁÏËÀ ÌÇÍ
INTERFACE
ËØ Ò Ò Ø Ø ÙØ ÒÓÙÑ ÐØ ô×
רÓÒ ô ¸ ÙÖÛ
×ØÓ ÔÔ Ó ÐÐ Ð Ô Ö ×
Ñ ØÓ ÕÖ ×Ø ´user interfaceµº ÌÓ ÔÖ Ö ÑÑ ×Ø ÑÓÖ ÔÓÙ ØÓÙ ô× Ñ ×Ø Ò ÔÖÓ Ó Ñ Ò ÒØØ Õ ÔÖÓ Ö ÑÑ Ø ×Ñ Ò
´hard codedµ Ø
ÓÖ
Ô Ö Ñ ØÖÓÙ
Ø
ÔÖÓ×ÓÑÓÛ×
ÓÖ ÔÓÙ ÐÓÙÑ Ò Ø
ÐÐ ÜÓÙÑ ÔÖ Ô Ò Ø
Û ÓÔÓ ×ÓÙÑ ×ØÓ ÒØ×ØÓ ÕÓ ÖÕ Ó Ò Ô Ò Ñ Ø ÐÛØØ×ÓÙÑ ØÓÒ ô º Ì ÐÓ
ÐÐ ÐÐ ÓÖ ×ØÓ Ò ÔÓ ÓÙÑ Ø Ò Ø Ð ÙØ Ø Ü ×Ø Ò ÓÔÓ Ö× Ø ØÓ × ×Ø Ñ Ò ØÒ ÞÓÙÑ ÖÕ ØÜ ØÒÜ ÒÑ Ñ ÒÓ Ö ÔÖÓ×ÓÑÓÛ× º Ë ÓÙÖ Ó Ô Ö Ñ ØÖÓ beta, nsweeps, seed ÐÔ Ò ÓÐÓ Ò ÞÓÒØ Ô ØÓ ÔÖ Ö ÑÑ ÕÛÖ
Ò ÒÓÙÑ Ø ØÓ Ø ÖÓº ÙØ ÔÓÙ ÒÓÙÑ ÕÖ ÞØ ÔÓ ÔÜ × Ò Ø ×ØÓ Ò Ó ÔÖ Ö ÑÑ ×ÓÙÑ ØÓ Ñ Ó
ØÓÙ ×Ùר Ñ ØÓ
L Ò Ô Ö Õ Ø Ö ×Ø Ô ØÓ ÕÖ ×Ø º À ÓÖ Ñ Ø
ÔÖÓ Ó Ñ Ò
Ô Ö Ñ ØÖÓÙ
¸
º¾º
ËÉ
Á ËÅÇË ÃÏ
ÁÃ
½¼
Ò ÞØ ØÓÙ ÔÓÙ ×Ø ÔÓÙ ÙØ
ØÓ Nµ ÓÖÞ Ø Ò ÔÓ× Ø Ø ÑÒ Ñ
ÔÓÙ Ø ØÓ L ´ Ö × ØÓ ÔÖ Ö ÑÑ Ô ØÓ Ð ØÓÙÖ × ×Ø Ñ Ò ØÖ Ü ¸ Ñ ×Û Ñ ÓÙ
ØÓÙ array s[N]º ÉÖ Þ Ñ ×Ø Ðô×× ÔÖÓ Ö ÑÑ Ø ×ÑÓ Ô Ð ÓÙÑ Ò Ñ
Ô Ö Õ Ø ÙÒ Ø Ø Ø Ò Þ Ø Ñ ÙÒ Ñ Ø Ñ ÔÓÙ ØÓ ÔÖ Ö ÑÑ ØÖ Õ Ø Ò Ô Ö Ø Ø ÑÒ Ñ Ø arrays ÕÖ × ÑÓÔÓ º À Ðô×× C Õ Ø ×ÙÒ ÖØ × malloc() Ø Ð ØÓÙÖ
Ü ×ÓÙÑ ×ØÓ × Ñ Ó ÙØ Ôô
ØÓ ÒÓÙÑ º Ã Ø ÖÕ Ò ØÓ array s[N] Ò ÑÔÓÖ Ò ÓÖ ×Ø ØÛÒ ÔÖÓØ ÖÛÒ ÔÛ
Ô Ñ ¸ Ó ØÓ N Ò Ò ÒÛר º ÒØ ÙØÓ ¸ ØÓ N Ò Ø Ñ Ñ Ø Ð Ø Ø ÔÓÙ int ÞØØ ØÑ Ø
Ò Ó Ô ØÓ ÕÖ ×Ø º ³Ç×Ó ØÓ s¸ ÙØ Ô Ò Ø Ò pointer × int
int L, N, *s;
Ó
ØÑ
ØÓ N Ò
ÒÛר ¸ ØÓ ÔÖ
Ö ÑÑ
Ð Ø Ò malloc()
s = (int *)malloc((size_t) (N*sizeof(int)));
À malloc() Ô ÖÒ × Ò Ö ×Ñ ØÓÒ Ö Ñ ØÛÒ bytes ÔÓÙ Þ Ø Ó ÕÖ ×Ø
Ô ×ØÖ Ò pointer ר ÑÒ Ñ Ñ Ø Ò ØÓ Ñ Ò ÑÒ Ñ ´ Ò ÔÓØ Õ Ñ
ÐÓÙÑ Ò ÔÓ ×ÓÙÑ N Ö ÓÙ
ÙØ Ò ØÓ NULL pointerµº Ö ÐÓÙÑ ´Nµ × ´ Öº bytes ÔÓÙ Ô Ò ×Ø ÑÒ Ñ Ö Ó
µ bytesº ËØÓ Ð ØÓÙÖ ÔÓÙ ÕÓÙÑ ¸ Ö Ó
Ô Ò bytes ÑÒ Ñ
ÐÐ Ñ
ÔÖÓØ ÑÓ Ñ ÙØ Ò Ñ
ØÓ ô× ×ÙÒ ÖØ × sizeof() ´ ô sizeof(int)=4µº Å ØÓÒ ØÖ ÔÓ ÙØ ¸ ØÓ ÔÖ Ö ÑÑ Ñ
ØÖ Õ ×Ûר × ÐÐ
ÔÐ Ø ÖÑ
´portabilityµº ÌÓ cast (size t) ÕÖ ÞØ Ø ÔÛ
Ñ ÒÓÙÑ Ô ØÓ Õ Ö Ó Ø
malloc ØÓ Ö ×Ñ Ø
ÔÖ Ô Ò Ò ÙØÓ ØÓÙ Ø ÔÓÙº ÌÓ cast (int *) ×ØÓ pointer ÔÓÙ Ô ×ØÖ malloc() ÕÖ Þ Ø ¸ ÐÐ ô
Ô ÖÓÙÑ pointer × voidº Ø ØÓ Õ Ö Ó Ø
% man malloc
³ÇØ Ò ÑÒ Ñ ÔÓÙ Þ Ø × Ñ Ñ
Ø Ò Ð Ù Öô×ÓÙÑ Ñ Ø Ò ×ÙÒ ÖØ ×
free(s);
Ò Ô free()
Ò
¸ ÑÔÓÖÓ Ñ
Ò
Με τη Fortran 77 δεν έχουμε τη δυνατότητα αυτή. Στην πραγματικότητα macro.
110
Ã
ï Ä ÁÇ º ÈÊÇËÇÅÇÁÏËÀ ÌÇÍ ÈÊÇÌÍÈÇÍ
ISING
Ë Ñ
Ò Ò ØôÖ Ò Ó Ó ÕÖ Þ Ñ ×Ø ØÓ s Ñ ÕÖ ØÓ Ø ÐÓ
¸ ÐÐ ØÓ Ò ÖÓÙÑ ÔÐ Ö Ø Ø º ³ÇØ Ò Ü ÕÒ Ñ Ò ØÓ ÒÓÙÑ ¸ ØÓ ÔÖ Ö ÑÑ Ñ
Õ ‘‘memory leaks’’ ÑÔÓÖ Ò Ñ ÓÙÖ × ÔÖÓ Ð Ñ Ø ×ØÓÒ ÙØ ØÓÙ ØÓÙ
ººº ÐÐÓÙ
È Ö Ð ÔØ Ò ÖÓÙÑ ØÓ ÐÐ
ÐÐ
ÔÓÙ ÜÞ Ò ×Ñ ÛÓÒ Ò ÔÓ Ù× ×Ñ Ø
Ø Ð
Ø Ü
ØÓÙ ×Ùר Ñ ØÓ
ô
ØÓ Ô Ö ×Ñ ØÛÒ Ø ÑôÒ ØÛÒ Ô Ö Ñ ØÖÛÒ Ö ×Ø Ñ ×Û unix optionsº ÙØ
×ÙÞ Ø Ó Ò ×Ø Ñ Ð Ø ØÛÒ Ñ Ø ÓÐôÒ ×Ø ÖÕ init.c end.cº ÖÕÞÓÙÑ Ø Ñ Ð Ø ØÓÙ ô Ô ØÓ ÖÕ Ó Ô Ð ´header fileµ include.hº
/****************** #define _GNU_SOURCE #include #include #include #include #include int L; int N; int XNN, YNN; int *s; double beta; int nsweep,start; double prob[5]; int E(), M(); double drandom(); long seed; void init(int, char **), met(), measure(),simmessage(FILE *),locerr(char*); void usage(char **),get_the_options(int,char**),simend(); include.h *************************/
Ç ÐÐ
Ò Ð
ÐÐ ÑÐô
Ç Ô Ö Ñ ØÖÓ L, N, XNN, YNN Ò Ô ÖÒÓ Ò Ñ ×Û ØÓÙ preprocessor Ñ ÒØÓÐ
#define ÐÐ ÓÖÞÓÒØ × Ò Ñ Ø Ð Ø
ÔÓÙ ÔÖ× Ó ÕÖ ×Ø
Ø Ò ØÖ Õ ØÓ ÔÖ Ö ÑÑ º ØÒ Ø Ü ØÛÒ ×Ô Òº Ç ÙÔ ÐÓ Ô
ÇÖÞ Ø ØÓ pointer int *s ÐÐ
ÓÖÓ Ò ØÓÒ ÓÖ ×Ñ ×ÙÒ ÖØ × ÛÒ ÔÓÙ ×ÙÞ Ø ×ÓÙÑ Ô Ö ØÛº
º¾º
ËÉ
Á ËÅÇË ÃÏ
ÁÃ
111
ÈÖÓÕÛÖ Ñ
ר
main() main.c ********************************/
/************************ #include "include.h"
int main(int argc, char **argv){ int isweep; init(argc,argv); for(isweep=0;isweep void simmessage(FILE *fp){
120
Ã
ï Ä ÁÇ º ÈÊÇËÇÅÇÁÏËÀ ÌÇÍ ÈÊÇÌÍÈÇÍ
ISING
char USER[100],HOST[100],MACH[100]; time_t t; time(&t);/* store time in seconds in *t. see: "man 2 time" strcpy(USER,getenv("USER")); strcpy(MACH,getenv("HOSTTYPE")); strcpy(HOST,getenv("HOST")); */
fprintf(fp,"\ # ###################################################################\n\ # 2d Ising Model with Metropolis algorithm on square lattice \n\ # Run on %s ( %s ) by %s on %s# \n\ #L = %d (Lattice linear dimension, N=L*L) \n\ # seed = %ld (random number gener. seed) \n\ # nsweeps = %d (No. of sweeps) \n\ # beta = %f \n\ # start = %d (0 cold, 1 hot, 2 old config)\n", HOST,MACH,USER,ctime(&t), L,seed,nsweep,beta,start); fflush(fp); }/* message()*/
à ÐôÒØ
Ø Ò ×ÙÒ ÖØ × get the options(argc,argv)¸ Ø
Ô ÖÒ Ñ Ø ÓÖ×Ñ Ø Ø
Ö ÑÑ
ÒØÓÐôÒ¸ ×ÙÑÔ Ö Ð Ñ ÒÓÑ ÒÛÒ ØÛÒ optionsº À ×ÙÒ ÖØ × getopt(argc, argv, OPTARGS) Ô ÖÒ Ø ÓÖ×Ñ Ø Ø
Ö ÑÑ
ÒØÓÐôÒ ÔÜÖ ÞØ Ò ÔÓÙ Ò optionsº ÈÓ Ó Õ Ö Ø Ö
Ò options ÓÖÞÓÒØ Ô ØÒ ÓÐÓÙ Õ Ö Ø ÖÛÒ OPTARGS Ø Ò ÓÔÓ ÓÖÞÓÙÑ ×Ø Ö ÑÑ
#define OPTARGS "hL:b:s:S:n:"
Ò Õ Ø Ò Ø Ñ "hL:b:s:S:n:"º È Ö Ø Ö ×Ø Ø ÕÓÙÑ ÐÓÙ
ØÓÙ
Õ Ö Ø Ö
ÔÓÙ Ò Ö Ñ Ô Ö Ô ÒÛ Û
optionsº Ç Õ L, b, s, S, n ÓÐÓÙ Ó ÒØ Ô ØÓ Õ Ö Ø Ö ":" ÔÓÙ ÙÔÓ Ò Ø Ò options ÔÓÙ Ô ÖÒÓÙÒ Ö ×Ñ º ÒØ Ø Ó h Ò Ô ÖÒ ÓÖÞÓÙÑ Ø
Ö È Ö Ø Ö ×Ø ØôÖ ¸ Ôô
Ñ ØÓ switch(c) block ØÓÙ ÔÖÓ Ö ÑÑ ØÓ
ÓÖ ÔÓÙ Ô ÖÒ Ò optionº ĺպ ØÑ Ô ØÓ case Ñ Ø Ð Ø
L Ø Ø
Ð Ö
ØÖ
º ×
Ø
º¾º
ËÉ
Á ËÅÇË ÃÏ
ÁÃ
½¾½
case ’L’: L = atoi(optarg); break;
Ø Ó Ù× Ø
atoi() ÔÛ
Õ Ñ Ô Ö Ö Ý ×Ø × Ð º À ×ÙÒ ÖØ × usage(argv) Ò ÙØ ÔÓÙ ØÙÔôÒ ØÓ × ÒØÓÑÓ Ñ ÒÙÑ Ó
×ØÓ ÕÖ ×Ø ´Ô Ö Ø Ö ×Ø Ôô
Ð Ø Ø Ò Ô ÖÒ Ñ ØÓ option -hµº À locerr(errmes) ØÙÔôÒ Ò Ñ ÒÙÑ × ÐÑ ØÓ
ÐØÒ exit(1) Ò ×Ø Ñ Ø × ØÓ ÔÖ Ö ÑÑ Ñ non-zero error status (1) ´Ò Ü Ñ ÓÑ Ð
Ð ØÓÙÖ
ØÓÙ ÔÖÓ Ö ÑÑ ØÓ
µº Ì ÐÓ
simmessage() Ô Þ Ü ÖØ × Ñ ÒØ Ö ÐÓ ×Ø Ò ÔÓ Ù× ØÛÒ ÓÑ ÒÛÒº ÌÓÔÓ Ø Ø Ø ×Ø ÔÓØ Ð ×Ñ Ø Ñ
ÔÓÙ ÕÛÖ
ÙØ Ø Ò ×Ó Ô Ò ÙÒ ×Ó Ò ÖÑ Ó ÕÛÖ
Ø Ø ÅÔÓÖ Ò ØÓ Ô Ö
Ò ÑÒÔ
ØÔÓØ ÐÐ ÑÔÓÖ ºººº À ÔÐ ÖÓ ÓÖ ÔÓÙ ÞÓÙÑ Ø ÓÑ Ò Ñ
ÔÖ Ô Ò Ò Ø ×Ó ×
ôר Ò Ô ØÖ Ô ×ØÓ ÕÖ ×Ø ØÛÒ ÓÑ ÒÛÒ Ò Õ Ð Ø ×Õ Ø Ù× ÔÐ ÖÓ ÓÖ º È Ö Ø Ö ×Ø Ôô
Ô ÖÒÓÙÑ ØÓ ÕÖ ÒÓ ÔÓÙ Ü Ò ØÓ ÔÖ Ö ÑÑ Ñ Ø
×ÙÒ ÖØ ×
time() ctime() Ôô
ÒØ Ö ÓÙÑ Ñ Ø Ð Ø
ÔÖ ÐÐÓÒØÓ
´environment variablesµ Ñ Ø
×ÙÒ ÖØ ×
getenv() strcpy()º Ø Ø ×Õ Ø Õ Ö ´Ñ Ø
ÒØÓÐ
man 2 Ñ ØÓÒ ÙÔÓÐÓ ×Ø time¸ man 3 ctime¸ man getenvµ º À ÔÐ ÖÓ ÓÖ ×Õ Ø ÔÓÙ ØÖ ÕÓÙÑ ÑÔÓÖ Ò Õ × Ñ × Ø Ò Ñ ØÖ Ñ Ø
ÔÓ ×
ØÓÙ ÔÖÓ Ö ÑÑ ØÓ
ÐÐ Ñ Ø Ò ÓÖ Ø Ø ØÛÒ ÔÓØ Ð ×Ñ ØÛÒ Ò Ñ Ø ÐÛØØ×ÓÙÑ ØÓÒ ô ÕÖ × ÑÓÔÓ Ó Ñ Ø ÒÛר ÒØÓÐ
% cc -O2 main.c init.c met.c measure.c end.c options.c drandom.c \ -o is -lm
Ñ
ØÖ ÕÓÙÑ
ØÓ ÔÖ
Ö ÑÑ
ÔÛ
Ò
ÖÑ
Ô Ö Ô ÒÛº
ĺ պ
% /usr/bin/time ./is -L 10 -b 0.44 -s 1 -S 5342 -n 10000 >& out.dat &
Ο αριθμός μετά στην εντολή man αναφέρεται στη ‘σελίδα’ του manual. Οι σελίδες ‘2’ είναι συνήθως εντολές συστήματος ενώ οι ‘3’ συναρτήσεις της C. ΄Ετσι διευκρινίζονται ονόματα εντολών από συναρτήσεων που τυχαίνει να είναι ίδια. Υπάρχουν περιπτώσεις που bugs εξαρτώνται από μεταγλωττιστές - είτε από σφάλμα δικό μας (λ.χ. αρχικοποίηση τιμών μεταβλητών) είτε από bugs του μεταγλωττιστή (λ.χ. σφάλματα από βελτιστοποίση είναι τα συχνότερα), από το λειτουργικό σύστημα ή βιβλιοθήκες που χρησιμοποιούμε. Γενική συμβουλή είναι να ελέγχετε πάντα ως προς την ορθότητα τα αποτελέσματά σας σε ένα νέο περιβάλλον.
½¾¾
Ã
ï Ä ÁÇ º ÈÊÇËÇÅÇÁÏËÀ ÌÇÍ ÈÊÇÌÍÈÇÍ
ISING
³ÇÔÓÙ ÔÖÓ× × Ñ Ø Ò ÒØÓÐ time Ø ØÓÙ ÔÖÓ Ö ÑÑ ØÓ
º ³ Ò ÕÖ × ÑÓ Ö Ð Ó Ø Ñ Ø ÐôØØ × Ö Ò ØÓ ÔÖ Ö ÑÑ makeº Â ÑÔÓÖÓ × Ò ØÓ ÔÖ Ö ÑÑ ÙØ ¸ Ô Ö Ô ÑÔÓÙÑ ØÓÒ Ò ×Õ Ø
info pages ´ ÒØÓÐ info makeµº ÔÛ
Ò ×ØÓÒ Ø ÐÓ Ó ÔÓÙ Ö× ×Ø ÙÔ ÖÕ Ñ ÔÖ ÕÑÒ
Ñ ØÖ ×
ØÛÒ
ÔÓ
× ÛÒ
ØÓÙ ÔÖÓ Ö ÑÑ ØÓ
Ñ
Ø ÓÐ Ð ÖÓ ÐÓ Ö Ñ ÒÓ Ò Òôר ר
Ö ×ØÓ Ñ Ò ÔÓ Ñ Ò ÖÕ Ó Ñ ÒÓÑ Makefile
# ######################## Makefile ############################ OBJS = main.o init.o met.o measure.o end.o options.o drandom.o CFLAGS = -O2 LIBS = -lm is: $(OBJS) $(CC) $(CFLAGS) $^ $(OBJS): include.h clean: /bin/rm -f *.o is core*
-o $@ $(LIBS)
ØØ
% make
ÒØÓÐ
Ø Ò ØÜ ØÓ Ø Ð × ÑÓ ÖÕ Ó isº Ì Ö × Ñ Ø ¸ ÒØ Ñ Ñ Ø ØÖÓÔ × Ò ÔØ ÖÕ ØÓÙ ô ¸ кպ ×ØÓ main.c Ø Ð ×Ø Ø Ò ÒØÓÐ make Ü Ò º Â Ø ÔÛ
Ñ ÒÓ ØÓ ÖÕ Ó ÔÓÙ Ñ Ø ÐÐ Ø Ü Ò Ñ Ø ÐÛØØÞ Ø ÕØ ÐÐ º Â ØÓÒØ
Ò Ò
Ü ÖØ ×
´dependenciesµ ÑÔÓÖ Ø Ò Ô Ø Õ Ø Ñ Ô Ó ÔÓÐ ÔÐÓ
Ñ Ø ÐÛØØ×
º È Ö Ø Ö ×Ø Ô×
Ø Ñ Ø ÕÖ × Ñ Ø Ð ØôÒ ÑÔÓÖÓ Ñ Ò Û ÓÔÓ ×ÓÙÑ Ø × Ò × Ñ ÐÓ
ÐØ רÓÔÓ ×
¸ Ñ Ø ÐôØØ × ´ÐºÕº Ñ Ø Ð Ø LIBS Ô Ö Ô ÒÛµ¸ ÔÔ ÙÔ ×ÙÒ
´ ÖÕ Ø ØÓÒ ¸ Ñ Ø ÐÛØØ ×Ø
ÐÔµ ÐÐ ººº ÔÓÐÐ Ò
Προσοχή, ένα από τα ... βίτσια του make είναι ότι οι εκτελέσιμες εντολές ($(CC), /bin/rm στο παράδειγμα) βρίσκοται σε μια γραμμή που αρχίζει από TAB και όχι από κενό ή άλλο χαρακτήρα. ΄Αρα στο παραπάνω παράδειγμα Makefile ο κένος χώρος που φαίνεται στις γραμμές αυτές είναι ένα TAB και όχι 8 κενοί χαρακτήρες
Ò
Ö
º¿º
Æ
ÊÉÀ ÀÆ
ÍÉÇË ´À ººº
ËÌÀµ
½¾¿
Ò ÖÖ ÒÓÙÑ ØÓÒ Ð Ó ÕÖ ÒÓ Ò Ñ
ÓØØ Ñ Ò Ô Ö ×× Ø Ö º
ÖÓÒ ×ØÓÒ ÔÖÓ Ö ÑÑ Ø ×Ñ
Ò
ÔÒ
×
º¿
Æ ÊÉÀ ÀÆ ËÌÀµ
ÍÉÇË ´À ººº
¹
ËØ Ò Ò Ø Ø ÙØ ×ÙÞ Ø ×ÓÙÑ Ø Ø ÕÒ ÔÖÓ Ð Ñ Ø ÔÓÙ ×ÙÒ ÒØ Ñ ÔÖÓ×ÓÑÓÛ× Ñ ÕÖ Ò ÖÓÙÑ ØÓ × ×Ø Ñ × ÖÑ ×ÓÖÖÓÔ º ÌÓ ÔÖ Ð Ñ ÙØ ÑÔÓÖ Ò Ò Ô Ñ Ð Ø Ó Ñ ÕÖ Ô ÓÖ ÙØ Ø Ò ÔÖÓ×ÓÑÓÛ× ÔÓ ÛÒ ×Ùר Ñ ØÛÒº Ò ÑÛ
ØÓ ÔÖôØÓ ÔÖ Ð Ñ ÔÓÙ Ñ
Ô ×ÕÓÐ Ô Ø ×Ø Ñ ÔÓÙ ÕÓÙÑ Ò ÔÖ Ö ÑÑ ÔÓÙ ´ÒÓÑÞÓÙÑ Øµ Ò ×ÛרÓ
ÙÔÓÐÓ ×ÑÓ
º ³ Ø× Ô Ö³ ÐÓ ÔÓÙ ÔÛ
Ò ÖÑ Ò Ò Ø Ö ÔÖÓ ÓÙÑ ÒÛ
ØÓ ר ØÓ ÔÖ ØÙÔÓ Ising × Ñ ÒØ ÔÖ Ð Ñ ¸ ØÓ Ñ Ð Ø ×ÓÙÑ Ð Û Ø
×ÔÓÙ Ø Ø
ØÓÙ ÐÐ ÔÖÓ Ð Ñ Ø º ³ÇÔÛ
Ѹ ØÒÜ ÒÓ Ñ Ñ ÔÖÓ×ÓÑÓÛ× ÕÖ ÞØ Ò ØÓÔÓ Ø ×ÓÙÑ ØÓ ×Ùר Ñ Ñ
× Ñ ÖÕ Ø ×Ø × Ø× ôר Ñ ØÓÒ Ð Ö ÑÓ ÔÓÙ ÕÓÙÑ ÔÐÜ ÒÜ Ò ×ÓÙÑ Ñ × Markov ØÒÔÖ Û ØÓÙ Ñ Ø
Ñ
º ÒÛÖÞÓÙÑ ÑÛ
Ô Ø Ò Ò Ø Ø ½º¾ ÔÛ
ØÓ × ×Ø Ñ Ñ
Ø Ò Ò × ÖÑ ×ÓÖÖÓÔ Ñ Ñ ÓÑ Ò ÖÑÓ Ö × ¸ Ø Ø Ö× Ø ÙÖÛ
× Ø ×Ø ×
Ñ ÒÖ ÔÓÙ ÔÓÐ Ð Ó Ö ÔÑ Ñ × Ø Ñ ¸ Òô Ø ×Ø ×
Ñ ÒÖ ÔÓÙ Ö Ø ÔÓÐ Ø
Ô × ÔØ Ø ÔÓÐ ×Ô Ò ½¼ º ³ Ø× Ò ÖÕ Ø ×Ø × ÔÓÙ Ô Ð ÜÓÙÑ Ò Ò Ñ ØÙÔ Ø ×Ø × ÔÖ Ô ØÓ × ×Ø Ñ Ñ
Ò Ò Ò Ò ØÙÕ Ó ººº Ô ÖÔ ØÓ ×ØÓ ÕôÖÓ ØÛÒ Ø ×Ø × ÛÒ Ñ ÕÖ Ò Ö Ø Ò Ô Ö ÓÕ ØÛÒ Ø ×Ø × ÛÒ Ò ÔÓÙ ÒØ ×ØÓ Õ ×Ø Ò ÖÑÓ Ö × ÔÓÙ ÕÓÙÑ ÔÐÜ º ÙØ Ò × Ø
Ö×
Ø
Ø ×Ø ×
ÖÑ
×ÓÖÖÓÔ
´thermalizationµº ô Ô ÖÓÙ× ÞÓÒØ Ó ÔÖÓ Ð Ñ Ø ÌÓ ÔÖôØÓ Ò Ø ÐÐ Ð Ô ÐÓ Ø
ÖÕ
Ø ×Ø ×
ØÓ Ø ÖÓ Ò Ò ÒØÓÔ×ÓÙÑ Ô Ø ØÓ × ×Ø Ñ Ñ
Õ Ö × Ø ×Ø × ÖÑ
×ÓÖÖÓÔ
º Ï
ÔÖÓ
ØÓ ÔÖôØÓ¸ ÕÓÙÑ ÔÛ
ÖÕ Ø ×Ø × ØÓ ÔÖ ØÙÔÓ Ising ÑÔÓÖ Ò ÔÐ Ò Ò ´ µ Ô ÛÑ Ò ´ µ ººº ÙØ ´ µ ×Ñ ÐÐ ¹ Ô Òô
ØÓÒ ¹ ÖÑÓ Ö × ÔÑ ÔÖÓ Ó Ñ Ò ÔÖÓ×ÓÑÓÛ× º Ò Ù× Ø ÒÓ Ø ÔÛ
Ò Ô Ð ÜÓÙÑ Ø Ò ÖÕ
½¼ Φυσικά
αυτό γίνεται εντονότερο όσο το σύστημά μας έχει μεγαλύτερο μέγεθος.
½¾
Ã
ï Ä ÁÇ º ÈÊÇËÇÅÇÁÏËÀ ÌÇÍ ÈÊÇÌÍÈÇÍ
ISING
Ø ×Ø × Ò Ò ÐºÕº ÙØ Ò ÔÖÓ×ÓÑÓ ô×ÓÙÑ ØÓ × ×Ø Ñ × Ñ ÕÑÐ ÖÑÓ Ö × Ø Ö× Ô Ö ×× Ø ÖÓ Ò Ö × ÖÑ ×ÓÖÖÓÔ Ô Ø Ò ÔÐ Ñ Ø Ò ÖÕ Ø ×Ø × Ò Ò Ô ÛÑ Ò ´×Ñ ÓÒØ Ò ÖÑÓ Ö × µº ÙØ Ò Ø ×ØÓ ËÕ Ñ º¾ ÔÓÙ Ð Ò ×Ñ Ò Ô ÐÓ Ò Ø × ÖØ Ù× ÓÐ Ø Ö º À Ù× ÓÐ
1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 100 200 300 400 500 600 700 800 9001000 t (sweeps)
ËÕ Ñ
º¾ Μαγνήτιση ανά πλεγματική θέση για το πρότυπο Ising με L = 40, β = 0.48. Φαίνεται η διαδικασία εύρεσης θερμικής ισορροπίας για μια αρχική κατάσταση παγωμένη και τρεις αρχικές καταστάσεις καυτές. Επαναλαμβάνοντας τη διαδικασία αυτή για τη δεύτερη περίπτωση φαίνεται πως για να είμαστε σίγουροι πως το σύστημα είναι σε κατάσταση θερμικής ισορροπίας χρειαζόμαστε περισσότερα από ∼ 1000 sweeps.
×
Ü ÖØ Ø ÔØ Ù× ÔÓ× Ø Ø ¸ Ø ÖÑÓ Ö × ØÓ Ñ Ó
ØÓÙ ×Ùר Ñ ØÓ
º ËÙÒÓÔØ ¸ Ù ÓÐ Ø Ö ÒÖ Ö× Ø ×Ø ÖÑ Ô Ö ÓÕ Ô Ö Ñ ÒØ×º Å ØÓÔ ÔÓ× Ø Ø ´local quantity, fast modeµ Ñ Ð Ø Ø Ù ÓÐ Ø Ö ÔÑ ÔÓÙ Õ Ñ ØÓÔ
Ü ÖØ ×
´non-local quantity, slow modeµº À Ø ×Ø × ÖÑ
×ÓÖÖÓÔ
Ö× Ø Ù ÓÐ Ø Ö ´ Ò Ù× ÖÕ×ÓÙÑ Ô ØÒ Ø ÐÐ Ð ÖÕ Ø ×Ø × µ Ø Ò Ñ ×Ø Ñ ÖÙ Ô Ø Ò Ö× Ñ ÖÑÓ Ö × º Ò ÒÑÒØ Ø Ò Ù ÓÐ Ø ÖÓ Ò ÖÓÙÑ × ÖÑ ×ÓÖÖÓÔ Ò Ñ Ö × ×Ø Ñ Ô Ö ÒÑ ÐÓº
Ø
m
º¿º
Æ
ÊÉÀ ÀÆ
ÍÉÇË ´À ººº
ËÌÀµ
½¾
1 0.8 0.6 m 0.4 0.2 0 0 50 100 150 t (sweeps) 200 24 18 14 10 250 300
ËÕ Ñ
º¿ Μαγνήτιση ανά πλεγματική θέση για το πρότυπο Ising με L = 10, 14, 18, 24 και β = 0.50. Φαίνεται η διαδικασία εύρεσης θερμικής ισορροπίας για μια αρχική κατάσταση καυτή και ότι η δυσκολία αυξάνει με το μέγεθος του συστήματος.
Ø ÖÓ ÔÖ Ð Ñ Ò Ò ÒØÓÔ×ÓÙÑ Ô Ø ØÓ × ×Ø Ñ Ñ
Õ Ö × Ø ×Ø × ÖÑ
×ÓÖÖÓÔ
Ù× Ò ÒÓ ×ÓÙÑ Ð
Ø
Ñ ØÖ ×
ÔÓÙ ÕÓÙÑ Ò ÔÖ Òº Ô ØÓ ×Õ Ñ º¾ Ð ÔÓÙÑ ÔÛ
ר Ñ ÙØ ¸ Ñ ØÒ ÖÕ Ø ×Ø × ¸ ÑÔÓÖ Ò Õ ØÑ Ñ Ñ Ð
ÙÑ Ò×
º Ç Ô Ó ÔÐ
ØÖ ÔÓ
Ò ¸ Ò Ù× ÒÕ Ô ÓÖ ÙØ רÓ
¸ Ò Ü Ò ×ÓÙÑ Ö Ø
ÔÖÓ×ÓÑÓ ô×
Ñ ÓÖ Ø
ÖÕ
Ø ×Ø ×
» Ô ØÒ ÖÕ Ø ×Ø × ÐÐ ÓÐÓÙ ôÒØ
ÓÖ Ø ×ØÓÕ ×Ø ººº ÔÓÖ Ò Ô Ö ÓÐÓÙ ×ÓÙÑ Ø Ò Ü Ð Ü ×ØÓÒ ´Å ÒØ à ÖÐÓµ ÕÖ ÒÓ ØÛÒ ÔÖÓ
Ñ ØÖ × Ù× ôÒ ÔÓ×ÓØ ØÛÒº ³ÇØ Ò Ð Ø ÑÓÒÓÔ Ø ×ÙÒ ÒØ Ó Ò¸ Ø Ø ÕÓÙÑ Ô Ø Õ ÖÑ ×ÓÖÖÓÔ ÑÔÓÖÓ Ñ Ò Ü Ò ×ÓÙÑ Ø
Ñ ØÖ ×
Ñ
º È ×Ùר Ñ Ø ÑÛ
ÔÓ ØÓ ÖÑ ×ÓÖÖÓÔ ØÒØ ÔÓØ ר Ö ØÓÙ ×Ø Ø ×Ø Ó × ÐÑ Ñ
ÐÓ Ñ Ð Ø ÖÓ Ö Ñ Ñ Ô ÔÓ × Ø ÒØÛ
ÕÓÙÑ Ô Ø Õ Ð ×Ñ Ø Ñ
ÕÓÙÒ ×Ø Ö Ø Ñ ´Ñ × ØÓ
µ ô
ÔÓ ÔÓØÓÙÑ Ô ØÓ Ñ Ô Ñ ØÖ ×
º À × Ò Ø
ÌÓ
½¾
Ã
ï Ä ÁÇ º ÈÊÇËÇÅÇÁÏËÀ ÌÇÍ ÈÊÇÌÍÈÇÍ
ISING
1 0.9 0.8 0.7 0.6 m 0.5 0.4 0.3 0.2 0.1 0 0 5 10 15 t (sweeps) 20
30 60 90 120
25
30
ËÕ Ñ
º Μαγνήτιση ανά πλεγματική θέση για το πρότυπο Ising με L = 30, 60, 90, 120 και β = 0.20. Φαίνεται η διαδικασία εύρεσης θερμικής ισορροπίας για μια αρχική κατάσταση παγωμένη και ότι εδώ η δυσκολία δεν αυξάνει με το μέγεθος του συστήματος.
×ØÓ ×Õ Ñ º ÔÓÙ Ø
Ñ ØÖ ×
ØÓÙ Ô ÒÛ ×Õ Ñ ØÓ
ÔÓ ÔÓØÓÙÑ ÓÕ 0, 20, 50, 100, 200, 400, 800, 1600, 3200 6400 ÖÕ
Ñ ØÖ ×
Ñ ÕÖ Ñ× ØÑ Ø
Ñ ÒØ×
Ò ÔÖ Ñ ×Ø Ö Ø Ñ Ñ × ×Ø Ö ØÓÙ ×Ø Ø × Ø Ó × ÐÑ ØÓ
º
º
ÌÇ ËÁ
ÀÌÇÍÅ ÆÇ¸ À
Æ
ÊÌÀ¹
Ñ ØÖ ×
Ò ÑÒ Õ Ö ÔÛ
Ñ Òº ËØÓÒ Ó Ñ ÒÓ ØÛÒ ×Ô Ò
Ò ÔÓ Ø ×ÓÙÑ Ò Ñ Ô ×Ø Ø ×Ø Ò Ü ÖØ Ø
ÔÖ Ô Ñ × ÔÑ × Markov ØÓ Ô Ñ ÒÓ Ñ ×Ø Ø ×Ø ×Ù×Õ Ø ×Ñ Ñ ØÓ ÔÖÓ Ó Ñ ÒÓº Ò ÑÛ
Ò ØÓÙ
Ð Ö ÑÓÙ
ÔÓÙ ÕÖ × ÑÓÔÓ Ó Ñ ÙØ Ò Ò ÙÒ Ø Ñ Ö Ô ØÓ ÔÖÓ Ð Ö ÑÓ Metropolis ØÓ Ô Ñ ÒÓ ØÓ ÔÓÐ Ø ØÒØÑ Ò
×Ô Òº ³ Ö ÔÑÒ ØÜ
ºº
ÌÇ
ÀÌÇÍÅ ÆÇ¸ À
Æ
ÊÌÀËÁ
½¾
Ò ×Ø Ø ×Ø ÔÓÐ ×ÕÙÖ ×Ù×Õ Ø ×Ñ Ò Ñ Ø Ò ÔÖÓ Ó Ñ Ò º ËØ Ò Ð Ø Ö Ô ÖÔØÛ× Ô ÖÑ Ò Ò
Ò Ô Ö Ñ ÔÖ Ø ×Ø Ø ×Ø Ò Ü ÖØ Ø ØÜ ØÒ Ò ½ Ñ Metropolis Ò ÔÐ Ñ Ø ×¸ ÙØ ÔÓÙ ÓÒÓÑ Þ Ø Ò ‘‘sweep’’ ØÓÙ ÔÐ Ñ ØÓ
º Òô ÙØ ÒØÛ
×ÙÑ Ò ×Ø Ò ÔÖ Ü ÔÓÐÐ
Ô Ö ÔØô×
¸ кպ ×ØÓ ÔÖ ØÙÔÓ Ising ÖÑÓ Ö ×
Ö Ø ÓÖ Ø
Ô Ø Ò Ö× Ñ βc ¸ ר
Ô Ö ×× Ø Ö
Ò ÖÓÙ×
Ô Ö ÔØô×
ÕÖ Þ Ñ ×Ø ÔÓÐ Ñ Ð Ø ÖÓ Ö Ñ Ô sweeps Ò Ô ÖÓÙÑ Ñ ×Ø Ø ×Ø Ò Ü ÖØ Ø ØÜº ÙØ Ò Ø ÐºÕº Ø Ò ØÓ Ñ Ó
×Ù×Õ Ø ×ÑÓ ξ ´½º µ Ò Ø ÔÓÐ Ñ Ð Ø ÖÓ ÔÑ ÔÐ Ñ Ø ×¸ Ø ÔÓÙ ×ÙÑ Ò ×Ø Ò Ö× Ñ Ô Ö ÓÕ Ñ
×ÙÒ ÕÓ
Ñ Ø ×
×
º ÙØ ÑÔÓÖ Ò Ò ×Ø ×Õ Ñ Ø º º à ô
ÔÐ × ÞÓÙÑ Ø Ò Ö× Ñ ÖÑÓ Ö × ÔØ ÖÑ Ô Ö ÓÕ ÔÓÙ Ø ×Ô Ò Ò × Ø Ü ¸ ÕÓÙÑ Ø Ñ ÓÙÖ Ñ ÐÛÒ Ô Ö ÓÕôÒ ´clustersµ Ô ÑÓ ×Ô Òº Ã Ø Ð ÒÓÙÑ Ø Ò ÕÓÙÑ Ó ×Ù×Õ Ø ×Ø
Ø Ü
×Ô Ò ×Ø Ò Ô ÖÔØÛ× ÙØ ¸ ÔÖ Ô ØÓ Ñ Ó
¸ ØÓ ×Õ Ñ × ÙØôÒ ØÛÒ clusters Ò Ò ×Ù×Õ Ø ×Ø º Ò Ò Ø Ø ØÓ Ó¸ ÔÖ Ô Ò Ø ×ØÖ Ó Ò Ø ÙÔ ÖÕÓÒØ clusters Ò Ñ ÓÙÖ ÓÒ ÔÓÙ ÐÐÓ º Å Ò single-flip Ð Ö ÑÓ ÔÛ
Ó Metropolis × ÙØ Ô ÖÒ Ö Ø ÕÖ ÒÓº Ø Ò ÔÓ×ÓØ Ñ Ð Ø ØÓÙ ÙØÓ×Ù×Õ Ø ×ÑÓ ØÛÒ Ø Ü ÛÒ ×Ô Ò ÔÓÙ Ô Ö ÓÒØ ר Ò ÔÖÓ×ÓÑÓÛ× Ñ
ÕÖ × ÑÓÔÓ Ó Ñ Ø ×ÙÒ ÖØ × ÙØÓ×Ù×Õ Ø ×ÑÓ Ù× ÔÓ× Ø Ø O ´ÐºÕº ÒÖ ¸ ´autocorrelation functionµº ³ ×ØÛ Ñ Ñ ÒØ×¸Ñ ÒØ Ô Ø ØØ ÐÔµ O(t) ØÑ Ø
ÑØ Ô Å ÒØ Ã ÖÐÓ ÕÖ ÒÓ tº Ç ÑÓÒ
ØÓÙ t ÑÔÓÖ Ò Ò sweeps ´ÙÔÓµÔÓÐÐ ÔÐ × ØÛÒ sweepsº À ×ÙÒ ÖØ × ÙØÓ×Ù×Õ Ø ×ÑÓ ρO (t) Ø
Ù×
ÔÓ× Ø Ø
O ÓÖÞ Ø ÕÖ ÒÓ t Ò Ò
ρO (t) = (O(t′ ) − O )(O(t′ + t) − O ) (O − O )2
t′
,
´ º¾¾µ
ÔÓÙ . . . t′ Ò Ñ Ñ × Ø Ñ Ô ÖÒÓÒØ
Û
ÖÕ ØÑ Ð Ø ×ØÓ Õ ′ ØÓÙ Ñ ØÓ
Ñ t < tmax − tº À ÒÓÒ ÓÔÓ × ÔÓÙ ÞÓÙÑ ×ØÓÒ Ô ÖÓÒÓÑ ×Ø Ò Ø ØÓ ôר ρO (0) = 1º Ç ÓÖ ×Ñ
ÙÑÞ Ø Ò ×ÙÒ ÖØ × ×Ù×Õ Ø ×ÑÓ ØÛÒ ×Ô Ò ×ØÓ ÕôÖÓ ´ к ܺ ´½º µ µº À ×ÙÞ Ø × Ø Ò × Ñ × ØÓÙ ÓÖ ×ÑÓ Ò Ô Ö ÐÐ Ð Ñ ÙØ Ø
Ò Ø Ø
½º º Å Ð Ð ¸ ØÒ ØÑ Ñ
×ÕÙÖ ×Ù×Õ Ø ×Ñ Ò Ñ Ø Ò ÖÕ ¸ ÔÓ× Ø Ø
Ñ Ø Ô ÕÖ ÒÓ t Ò Ø Ø ØÓ Ò Ñ ÒÓ ×ØÓÒ Ö Ñ Ø Ø
´ º¾¾µ Ò ×Õ Ò Ô ÒØÓØ Ø ¸Ñ ÔÓØ Ð ×Ñ Ñ× ØÑ Ò Ò Ø º ³ÇØ Ò Ó ×Ù×Õ Ø ×Ñ
½¾
Ã
ï Ä ÁÇ º ÈÊÇËÇÅÇÁÏËÀ ÌÇÍ ÈÊÇÌÍÈÇÍ
ISING
Ò Ò
¸ Ø Ø ØÓ Ò Ñ ÒÓ Ò ÔØ Ø ÔØ ÖÒ Ø ×ØÓ Ñ ¸ Ø× ôר Ó Ñ ×Ó
ÖÓ
Ò Ò Ñ Ö
º Ò ÙÔ ÖÕ ÒØ ×Ù×Õ Ø × Ø Ø ØÓ Ð ×Ñ Ò ÖÒ Ø º ÖÒ Ø
ØÑ
Ø Ò ρO (t) Ó ÐÓÒØ ×ØÓ Ô Ô Ö ×Ñ ÒÓ Ñ Ó
ØÓÙ Ñ ØÓ
ÔÖ Ô Ò ÔÓÖÖÔØÓÒØ º À ×ÙÒ ÖØ × ρO (t) Ð ØØôÒ Ø ×ÙÑÔØÛØ Ñ Ø ØÖ ÔÓ
ρO (t) ∼ e−t/τO .
´ º¾¿µ
À ÐÑ ÕÖ ÒÓÙ τO Õ Ö Ø ÖÞ ØÓÒ ÔÓ×Ù×Õ Ø ×Ñ ØÛÒ Ñ ØÖ × ÛÒ Ø
O ÓÒÓÑ Þ Ø ÕÖ ÒÓ
ÙØÓ×Ù×Õ Ø ×ÑÓ Ø
Oº Å Ø Ô ÕÖ ÒÓ 2τO ρO (t) Õ Ô× ×ØÓ 1/e2 ≈ 14% Ø
ÖÕ
Ø
Ø Ñ
º ËÙÑ Ø Ò ÛÖÓ Ñ Ø ØØ ÕÓÙÑ Ñ Ò Ü ÖØ Ø Ñ ØÖ × Ø
½½ Oº ³ Ö ÕÓÙÑ tmax Ñ ØÖ ×
¸ Ó Ö Ñ
ØÛÒ Ò Ü ÖØ ØÛÒ Ñ ØÖ × ÛÒ Ø
O Ò tmax . nO = ´ º¾ µ 2τO Ò Ñ Ñ ØÖ × Ó×ØÞ × ÕÖ ÒÓ¸ Ø Ø Ô Ø Ô Ö Ô ÒÛ Ð ÔÓÙÑ Ø Ø Ñ ØÖ Ñ × ×Ø Ñ Ø ÕÖ ÒÓÙ ∼ τO º Ò ÑÛ
ØÓ רÓ
Ø
Ñ ØÖ ×
Ò Ò Ñ ÐÓ Ø Ø Ñ ØÖ Ñ ×ÙÕÒ Ø Ö º ÙØ ×ÙÑ Ò Ø ÙÔ ÖÕ ×Ø Ø ×Ø ÔÐ ÖÓ ÓÖ ×Ø
Ñ ØÖ ×
ÔÓÙ Ò ÔÖ Ô Ð Ö ×Ù×Õ Ø ×Ñ Ò
º Ù× ØÒ ÒÓÙÑ Ñ ØÖ × ØÓÙ τO ¸ Ò Ñ ØÖ Ñ t ≪ τO º ³Ò ÔÖ Ñ Ò Ø ×ØÓ ×Õ Ñ º Ø Ò Ô ÖÔØÛ× Ø
Ñ Ò Ø ×
´O = mµº ÍÔÓÐÓ ÞÓÙÑ Ø ×ÙÒ ÖØ × ρm (t) Ð ÔÓÙÑ Ø ÔÖÓ× ÖÑÓ ×Ø Ò ´ º¾¿µ Ò ÔÓÐ Ð Ñ τm = 235 ± 3 sweepsº À Ñ ØÖ × Ò× Ò Ñ Ô 106 Ñ ØÖ ×
Ñ ½ Ñ ØÖ × »sweepº ³ Ö Ó Ò Ü ÖØ Ø
Ñ ØÖ ×
Ñ
Ø Ò ×Ø Ò ÔÖ Ñ Ø Ø Ø ≈ 106 /(2×235) ≈ 2128º ³Ò
Ð Ø ÖÓ
Ø Ñ Ø
ØÓÙ ÕÖ ÒÓÙ ÙØÓ×Ù×Õ Ø ×ÑÓ Ò Ó ÓÐÓ Ð ÖôÑ ÒÓ ÕÖ ÒÓ
ÙØÓ×Ù×Õ Ø ×ÑÓ τint,O ´integrated autocorrelation timeµº Ç ÓÖ ×Ñ
ØÓÙ ÔÖÓ ÔØ Ô Ø Ò ÙÔ × ´ º¾¿µ Ô ÔÓÙ ÔÖÓ ÔØ
+∞ +∞
τint,O =
0
dt ρO (t) ∼
0
dt e−t/τO = τO
´ º¾ µ
ÈÖÓ Òô
τint,O ∼ τO ¸ ÐÐ ×ØÓÒ ÙÔÓÐÓ ×Ñ ÙÔ × ÐÑ Ø ¸ ³ ÙØ Ó Ó ÓÖ ×ÑÓ ÑÔÓÖ Ò
½½ Οι
× ÖÕÓÒØ ×Ùר Ñ Ø ÖÓÙÒ Ð Ó ×Ø Ò ÔÖ Ü º
χρόνοι αυτοσυσχετισμού μπορεί να είναι πολύ διαφορετικοί για διαφορετικές φυσικές ποσότητες. Δεν χρειάζεται να έχουμε πλήρως αποσυσχετισμένη διάταξη του συστήματος για μια ανεξάρτητη μέτρηση μια ποσότητας με μικρό τ .
ºº
ÌÇ
ÀÌÇÍÅ ÆÇ¸ À
Æ
ÊÌÀËÁ
½¾
Ô×
Ø ×Ø Ø ×Ø × ÐÑ Ø ¸ Ø Ö Ô Ø ×ÙÑÔ Ö ÓÖ Ø
ρO (t) Ñ ÐÓÙ
ÕÖ ÒÓÙ
t ≫ τO Ô ÖÓ Ò Ñ ÓÖ Ø Ó
ØÖ ÔÓÙ
רÓÙ
Ó ÓÖ ×ÑÓ
º Ò ØÓ Ñ Ñ
Ò Ð¸ØØ ÕÓÙÑ ÐØÖ ×ÙÑ ÛÒ º Ô×
¸ Ô ØÓ Ñ Ñ
Ò Ò Ô ÖÓ ÔÖ Ô Ò Ô Ð ÜÓÙÑ Ò tmax ÔÓÙ ÝÓÙÑ Ø Ò ÓÐÓ Ð ÖÛ× º Ñ ÖÓ
ÕÖ ÒÓÙ
ÕÓÙÑ Ö ô
Ø ×ÙÑÔ Ö ÓÖ ´ º¾¿µ ÙØ ÔÖÓ× × ×ØÓ ×Ùר Ñ Ø × ÐÑ º ÐÐ Ô Ö ÑÓ ÔÖÓ Ð Ñ Ø ÕÓÙÑ ØÒ ØÛÒ ÓÑ ÒÛÒ ÈÖ Ô ÔÖÓ×Ô Ó Ñ Ò ÙÔÓÐÓ ×ÓÙÑ ØÓÒ τO Ñ ÔÖÓ× ÖÑÓ Ò Ò ØÑ × ØÛÒ ÓÖÛÒ ×ØÓ ×Ø Ñ ØÓÙ ÕÖ ÒÓÙ ÔÓÙ Ò ÔÖÓ× ÖÑÓ ÔÓÙ ÒØ ×ØÓ Õ ×Ø Ò ´ º¾¿µ ¸ Ø ØÓ ÓÔÓÓ ÔÓØ Ð ººº Ø ÕÒ ³ÇØ Ò ÐÓÙÑ Ñ Ö ÓÖ ØÑ × ØÓÙ ÕÖ ÒÓÙ ÙØÓ×Ù×Õ Ø ×ÑÓ × ÐÑ Ø Ñ ÖÓ
ÕÖ ÒÓÙ
ÙÔÓÐÓ ÞÓÙÑ ÒÓ Ñ Ø ×Ùר Ñ Ø ØÓÒ
tmax
τint,O (tmax ) =
0
dt ρO (t) .
´ º¾ µ
ÒÓÙÑ Ø Ö Ô Ö ×Ø × τint,O (tmax )º ³ÇØ Ò Ô Ö Ø Ö ×ÓÙÑ ÔÛ
Ø Ñ ØÓÙ τint,O (tmax ) ר ÖÓÔÓ Ø ÔÓ Ó ×Ø Ñ ØÓÙ tmax ¸ Ô ÖÒÓÙÑ ÙØ Ø Ò Ø Ñ Û
Ø Ñ Ø ØÓÙ τint,O º À × ÙØ Ò Ø ×ØÓ ×Õ Ñ º ÔÓÙ ÕÖ × ÑÓÔÓ × Ñ Ø
Ñ ØÖ ×
Ñ ÙØ
ØÓÙ ×Õ Ñ ØÓ
º º ÌÓ ÔÓØ Ð ×Ñ Ò τint,m = 217(3)sweeps ÔÓÙ Ò Ñ Ö Ø ÖÓ Ô ÙØ ÔÓÙ ÙÔÓÐÓ × Ñ ÔÖÓ ÓÙÑ ÒÛ
º À ÓÖ ÙØ ×ÙÕÒ Ò Ò × Ñ ÒØ º ËÙÒ Û
ÙØ ÔÓÙ Ñ
Ò Ö Ò Ü ÖØ × ØÓÙ ÕÖ ÒÓÙ ÙØÓ×Ù×Õ Ø ×ÑÓ Ô Ø
Ô Ö Ñ ØÖÓÙ
ØÓÙ ×Ùר Ñ ØÓ
¸ ô ØÓ Ñ Ó
L Ø ÖÑÓ Ö × βº Ã Ó Ó ØÑØ
Ñ
ô×ÓÙÒ ØÓ Ó ÔÓØ Ð ×Ñ ØÒ Ö ´ ×ÙÑÔØÛØ µ ×ÙÑÔ Ö ÓÖ ÖØÑ ÐL βÖØ ÓÒØ ר Ò Ö× Ñ ÖÑÓ Ö × βc º ËÙÒ Û
Ó ÙÔÓÐÓ ×Ñ
ØÓÙ τint,O ÔÖÓØ Ñ Ø º Ç ÕÖ ÒÓ
ÙØÓ×Ù×Õ Ø ×ÑÓ Ò Ò ×Ó Ö ÔÖ Ð Ñ Ø Ò ØÓ × ×Ø Ñ Ö× Ø Ñ ÖÙ Ô Ø Ò Ö× Ñ Ô Ö ÓÕ ÖÑÓ Ö × ôÒº ËØÓ ×Õ Ñ º Ð ÔÓÙÑ ÔÛ
ÙØ
Ò Ñ ÒÓ Ñ Ö sweeps Ø ÙØ Ò Ò Ü ÖØ ØÓ Ô ØÓ Ñ Ó
ØÓÙ ×Ùר Ñ ØÓ
Lº ³ÇØ Ò ÑÛ
ÔÐ × ÞÓÙÑ Ø Ò Ö× Ñ Ô Ö ÓÕ Ø Ø Ó ÕÖ ÒÓ
ÙØÓ×Ù×Õ Ø ×ÑÓ Ñ ÐôÒ º ËØ Ò Ö× Ñ Ô Ö ÓÕ Ü× ÙØ Ô ÖÓÙ× Þ ÑÛ× ´scalingµº Ø Ñ Ð L ÕÓÙÑ ØÓÒ Ð Ö ÑÓ ØÓÙ Metropolis ÙØ × Ñ Ò
τ ∼ Lz ,
´ º¾ µ
½¿¼
Ã
ï Ä ÁÇ º ÈÊÇËÇÅÇÁÏËÀ ÌÇÍ ÈÊÇÌÍÈÇÍ
ISING
ÔÓÙ Ø Ò Ô ÖÔØÛ× Ø
Ñ Ò Ø ×
ÕÓÙÑ z = 2.1665 ± 0.0012 ½ ℄º ÙØ ØÑ Ò ÖØÑ Ð Ò ØÓÒ Ð Ö ÑÓ Ö Ö º Ë Ñ Ò ÔÛ
Ó ÕÖ ÒÓ
Ø Ò ÔÖÓ×ÓÑÓÛ× ØÓÙ ×Ùר Ñ ØÓ
ÓÑ ÒÓ Ö Ñ Ò Ü ÖØ ØÛÒ Ø Ü ÛÒ ×Ô Ò ÙÜ Ò ×Ò
tCPU ∼ Ld+z ≈ L4.17 .
´ º¾ µ
Ø
Ë ÔÑÒ Ð ÑÛ×
´ º¾ µ ×Õ × Ö ×Ø Ø ×ÙÑÔ Ö ÓÖ
×ÙÞ Ø ×ÓÙÑ ô
ÙØ º
Ñ Ô Ö ×× Ø Ö Ð ÔØÓÑ Ö Ð Ø ÖÓÙ
Ð Ö ÑÓÙ
ÔÓÙ
Ø ÐØ ôÒÓÙÒ
º
Æ
ÀÌÏÆÌ Ë ÌÇ ººº Ë
ÄÅ
ËÑ ØÙÕ Ñ Ø Ð Ø ¸ ÔÛ
Ò Ñ Ô Ö Ø Ö × Ñ ÔÓ× Ø Ø × Ñ ÔÖÓ×ÓÑÓÛ× Å ÒØ à ÖÐÓ¸ Ñ× ØÑ Ø
Ø ÑÓ Ñ Ò Ô Ò Ñ Ò ÑÑ ÔÐ ÖÓ ÓÖ Ø Ò Ü Ø
Ñ ØÖ ×
º À Òô× Ø
ÔÖ Ñ Ø
ר Ø ×Ø
Ø ÒÓÑ
Ò Ð Ø ×Õ Ø ÔÐ ÖÓ ÓÖ ¸ ÐÐ ×Ø Ò ÔÖ Ü ×ÙÒ Û
Ö Ó Ñ ×Ø ר Òô× ØÓÙ × ÐÑ ØÓ
Ø
Ñ ØÖ ×
º Ò ÓÖ×ÓÙÑ ÙØ ÔÓÙ ÓÒÓÑ ÞÓÙÑ ×Ø Ø ×Ø × ÐÑ ÐÓ ÙØ ¸ ÒÓÙÑ Ø Ò ÔÓÐ ÔÐ ÐÐ ÔÖ Ø ÙÔ × Ø ×ØÓ Ø ÒÓÑ ØÛÒ Ñ ØÖ × ÛÒ Ò Gaussianº ÙØ Ò Ò Ñ ÔÓÐ Ð ÔÖÓ× × Ø Ò ÕÓÙÑ Ò Ü ÖØ Ø
Ñ ØÖ ×
× Ò ÔÖ ØÙÔÓ ×Ø Ø ×Ø
Ù×
º À ÖÕ ØÓÙ ×Ø Ø ×Ø Ó × ÐÑ ØÓ
Ò ÖÑ
ÙÑ Ò×
ÖÛ Ô Ø Ñ × Ø Ñ ÔÓÙ ÔÛ
ÕÓÙÑ ×ÙÞ Ø × ×Ø Ò Ò Ø Ø ½º¾ ´ к ×Õ × ´½º¾ µ µ ÕÓÙÒ ×ÙÒ Û
Ø ÔÓÐ Ð ÔÖÓ× × Gaussian Ø ÒÓÑ º É Ö Ø Ö ×Ø ØÛÒ ×Ø Ø ×Ø ôÒ × ÐÑ ØÛÒ Ò Ø Ü Ð ÓÒØ ÙÜ ÒÓÒØ
ØÓÒ Ö Ñ ØÛÒ Ñ ØÖ × ÛÒº ÙØ Ò Ø ×Õ Ø Ö ÓÙ Ñ ôÒÓÒØ ÒØ ×ØÖ Û
Ò ÐÓ Ñ Ø Ò Ø ØÖ Û¹ Ò ÖÞ ØÓÙ Ñ ÓÙ
ØÓ Ñ ØÓ
º Å ÐÐ Ø ÓÖ × ÐÑ ØÛÒ Ò Ø ×Ùר Ñ Ø × ÐÑ Ø Ø ÓÔÓ ×ÙÒ Û
Ò ÕÓÙÒ ººº ×Ùר Ñ Ø ØÖ ÔÓ Ò Ø Ø Ñ ×ÓÙÑ º ÙØ ר Ò Ô ÖÔØÛ× Ñ
ÑÔÓÖÓ Ò Ò ÕÓÙÒ ÔÐ Ø ´ÐºÕº Ò Ñ Ò Ò ØÓ × ×Ø Ñ × ÖÑ ×ÓÖÖÓÔ µ ÖØ Ù× ÓÐ Ø Ö Ò ÒØÓÔ ×Ø ´ÐºÕº Ñ ÒÒ ØÖ Ý Ù ÓØÙÕ ÛÒ Ö ÑôÒµº Ì ÐÓ
ר Ò Ô ÖÔØÛ× ÔÓÙ ÔÓ Ó
ÕÖ × ÑÓÔÓ Ò Ö Ø ÔÖ ØÙÔÓ ´ ÔÛ
ØÓ Isingµ Ò ÔÖÓ×ÓÑÓ ô× Ò ×ÙÒ Õ
ÑÓÒØ ÐÓ¸ Ø Ø ×ØÓÙ
Ø Ñ Ø
ÙÔ × ÖÕÓÒØ × ÐÑ Ø Ð Û Ø
Ö ØÓÔÓ ×
ØÓÙ Ô Ô Ö ×Ñ ÒÓÙ Ñ ÓÙ
ØÓÙ ×Ùר Ñ ØÓ
º ÙØ Ø × ÐÑ Ø Ñ ôÒÓÒØ
ºº
Æ
ÀÌÏÆÌ Ë ÌÇ ººº Ë
ÄÅ
½¿½
Ñ Ø Ò ÔÖÓ×ÓÑÓÛ× Ñ Ð Ø ÖÛÒ ×Ùר Ñ ÑÑ ÓÙ
ÔÛ
кպ Ø ÑÛ× Ô Ô sclingµ ÔÓÙ Ó Ø Ñ
Ô Ô Ö ×Ñ ÒÓ ØÒØÑ ØÓ Ô ÖÛ
Ñ ÐÓ × ×Ø Ñ Ø
ÑÐØ
Ñ
× Ô Ñ ÒÓ Ð Óº
º º½ Ë ÏÆ ÄÅ Ì Æ
ØÛÒ ÒØ Ñ ØÛÔÞÓÒØ ×Ùר Ñ Ø Ö ×Ñ ÒÓÙ Ñ ÓÙ
´finite size Ñ Ó
×Ùר Ñ ØÓ
Ñ
ÒÓÙÒ º ÙØ Ò ÒØ Ñ ÒÓ
ÊÌÀÌÏÆ Å ÌÊÀË ¹
Ë Ñ ÛÒ Ñ Ø Ò ÙÔ × Ø Ô ØÛÒ × ÐÑ ØÛÒ ×Ø
Ñ ØÖ ×
Ñ
Ò Ó ÖÑ
ÙÑ Ò×
ÔÖÓ ÔØ Ø ÔÖ Ñ Ø ØÑ ØÑØ Ô Ø Ñ × Ø Ñ ØÓÙ Ñ ØÓ
Ø ØÓ × ÐÑ Ò ØÓ × ÐÑ Ø
Ñ ×
Ø Ñ
º ³ Ø× Ò ÕÓÙÑ Ò Ñ Ô n Ñ ØÖ ×
O0 , O1 , . . . , On−1
1 O= n
2 (δO)2 ≡ σO = n−1
i=0
Oi = 1 n−1 O2 − O
2
´ º¾ µ
Ç Ô Ö Ô ÒÛ ×Õ ×
ÙÔÓ ØÓÙÒ ÔÛ
ØÓ Ñ Ñ
ÔÓØ Ð Ø Ô Ò Ü ÖØ Ø
Ñ ØÖ ×
º ÙØ ÔÛ
Ñ ×ÙÑ Ò ×Ñ ÔÖÓ×ÓÑÓÛ× Å ÒØ à ÖÐÓ Ð Û ØÓÙ ÙØÓ×Ù×Õ Ø ×ÑÓ ØÛÒ Ñ ØÖ × ÛÒº Ñ ÔÛ
Ò Ó ÕÖ ÒÓ
ÙØÓ×Ù×Õ Ø ×ÑÓ ¸ Ñ ØÖ Ñ ÒÓ
× ÑÓÒ
Ö Ñ
Ñ ØÖ × ÛÒ ¸ Ò τO ¸ × Ñ ÛÒ Ñ Ø Ò º¾ ÕÓÙÑ nO = n/(2τO ) Ò Ü ÖØ Ø
Ñ ØÖ ×
º ËØ Ò Ô ÖÔØÛ× ÙØ ÑÔÓÖ Ò Õ Ø ØÓ ÔÖ Ñ Ø ×Ø Ø ×Ø × ÐÑ ×Ø Ñ ØÖ × Ø
O Ò ¾¼℄ ´ Ø Ô×
à º º½ ØÓÙ ¾℄µ 1 + 2τO O2 − O 2 . (δO)2 = ´ º¿½µ n−1 Ò τO ≪ 1 Ø Ø Ô ÖÒÓÙÑ Ø Ò ´ º¿¼µ º Ò τO ≫ 1 Ø Ø Ô ÖÒÓÙÑ
(δO)2 ≈ 2τO O2 − O 2 n−1 1 O2 − O 2 ≈ (n/2τO ) 1 O2 − O 2 ≈ nO − 1
´ º¿¾µ ´ º¿¿µ ´ º¿ µ
1 n−1
1 n
n−1
i=0
(Oi − O )2
´ º¿¼µ
½¿¾
Ã
ï Ä ÁÇ º ÈÊÇËÇÅÇÁÏËÀ ÌÇÍ ÈÊÇÌÍÈÇÍ
ISING
ÔÓÙ Ò Ò ÔÖ ´ º¿¼µ nO Ò Ü ÖØ Ø
Ñ ØÖ ×
´ÙÔÓ × Ñ Ø 1 ≪ nO ≪ nµº À Ô Ö Ô ÒÛ ×Õ × ÓÐÓ ØÓ ÓÒ
Ø ÛÖ × Ñ Ø
Ñ ØÖ ×
ÔÖ Ø Ò Ü ÖØ Ø
Ñ Ø Ô ÕÖ ÒÓ ∼ 2τO º Ç Ô Ö Ô ÒÛ ×Õ ×
Ñ
ÒÓÙÒ Ø Ò Ð Ù Ö Ò Ô Ð ÜÓÙÑ ÔÛ
Ñ
ÓÐ ØÓ Ô ×Ó ×ÙÕÒ Ô ÖÒÓÙÑ Ñ ØÖ ×
Ô ÒÛ ×ØÓ × ×Ø Ñ º ÐÐ ÕÓÙÒ Ñ Ö
Ù× ÓÐ
ר Ò ÖÑÓ ØÓÙ
º À ÔÖôØ Ò ÔÛ
ÔÖ Ô Ò ÒÓÙÑ Ø Ñ ØÖ × ØÓÙ ÕÖ ÒÓÙ ÙØÓ×Ù×Õ Ø ×ÑÓ Ñ Ø
ÒÛר
Ù× ÓÐ
ÔÓÙ Ô Ö Ö Ý Ñ ×Ø Ò Ò Ø Ø ºº À ØÖ Ò Ø Ò Ü ÖÓÙÑ Ø ÔÓØ Ð ×Ñ Ø ÔÓÙ Õ ×ØÓÒ ÙÔÓÐÓ ×Ñ ØÓÙ × ÐÑ ØÓ
ÔÖ Ñ Ø Ø ÒÓÑ ØÛÒ Ñ ØÖ × ÛÒ¸ Ø Ö Ò ÔÓ× Ø Ø ÔÓÙ Ñ ØÖ Ñ Ò Ò Ñ ÔÐ ØÓÔ ÔÓ× Ø Ø ÔÛ
кպ ÒÖ º
Ô ÖÓÙÑ ÔÖ Ñ Ø Ñ ÒØ Ô Ø ØØ ´ º¾½µ º ÙØ 2 ÔÖÓÔÓ Ø Ø Ñ ØÖ × ØÛÒ m m´ Ñ Ð Ø Ö Ø Ò ÔÓ× Ø Ø (mi − m ) Ô ÒÛ × Ø Ü iµ Ò ÑÔÓÖ Ò ÓÖ ×Ø Ô ÒÛ × Ñ Ñ ÒÓ Ø Ü ØÛÒ ×Ô Òº Ò ÙÔÓÐÓ ×ÓÙÑ Ø
Ô Ö Ô ÒÛ ÔÓ× Ø Ø
Ó ×Ù ÒØÖô×ÓÙÑ ØÓ Ñ ÑÔ Ò ØÓ ÖôØ Ñ Ôô
ÙÔÓÐÓ ×Ø ÙØ Ò Ò ÔÐ ×ÙÒ ÖØ × ØÛÒ δ m δ m2 Ð Û ØÓ × ÐÑ δχº ØÓÙ ×Ù×Õ Ø ×ÑÓ ØÛÒ Ó ÔÓ×ÓØ ØÛÒ ´ Ø× кպ Ó ÒÛר
Ô Ø ×Û Ö ×Ø Ö Ù×
Ø ÔÓ
Ó×
ØÛÒ × ÐÑ ØÛÒ Ò ×Õ µº
º º¾ Ç ËÇÍ Á Ë ÁÆ Á ÉÊÀËÁÅÇË
À Ô Ó ÔÐ Ð × ÔÓÙ Ö× Ò
ר ÔÖÓ Ð Ñ Ø ÔÓÙ Ò Ö Ñ ×Ø Ò ÔÖÓ Ó Ñ Ò ÙÔÓ Ò Ø Ø Ò Ò ÕÛÖ× Ò
ØÓ Ñ ØÓÙ × blocks binsº ÌÓ ÒÓÑ ÔÖÓ ÖÕ Ø Ô ØÒ Ò Ø Ø
n Ñ ØÖ ×
Ñ
Ø
ÞÓÙÑ × nb Ð Ð ØÓ ÕÖ × ÑÓÔÓ Ó Ñ Û
Ñ Ò Ü ÖØ Ø Ñ ØÖ × º ÙØ Ò ×Ûר Ò Ó Ö Ñ
ØÛÒ Ñ ØÖ × ÛÒ b b = (n/nb ) ≫ τO º Ò Oi i = 0, . . . , nb −1 Ò × Ð Ò Ó Ñ ×
Ø Ñ
Ø
O ×ØÓ Ð i¸ Ø Ø ØÓ × ÐÑ Ò Ø Ô Ø Ò ´ º¿¼µ n −1 1b 1 2 (Ob − Ob )2 (δO) = ´ º¿ µ nb − 1 nb i=0 i ÙØ Ø
º × ØØ Ò Ò Ñ Ó Ó
binning blocking Ò ÔÐ ×Ø ÕÖ × È Ö Ø Ö ×Ø Ø ÔÓ× Ø Ø
ÔÛ
Ñ ÒØ Ô Ø ØØ Ð ×ÒÒ ØÒ Ò Ò Ü ÖØ ØÓ Ñ ØÓ × ÐÑ ÓÐÓ Ò ÙÔÓÐÓ ×Ø Ô Ø Ò ´ º¿ µ º ³ÇÔÛ
Ô Ñ ¸ ÙÒ Ø Ñ Ó Ó
ÙØ ÔÖ Ô Ð Ò Ò ×Ø Ø ÙÔÓÐÓ ÞÓÒØ Ò Ò ×Ø
ºº
Æ
ÀÌÏÆÌ Ë ÌÇ ººº Ë
ÄÅ
½¿¿
Ò Ü ÖØ ØÓ Ô ØÓ ÐÐÓº Ò Ò Ò Ø Ø ØÓ × ÐÑ Ò ÙÔÓ Ø Ñ Ñ ÒÓ Ð Ò Ø ØÓÒ Ô Ö ÓÒØ 2τO /(nb −1) Ø
×Õ ×
´ º¿½µ º Ì ×Ø Ò ÔÖ Ü ×Ø Ø ×Ø Ò Ü ÖØ Ø Ø Ò b ∼ 2τO º Ò Ò ÒÛÖÞÓÙÑ ØÓÒ τO ÙÔÓÐÓ ÞÓÙÑ Ô Ò ÐÐ Ñ Ò ØÓ × ÐÑ ´ º¿ µ Ñ ôÒÓÒØ
ÓÕ ØÓÒ Ö Ñ ØÛÒ Ð ôÒ nb º ³ÇØ Ò ØÓ × ÐÑ Ô Ò ÙÜ Ò Ø ÔÖ ×Ø Ö ØÑ¸ØØ ÛÖÓ Ñ ÔÛ
Ñ Ó Ó
×Ù ÐÒ ×Ø ×Ûר ØÑº À Ñ Ó Ó
ÑÛ
ÔÓÙ Ô Ð ÜÓÙÑ ×Ø
ÔÖÓ×ÓÑÓ ô×
Ñ
Ò Ò Ô Ó ×Ø Ö Ñ Ó Ó
ØÓÙ ººº ×ÓÙ ´jackknife methodµº Ò Ô Ó Ü Ô ×Ø ÔÓØ Ð ×Ñ Ø ¸ Ø Ö × Ñ Ø Ñ ÖÓ Ñ ÓÙ
º À × Ò Ñ Ø Ñ Ó Ó binning Ñ Ø Ñ Ò ÓÖ ØØ Ð Ø ÕÒÓÒØ Ñ ÓÖ Ø ØÖ ÔÓ ×Õ × ´ º¿ µ Ð Ö ØÖÓÔÓÔÓ Ø º ÉÛÖÞÓÙÑ Ø ÓÑ Ò Ñ
× nb bins Ø ÓÔÓ Ô Ö ÕÓÙÒ Ô b = n − (n/nb ) ×ØÓ Õ Û
Ü
ÌÓ bin j ÔÖÓ ÔØ ÔØ ÖÕ ÓÑ Ò O0 , . . . , On−1 Ò Ö ÝÓÙÑ Ø ÔÖ ÕÑÒ ØÓÙ j¹ Ð Ó Ø
Ñ ÓÙ binningº À × Ò Ø ×Õ Ñ Ø ×ØÓ ×Õ Ñ º½¿º Ë bin ÙÔÓÐÓ ÞÓÙÑ Ø Ñ × Ø Ñ Ø
Oº ÈÖÓ ÔØÓÙÒ b b b Ø Ø Ó Ñ ×
Ø Ñ
O0 , O1 , . . . , Onb −1 º Ì Ø ØÓ × ÐÑ ×Ø Ò Ñ ØÖ × Ø
O Ò
(δO) =
2 nb −1 j=0 b Oj − Ob 2
= nb
(Ob )2 − Ob
2
.
´ º¿ µ
³ÇÔÛ
ר Ñ Ó Ó binning Ó Ö Ñ
ØÛÒ bins ÓÖÞ Ø ÑØ ÐÐÓÒØ
ØÓÒ ÔÖÓ× ÓÖÞÓÒØ
Ò
Ø
Ø Ñ
Ø
ÓÔÓ
Ø Ñ ØÓÙ × ÐÑ ØÓ
ר ÖÓÔÓ Ø º Ô Ö ×× Ø Ö
Ð ÔØÓÑ Ö
ÔÓ Ü
ØÛÒ ×ÕÙÖ ×ÑôÒ ×Ø Ò ÙÔÓ Ò Ø Ø ÙØ Ô Ö Ô ÑÔÓÙÑ ØÓÒ Ò Òôר ×ØÓ ÐÓ ØÓÙ Berg ¾℄º ËØÓ Ô Ö ÖØ Ñ ¾º½ ÒÓÙÑ ÔÖ Ö ÑÑ Ø ÕÖ × Ø
Ñ ÓÙ ×Õ Ø ÔÖ ÑØº À Ñ Ó Ó
jackknife Ò Ñ Ó Ó
ÙÔÓÐÓ ×ÑÓ ØÛÒ × ÐÑ ØÛÒ ÔÓÙ ÔÖÓØ Ñ Ø Ô Ø Ò ÔÐ ÓÝ Ø
Ô ×Ø ÑÓÒ
ÓÒØØ
ÙØ ÓÐÓÙ ×ÓÙÑ ×ØÓ ÐÓ ÙØ º
º º¿ ÇÌ Æ Æ ÁË ÌÁË ÅÈÇÌ Ë ËÇͺºº
ÐÐ Ñ Å bootstrapº
Ó Ó
¸ ÕÖ × Ñ ×Ø Ò ³ ×ØÛ Ø ÕÓÙÑ n
ØÑ ×
Ò Ü ÖØ Ø
ØÛÒ × ÐÑ ØÛÒ¸ Ò Ñ Ó Ó
Ñ ØÖ ×
º Ô ÙØ
Ñ ÓÙÖ Ó Ñ
½¿
Ã
ï Ä ÁÇ º ÈÊÇËÇÅÇÁÏËÀ ÌÇÍ ÈÊÇÌÍÈÇÍ
ISING
ÑØ Ô ÙØ
Å ÓÑÓ ÑÓÖ Ô ÒØØ Ð ÓÙÑ nS ØÙÕ Ñ Ñ ØÖ × Ô Ø
n Ñ ØÖ ×
º ÙØ ØÓ ÒÓÙÑ n ÓÖ
Ô ØÓ Ó × ÒÓÐÓ ØÛÒ n Ñ ØÖ × ÛÒ ¹ к ÕÛÖ
Ò ÖÓ Ñ Ø Ñ ØÖ × ÔÓÙ ÐÜÑ Ô ÙØ
ÔÓÙ Ð ÜÓÙÑ Ø Ò Ô Ñ Ò ÓÖ Ø× Ø ÕÓÙÑ Ò Ñº ÙØ × Ñ Ò Ø ØÓ Ñ ÔÖ Õ ∼ 1 − 1/e ≈ 63%
Ñ ØÖ ×
º Ë Ñ i = 0, . . . , nS − 1 S ÙÔÓÐÓ ÞÓÙÑ Ø Ò ÔÓ× Ø Ø Oi Ô ÙØ
Ø Ñ × Ø Ñ
O
S
1 = nS 1 = nS
nS −1 i=0 nS −1 i=0
S Oi ,
´ º¿ µ
ØÒ
O
S2
S Oi
2
.
´ º¿ µ
À
ØÑ ×
ØÓ × ÐÑ
ר
Ñ ØÖ ×
OS
2
ØÓÙ O
− OS
2
Ò
ØØ
´ º¿ µ
(δO)2 =
.
ÈÖ Ô Ò ØÓÒ×ÓÙÑ Ø Ó Ô Ö Ô ÒÛ Ø ÔÓ
Ò ØÓ × ÐÑ Ò Ü ÖØ Ø
Ñ ØÖ ×
º Ò ÕÓÙÑ Ñ Ñ Ð Ø ÓÙ
ÕÖ ÒÓÙ
ÙØÓ×Ù×Õ Ø ×ÑÓ ¸ ÔÖ Ô Ò ÕÖ × ÑÓÔÓ ×ÓÙÑ Ø Ö Û× ÔÓÙ Ò ×Õ ×
(δO)2 = (1 + 2τO ) OS
2
− OS
2
´ º ¼µ
ËØÓ Ô Ö ÖØ Ñ ¾º¾ ÕÒÓÙÑ Ôô
Ò ÕÖ × ÑÓÔÓ ×ÓÙÑ Ø Ñ Ó Ó binning Ò ÙÔÓÐÓ ×ÓÙÑ ØÓ ÔÖ Ñ Ø × ÐÑ δO ÕÛÖ
a priori Òô× ØÓÙ τO º Ô Ö ×× Ø Ö
Ð ÔØÓÑ Ö
Ô Ö Ô ÑÔÓÙÑ ØÓÒ Ò Òôר ר ÖÖ ØÓÙ Bradley Efron ¾½℄º ËØÓ Ô Ö ÖØ Ñ ¾º¾ ÒÓÙÑ ÔÖ Ö ÑÑ Ø ÕÖ × Ø
Ñ ÓÙ ×Õ Ø ÔÖ ÑØº
º
ÈÊÇ ÄÀÅ Ì
ÜØ Ø ´ º½¼µ ÒÓÔÓ Ø ×ÙÒ Ð ÔØÓÑ ÖÓ
×ÓÞ ×
º Ø Ò ÔÓ× Ø Ø ÑÒ Ñ
× bytes Ð ØôÒ char, int, long,
½º ÔÓ
¾º Ö ÝØ ÔÖ Ö ÑÑ ÔÓÙ ×
ØÙÔôÒ ÔÓÙ Ô ÒÓÙÒ Ó ÐÓÙ Ó Ø ÔÓ Ñ Ø ulong, real, double, size t
ºº
ÈÊÇ ÄÀÅ Ì
½¿
¿º Å Ø ÐÐ Ø ØÓÒ ÔÖ Ö ÑÑ Ø× ôר Ò Ñ ØÖ ØÓÒ Ñ ×Ó Ð Ó Ðº Ñ ØÖ ר ØÓÒ Ö Ñ ÔÓ ÓÕ
ØÛÒ Ñ ØÛÒ Metropolisº ØÛÒ ØôÒ ÐÐ ôÒ ×Ø ×Ô Ò × ×Õ × Ñ ØÓÒ Ö Ñ ØÛÒ Ô Õ ÖÓ Ñ ÒÛÒ ÐÐ ôÒº Ü Ø ×Ø Ø ×Õ × ØÓÙ Ö ÑÓ ÙØÓ ÔØ ÖÑÓ Ö × ØÓ Ñ Ó
ØÓÙ ×Ùר Ñ ØÓ
º º ÈÖÓ× ×Ø ØÓÒ Ô ØÓ Ð ØÓÙÖ Ø Ò ØÖ ÕÓÙ× Ò ØÓ ÒØ ØÓ ÔÖ Ö ÑÑ Ò ×Õ Ø
% % % % kill -l man kill man 2 signal man sigaction
Ø ÐÐ ÐÓ ô ôר Ø Ò Ó ÕÖ ×Ø
ר ÐÒ ×Ñ × ×Ø Ñ ´signalµ ØÓ ÔÖ Ö ÑÑ Ò ØÙÔôÒ Ø Ü ØÛÒ ×Ô Ò ØÓÙ ×ÙØ Ñ ØÓ
º ÅÔÓÖ Ø ÙØ Ø INT USR1 signals ´×Ø Ò ÔÖôØ Ô ÖÔØÛ× ×Ø Ñ Ø ¸ ר Ø Ö Ò ×ÙÒ ÕÞ µº Ø
º ÒÔÖ Ø Ø ×Õ Ñ Ø º ÙÔÓÐÓ ×Ø ØÓÒ τm º ÔÒÐ ØÓ Ó ØÒ ÒÖ ÙÔÓÐÓ ×Ø ØÓÒ τe º ËÙ ÖÒ Ø Ø
Ø Ñ
ÔÓÙ Ð Ø Ñ Ø
Ø Ñ
ØÛÒ τint,m τint,e º º ÒÔÖ ØØ ØÒ ÒÖ ×Õ Ñ Ø º º ÔÒÐ Ø ØÓÒ ÙÔÓÐÓ ×Ñ
Ø
×
º ÒÔÖ Ø Ø ×Õ Ñ Ø º½¼º ÔÒÐ Ø ØÓ Ó ÒÖ º ËØ ×ÙÒ Õ ÒØ Ø Ò ÐÓ ×Õ Ñ Ø τint,e × ×ÙÒ ÖØ × ØÓÙ tmax ´ к ×Õ Ñ ºµ º ÒÔÖ Ø Ø ×Õ Ñ Ø º½½ ØÒ ÒÖ º ËØ ×ÙÒ Õ ØÓÙ
τint,m τint,e × ×ÙÒ ÖØ ×
ØÒ ØÓÙ
τint,m
º½¾º ÔÒÐ Ø ØÓ Ó ÒØ Ø Ò ÐÓ ×Õ Ñ Ø ØÓÙ tmax ´ к ×Õ Ñ ºµ
º Ã Ò Ø Ø
Ô Ö Ø Ø
Ñ Ø ØÖÓÔ
רÓÒ ô ôר Ò ÔÖÓ×ÓÑÓ ô× Ø ØÓ ÔÖ ØÙÔÓ Ising Ô ÖÓÙ× ÜÛØ Ö Ó Ñ Ò Ø Ó Ô ÓÙ B ´ к ܺ ´½º ½µ µº ÍÔÓÐÓ ×Ø Ø Ò Ñ Ò Ø × m(β, B) L= B = 0.2, 0.4, 0.6, 0.8, 1.0 ×ØÓ Ò ÖÓÒ ×Ñ ØÛÒ ÖÑÓ Ö × ôÒº 32 È Ö Ø Ö ×Ø Ø
× Ö×
Ø
ÖÑ
×ÓÖÖÓÔ
ô
ÓÖ Ø
ÖÕ
Ø ×Ø ×
È ÛÑ Ò ÙÜ Ò ØÓ B Ô
½¿
Ã
ï Ä ÁÇ º ÈÊÇËÇÅÇÁÏËÀ ÌÇÍ ÈÊÇÌÍÈÇÍ
ISING
Ñ ×Ô Ò Ô Ö ÐÐ Ð ×ØÓ B¸ Ô ÛÑ Ò Ñ ×Ô Ò ÒØ Ô Ö ÐÐ Ð ×ØÓ B¸ ÙØ Ø Ò ÔÖÓ Ó Ñ Ò Ø ×Ø × × ØÓÒ ÖÑÓ Ö × º Å Ð Ø ×Ø ÔÛ
Ñ Ø ÐÐ Ø ÖÑÓ Ö × ×Ø Ò ÓÔÓ ÕÓÙÑ Ñ Ø × Ô Ñ Ñ Ò Ø ×Ñ Ò × Ñ Ò Ø ×Ñ Ò Ø ×Ø × Û
ÙÜ Ò ØÓ Bº ½¼º Ò Ñ ÒÓ Ùר Ö ×
ËØ Ò ÔÖÓ Ó Ñ Ò × × ØÓ × ×Ø Ñ B = 0 Ô ÖÓÙ× Þ ÑØ × × ÔÖôØ
Ø Ü
¸ к ×ÙÒ Õ ×Ø Ò Ø Ñ Ø
Ô Ö Ñ ØÖÓÙ Ø Ü
º ô ÙØ Ò Ñ ÒØ× × ×ÙÒ ÖØ × ØÓÙ Bº È ÖÓÙ× Þ Ø ×ØÓ × ×Ø Ñ ÙØ ØÓ Ò Ñ ÒÓ Ø
Ùר Ö ×
º Ò ØÓ Ø ×Ø L = 32 β = 0.55º ´ ´ µ ÖØ ØÓ × ×Ø Ñ × ÖÑ ×ÓÖÖÓÔ
B = 0º B = 0.2 ÕÖ × ÑÓÔÓ ôÒØ
Û
µ ÈÖÓ×ÓÑÓ ôר ØÓ × ×Ø Ñ ÖÕ Ø ×Ø × ÙØ ØÓÙ ÔÖÓ ÓÙÑ ÒÓÙ Ñ ØÓ
º Ã ÒØ ½¼¼ sweeps ÙÔÓÐÓ ×Ø Ø Ò m º
´ ´
µ ËÙÒ Õר Ø Ò Ø δB = 0.2
ÓÖ º
´
µ ÔÒÐ Ø ÜÒ ÙÜ ÒÓÒØ
ØÓ Ñ 0.95º
µ Ô Ø Ò Ø Ð ÙØ Ø Ü ØÓÙ ÔÖÓ ÓÙÑ ÒÓÙ Ò Ð ØØôÒ Ø Õ ØÓ Ñ Òº Ô Ó Ø Ñ ÕÖ m ≈= −0.95º Ô Òº Ø Ò Ø Ð ÙØ Ô Ó Ü Ò Ø Ð ×Ø ÒØ×
× ÙÜ ÒÓÒØ
ØÓ Ñ Ò Ø ËØ Ñ Ø ×Ø Ø Ò m ≈ 0.95º
Ô
Ó
Ñ ØÓ
ÖÕר δB = −0.2
Ø Ü ØÓÙ ×Ùר Ñ ØÓ
δB = 0.2 Ñ ÕÖ m ≈ ÔÔ Ó (B, m) Ø Ò
Ì ÔÖØÖØ ÈÓ
Ò Ó ÓÖ Ø
Ì
Ø ÜØ Ñ ØÑ
Ø
Ñ
ÑÔ Ð ×ØÓ B=0
×Ùר Ñ Ø ÔÓÙ Ô ÖÓÙ× ÞÓÙÒ Ñ Ø × Ø ×Ø ×
ÔÓÙ Ò ØÓÔ Ð Õ ×Ø ÐÐ ÙÔ ÖÕ Ñ ÒÓ Ò ÔÖ Ñ Ø ÐÕ ×Õ Ñ ½º¾ ÔÓÙ Ô ÓÒÞÓÒØ Ó Ó Ð Ö ÒÖ º ÙØ ×ÙÑ Ò × Ñ Óº ³ÇØ Ò ÓÙÑ Ô ÙØ ¸ Ø Ø ØÓ ÔÖ Ñ Ø ¸ Òô ØÓ ÐÐÓ Õ Ñ Ð ³ÇØ Ò ØÓ × ×Ø Ñ Ö × ÙØ Ø Ò Ñ ÐÓ ÕÖ ÒÓ Ò ÑÔÓÖ × Ò ÙÔ ÖÔ
ÔÖôØ
Ø Ü
¸ Ô ÖÓÙ× ÞÓÙÒ Ø
Ð Ö
ÒÖ
×ØÓº ÙØ Ò Ø ×ØÓ Ø ×Ø ×
Ò ÕÓÙÒ Ø Ò Ö ô
×ØÓ Ö× ÑÓ ØÓ Ò Ð Õ ×ØÓ Ò ØÖ Ð Ö ÒÖ º Ø ×Ø × ¸ Ø Ø ÕÖ Þ Ø × ØÓ Ö Ñ Ð Ö
ºº
ÈÊÇ ÄÀÅ Ì
½¿
ÒÖ
Ò Ö Ø Ò ÔÖ Ñ Ø ÑÐô Ø ×Ø × º Å Ø ØÓ Ø ×Ø × ÓÒÓÑ Þ Ø Ñ Ø ×Ø
º Ë Ñ ÔÖÓ×ÓÑÓÛ× Å ÒØ Ã ÖÐÓ Ñ Ø ØÓ Ô ÖÔØÛ× Ô ÖÓÙ× Þ Ñ Ð Ù× ÓÐ ¸ Ó ÑÔÓÖÓ Ñ Ò ÛÖ ×ÓÙÑ Ø Ð Ó
Ø Ö × Ñ ×Ø ר ÑÐô Ø ×Ø × º ×
Ô Ò Ð Ø Ø
ÔÖÓ×ÓÑÓ ô×
ÔÓÙ Ò Ø Ô Ö Ô ÒÛ¸ ÐÐ ÒØ ÙØ Ø ÓÖ 100, 000 sweepsº È Ö Ø Ö ×Ø Ø ÕÖÓÒÓ× Ö Ø
Ñ ÒØ×
Ô Ö Ø Ö ×Ø Ø
Ñ Ø ÔØô×
Ô Ø Ñ Ñ Ø ×Ø Ø ×Ø × ×Ø Ò ÐÐ º Ã Ò Ø ØÓ ר Ö ÑÑ ØÛÒ Ø ÑôÒ Ø
Ñ Ò Ø ×
ÒØÓÔר Ø Ñ Ø ×Ø Ø ×Ø × º Èô
Ñ Ø ÐÐ Ø ØÓ ר Ö ÑÑ ô
ÙÜ Ò Ø ØÓ B ½½º Ö ÝØ ô ØÓ ÔÖ ØÙÔÓ Ising ר
¾ ר ×
ÐÐ × Ò ÔÐ Ñ ØÖ ÛÒ ºÀ Ö ÓÖ Ò Ø Ó Ö Ñ
ØÛÒ z = 6 ÒØ z = 4º Ø ÔÐ × ×Ø ÖÛÒ Ø ÒÛÒ Ò ÓÑ ØÓÙ ÔÐ Ñ ØÓ
Ö Ø ÕÖ × Ñ ÔÐ ÖÓ ÓÖ ×ØÓ º ½¿º½º¾ ØÛÒ Newman Barkema ´ Ô ØÓ ËÕ Ñ ½¿º µº ÍÔÓÐÓ ×Ø Ü Ò Ø Ñ Ø ÓÐ Ø
Ò Ö
× spin flip ØÓ Ñ Metropolisº Ô Ø Ñ ×Ø Ø
Ñ Ò Ø
Ô Ø ØØ
Ø
ÖÑ Ø Ø
Ü Ø ×Ø Ò Ö× Ñ ÖÑÓ Ö × ØÓÙ ×Ùר Ñ ØÓ
Ò ÔÖ Ñ Ø βc ≈ 0.274653072º È Ö Ø Ö ×Ø Ø Òô Ø Ñ Ø
βc ÐÐ Þ × ×Õ × Ñ ØÓ Ø ØÖ ÛÒ ÔÐ Ñ ¸ Ó Ö× ÑÓ Ø
Ô Ö Ñ ÒÓÙÒ Ó Ó ´Ô Ó×Ñ Ø Ø µº ר ×
Ô ÒÛ ½¾º Ö ÝØ ô ØÓ ÔÖ ØÙÔÓ Ising ר
ØÖ
× Ù ÔÐ Ñ º ÉÖ × ÑÓÔÓ ×Ø ÐÓ
×ÙÒÓÖ
×ÙÒ
ØØ ÕÖ ×ØÓ Ò ÔÓÐ Ð
Ñ Ø ØÖÓÔ
רÓÒ ô ´Ñ Þ Ñ Ø XNN=1 YNN=L ÕØ ZNN=L*Lµº ´¶¶ Ì ¶¶µ
½¿º ÈÖÓ×ÓÑÓ ôר ØÓ ÒØ × ÖÓÑ Ò Ø ÔÖ ØÙÔÓ Isingº ËØÓÒ ô ÔÓ ÕØ Ö Ò Ô Ö Ø ÖÒ Ø
ÖÑÓ Ö ×¹
º ÈÓ Ò Ñ Ðô
Ø ×Ø × ÇÖר Ø Ò staggered magnetization ms Ò Ò Ñ Ò¹ Ø× Ò ÔÐ Ñ Ø × Ò
ÙÔÓÔÐ Ñ ØÓ
ØÓ ÓÔÓÓ Ô Ö Õ Ø ÔÐ Ñ Ø × Ñ Ñ Ô Ö ØØ x y ×ÙÒØ ¹ Ø Ñ Ò º Â ×Ø L = 32 ÙÔÓÐÓ ×Ø Ø Ò Ü ÖØ × Ø
ÖÑ Ø Ø
Ñ ÒØ
Ô ¹ ÒÖ
¸ ms ¸ Ø Ø Ø
χ Ø
staggered Ñ Ò Ø
Ô Ø Ø¹ Ø
χs = βN/4 (ms − ms )2 º
½¿
Ã
ï Ä ÁÇ º ÈÊÇËÇÅÇÁÏËÀ ÌÇÍ ÈÊÇÌÍÈÇÍ
ISING
À χ Ô ÖÓÙ× Þ ÒÑ ×ØÓ ×Ø Ò Ô Ö ÓÕ β ≈ 0.4407º ͹ ÔÓÐÓ ×Ø Ø Ò Ø Ñ Ø
ר ÖÑÓ Ö × ÙØ L= 32 − 120º ÜØ Ø ØÑ ÙØ Ò ÔÓ ÐÒ L → ∞¸ Ö Ò ÕÓÙÑ Ò Ü ÑØ ×
×
Ô Ø Ò χº ËÙ ÖÒ Ø Ø ÔÒÐ Ø Ø Ò χs º Ì ×ÙÑÔ Ö Ò Ø ×ÙÑÔ Ö ÓÖ Ø
ms ØÓ ÒØ × ÖÓÑ Ò Ø ÔÖ ØÙ¹ ÔÓ Ising Ñ Ø Ò m ØÓÙ × ÖÓÑ Ò Ø Ó º
ºº
ÈÊÇ ÄÀÅ Ì
1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 0.95 1000 2000 3000 4000 5000 6000 thermalization sweeps 7000 8000 9000 10000
½¿
0.9
0.85
0.8
0.75
0.7
0.65 0 1000 2000 3000 4000 thermalization sweeps 5000 6000 7000
ËÕ Ñ
º Μαγνήτιση ανά πλεγματική θέση για το πρότυπο Ising με L = 100 και β = 0.48. Φαίνεται η διαδικασία εύρεσης θερμικής ισορροπίας για μια αρχική κατάσταση καυτή. Στη συνέχεια, στο κάτω σχήμα, υπολογίζουμε τη μέση τιμή m αποκόπτοντας “thermalization sweeps” μετρήσεις και τις δείχνουμε στο δεύτερο σχήμα μαζί με τα αντίστοιχα σφάλματα. Παρατηρούμε ότι όταν αποκόψουμε ικανό αριθμό από αρχικές μετρήσεις, σε συμφωνία με το πάνω σχήμα, το αποτέλεσμα σταθεροποιήται ( m = 0.880(1)) και βρίσκουμε πως το σύστημα είναι σε θερμική ισορροπία.
½¼
Ã
ï Ä ÁÇ º ÈÊÇËÇÅÇÁÏËÀ ÌÇÍ ÈÊÇÌÍÈÇÍ
ISING
ËÕ Ñ
º Διατάξεις σπιν για πρότυπο Ising με L = 400, β = 0.4292 μετά από 4000, 9000, 12000 και 45000 sweeps αντιστοιχα. Παρατηρούμε τη δημιουργία μεγάλων clusters από όμοια σπιν τα οποία είναι δύσκολο να καταστρέψουμε και να δημιουργήσουμε αλλού με έναν single–flip αλγοριθμο όπως ο Metropolis. Για το λόγο αυτό οι χρόνοι αυτοσυσχετισμού είναι μεγάλοι.
ºº
ÈÊÇ ÄÀÅ Ì
½½
1 0.8 0.6 ρm(t) 0.4 0.2 0 -0.2 0 1 500 1000 1500 2000 2500 3000 t (sweeps) e-t/τ ρm(t)
ρm(t)
0.1
0.01 0 100 200 300 400 500 600 700 800 t (sweeps)
ËÕ Ñ º Η συνάρτηση αυτοσυσχετισμού της μαγνήτισης ρm (t) για το πρότυπο Ising και L = 100, β = 0.42. Φαίνεται η εκθετική πτώση της και ότι τm ≈ 200 sweeps. Φαίνονται και τα φαινόμενα πεπερασμένου μεγέθους το δείγματος (1,000,000 μετρήσεις) όταν η ρ αρχίζει να έχει διακυμάνσεις γύρω από το 0. Στο δεύτερο σχήμα γίνεται προσαρμογή στην εκθετική πτώση Ce−t/τ (βλ. εξ. (4.23) ) με τ = 235(3) sweeps.
½¾
Ã
ï Ä ÁÇ º ÈÊÇËÇÅÇÁÏËÀ ÌÇÍ ÈÊÇÌÍÈÇÍ
ISING
250 200 τint, m(tmax) 150 100 50 0 0 τ1 τ2 500 1000 1500 2000 2500 3000 3500 tmax (sweeps)
º Υπολογισμός του ολοκληρωμένου χρόνου αυτοσυσχετισμού της μαγνήτισης (integrated autocorrelation time) για τα δεδομένα του σχήματος 4.7. Παρατηρούμε ένα πλατώ στις τιμές του τint,m για τ1 = 214(1)sweeps αλλά και ένα μέγιστο για τ2 ≈ 219.5sweeps. Η πτώση των τιμών από τ1 σε τ2 οφείλεται σε αρνητικές τιμές της ρm (t) λόγω θορύβου του δείγματος των μετρήσεων. ΄Αρα θα πάρουμε τint,m = 217(3)sweeps να είναι το αποτέλεσμά μας.
ËÕ Ñ
ºº
ÈÊÇ ÄÀÅ Ì
½¿
1 0.8 0.6 ρm(t) 0.4 0.2 0 -0.2
10 20 40 60 80
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 t (sweeps) 1 0.8 0.6 ρm(t) 0.4 0.2 0 -0.2 0
ËÕ Ñ
5 10 20 40
1
2
3
456 t (sweeps)
7
8
9
10
º Η συνάρτηση αυτοσυσχετισμού της μαγνήτισης για το πρότυπο Ising σε υψηλή θερμοκρασία β = 0.20 για L = 10, 20, 40, 60, 80 (επάνω σχήμα) και σε χαμηλή θερμοκρασία β = 0.65 για L = 5, 10, 20, 40 (κάτω σχήμα). Ο χρόνος αυτοσυσχετισμού σε sweeps είναι ανεξάρτητος του L.
½
Ã
ï Ä ÁÇ º ÈÊÇËÇÅÇÁÏËÀ ÌÇÍ ÈÊÇÌÍÈÇÍ
ISING
1 0.8 0.6 ρm(t) 0.4 0.2 0 -0.2 0 1 0.9 0.8 0.7 0.6 ρm(t) 0.5 0.4 0.3 0.2 0.1 0 -0.1 0
0.38 0.40 0.41 0.42 0.43 0.4407
200 400 600 800 1000 1200 1400 1600 1800 2000 t (sweeps) 0.4407 0.45 0.46 0.47 0.50
200 400 600 800 1000 1200 1400 1600 1800 2000 t (sweeps)
ËÕ Ñ º½¼ Η συνάρτηση αυτοσυσχετισμού της μαγνήτισης για το πρότυπο Ising για L = 40. Στο επάνω σχήμα φαίνεται πώς αυξάνει ο χρόνος αυτοσυσχετισμού όταν πλησιάζουμε την κρίσιμη θερμοκρασία από τη θερμή φάση (φάση αταξίας) ενώ στο κάτω πώς αυξάνει ενώ πλησιάζουμε από την ψυχρή φάση (φάξη τάξης).
ºº
ÈÊÇ ÄÀÅ Ì
½
1 0.8 0.6 ρm(t) 0.4 0.2 0 -0.2 0
5 10 20 40 60 80
200 400 600 800 1000 1200 1400 1600 1800 2000 t (sweeps)
ËÕ Ñ º½½ Η συνάρτηση αυτοσυσχετισμού της μαγνήτισης για το πρότυπο Ising για β = 0.4407 ≈ βc για διαφορετικά L. Παρατηρούμε την μεγάλη αύξηση του χρόνου αυτοσυσχετισμού με το μέγεθος του συστήματος στην κρίσιμη περιοχή.
½
Ã
ï Ä ÁÇ º ÈÊÇËÇÅÇÁÏËÀ ÌÇÍ ÈÊÇÌÍÈÇÍ
ISING
1000
100 τint,m 10
1 10 L
ËÕ Ñ º½¾ Ο ολοκληρωμένος χρόνος αυτοσυσχετισμού τint,m για β = βc σε διάγραμμα λογαριθμικής κλίμακας. Η συνεχής καμπύλη είναι προσαρμογή στη συνάρτηση 0.136(10)L2.067(21). Η αναμενόμενη τιμή του εκθέτη είναι 2.1665(12) και η διαφορά οφείλεται στα σχετικά μικρά μεγέθη του συστήματος.
100
Data Bin 1 Bin 2 Bin 3 Bin 4 Bin 5
ËÕ Ñ º½¿ Η μέθοδος jackknife για ένα δείγμα από n = 20 μετρήσεις. Χωρίζουμε τα δεδομένα σε nb = 5 bins το οποίο το καθένα έχει b = n − (n/nb ) = 20 − 4 = 16 μετρήσεις (οι b γεμάτοι δίσκοι). Σε κάθε δείγμα υπολογίζουμε την μέση τιμή Oi και από αυτές το σφάλμα b )2 − O b 2 ). δO = nb ( (O
Å ÖÓ
II È Ê ÊÌÀÅ Ì
½
È Ê ÊÌÀÅ
½
ËÍÆ ÊÌÀËÀ Ã Á ÉÊÇÆÇË ÍÌÇËÍËÉ ÌÁËÅÇÍ
ËØÓ Ô Ö ÖØ Ñ ÙØ ÜÓÙÑ Ø
Ø ÕÒ
Ð ÔØÓÑ Ö
ØÓÙ ÙÔÓÐÓ ×ÑÓ Ø
×ÙÒ ÖØ ×
ÙØÓ×Ù×Õ Ø ×ÑÓ ´ º¾¾µ ØÓÙ ÕÖ ÒÓÙ ÙØÓ×Ù×Õ Ø ×ÑÓ ´ º¾¿µ ´ º¾ µ º Ë Ò Ñ Ô n Ñ ØÖ ×
O(0), O(1), . . . , O(n− 1) ÕÖ × ÑÓÔÓ ×ÓÙÑ Û
Ø Ñ Ø Ø
×Õ ×
´ º¾¾µ Ø Ò
ρO (t) = 11 ρ0 n − t
n−1−t n−1−t
t′ =0
(O(t′ ) − O 0 )(O(t′ + t) − O t )
´½º½µ
ÔÓÙ Ó
Ñ ×
Ø Ñ
ÓÖÞÓÒØ
O
0
Ô
Ø
×Õ ×
½
O(t′ + t) .
´½º¾µ
1 ≡ n−t
t′ =0
O(t )
′
1 O t≡ n−t
n−1−t
t′ =0
Ø Ø× ôר ρO (0) = 1 À ר Ö ρ0 Ô Ð ÌÓ ÔÖ Ö ÑÑ ØÓÒ ÙÔÓÐÓ ×Ñ Ø
×ÙÒ ÖØ ×
´ º¾¾µ ØÓÙ ÕÖ ÒÓÙ ´ º¾ µ Ò ÔÐ Ò Ö Ø º È Ö ØÓÙÑ ØÓ ÖÕ Ó autoc.c Ô ØÓ ×ÙÒÓ ÙØ ÐÓ ×Ñ º ר Ø Ò Ø ×Õ Ð ÔÜ ×
ØÛÒ × Ñ ÒØ ôÒ Ñ ØÛÒº
μπορούσαμε να πάρουμε O 0 = O t = (1/n) t′ =0 O(t′ ) χωρίς μεγάλη διαφορά. Με τον ορισμό που χρησιμοποιούμε έχουμε ελαφρά μικρότερα φαινόμενα πεπερασμένου μεγέθους του δείγματος. Επίσης η επιλογή μας (1.1) αντί για την ρO (t) ∝ n−1−t (1/(n − t)) t′ =0 O(t′ )O(t′ + t) − O 0 O t μειώνει τα σφάλματα στρογγυλοποίησης.
½ Θα
n
149
150È
Ê ÊÌÀÅ
½º ËÍÆ ÊÌÀËÀ à Á ÉÊÇÆÇË
ÍÌÇËÍËÉ ÌÁËÅÇÍ
#include #include #include #include #include #include
#define STRLEN 200 void get_the_options(int ,char **),usage(char **),locerr(char *); char prog[STRLEN]; int NMAX,tmax;
double rho(double *,int, int); int main(int argc, char **argv){ double *r,*tau,*x,norm; int i,ndat=0,t,tcut; /*Default values for max number of data and maximum time for rho and tau* /*Use -n and -t options to change them. */ NMAX=2000000;tmax=1000;//NMAX=2000000 requires ~ 2e6*8=16MB of memory strcpy(prog,(char *)basename(argv[0]));//program name stored in prog get_the_options(argc,argv); /*Allocate the array where we store the input data:*/ x = (double *)malloc( NMAX * sizeof(double)); //data /*Read data without exceeding NMAX as long as it is provided from stdin*/ while( (ndat < NMAX) && (scanf("%lf",&x[ndat++]) == 1)); if( ndat >= NMAX) fprintf(stderr,"# %s: Warning: Read ndat= %d and reached the limit %d\n prog,ndat,NMAX); /*we decrease tmax if it is comparable or larger to number of data.*/ if(tmax > (ndat/10)) tmax = ndat/10; /*r[t] stores the values of autocorrelation function rho(t)*/ r = (double *)malloc( tmax * sizeof(double)); //autocorrelation functio for(t=0;t_0 and xavt= _t */ for(t0=0;t0] [-n ]\n\ Reads data from stdin (one column) and computes autocorrelation\n\ function and integrated autocorrelation time.\n",prog); exit(1); }/*usage()*/
ØÓ Ñ Ø
ÐÛØØ ×Ñ
ØÓÙ ÔÖÓ Ö ÑÑ ØÓ
ÕÖ × ÑÓÔÓ Ó Ñ
ØÒ
ÒØÓÐ
% cc -O2 autoc.c -o autoc
Ò ÕÓÙÑ Ø ×ÙÒ ÖØ × Ñ Ø Ò ÒØÓÐ
Ø ÓÑ Ò Ñ
× ÙØÓ×Ù×Õ Ø ×ÑÓ
Ñ ×Ø Ð ×ØÓ ÖÕ Ó data ÙÔÓÐÓ ÞÓÙÑ ØÓÒ ÓÐÓ Ð ÖÛÑ ÒÓ ÕÖ ÒÓ ÙØÓ×Ù×Õ Ø ×ÑÓ
% cat data | ./autoc > data.rho
ÔÓÙ Ø ÔÓØ Ð ×Ñ Ø Ò × ØÖ
ר Ð
º À ÔÖôØ Ò Ó ÕÖ ÒÓ
t¸ ØÖ ρO (t) ØÖØ τint,O (t) ´×Õ × ´ º¾ µ µº Ì ÒØ×ØÓ Õ ×Õ Ñ Ø Ø ÕÒÓÒØ Ñ Ø
ÒØÓÐ
% gnuplot
153 gnuplot> plot "data.rho" using 1:2 with lines gnuplot> plot "data.rho" using 1:3 with lines
Ò ÐÓÙÑ Ò ÐÐ ÜÓÙÑ ØÓ Ñ ×ØÓ Ö Ñ ÓÑ ÒÛÒ NMAX ´ÐºÕº Ò ÕÓÙÑ Ô Ö ×× Ø Ö ÓÑ Ò Ò ÐÓÙÑ Ò Ñ ô×ÓÙÑ Ø ÑÒ Ñ ÔÓÙ ×Ñ ØÓ ÔÖ Ö ÑÑ µ ØÓ Ñ ×ØÓ ÕÖ ÒÓ TMAX ר ×ÙÒ ÖØ × ÙØÓ×Ù×Õ Ø ×ÑÓ ÕÖ × ÑÓÔÓ Ó Ñ Ø options -n -t ÒØ×ØÓ Õ
% cat data | autoc -n 10000000 -t 20000 > data.rho
ØÒ
ÔÙ
×
Û
ØÛÒ
ÓÑ ÒÛÒ
Ó
Ñ ×Ø
ØÒ
ÒØÓÐ
% gnuplot gnuplot> plot "<./is -L 20 -b 0.4407 -s 1 -S 345 -n 400000|\ grep -v ’#’|awk ’{print ($2>0)?$2:-$2;}’ |\ autoc -t 500" using 1:2 with lines
À Ô Ö Ô ÒÛ gnuplot ÒØÓÐ Ò ×Ô ×Ñ Ò × ¿ Ö ÑÑ
Ò Ò Ø ×Ø × Ð º Ò Ø ÕÖ × ÑÓÔÓ × Ø Òôר Ø
Ö ÑÑ
Ö ×Ø Ø
\º ËØ ×ÙÒ Õ ÔÖ ØÓÙÑ ØÓ script autoc L ØÓ ÓÔÓÓ Ò ØÓÙ
Ô Ö Ø ØÓÙ
ÙÔÓÐÓ ×ÑÓ
ØÓ ×Õ Ñ º½½º
#!/bin/tcsh -f set nmeas = 2100000 set Ls = (5 10 20 40 60 80) set beta = 0.4407 set tmax = 2000 foreach L ($Ls) set N = ‘awk -v L=$L ’BEGIN{print L*L}’‘ set rand = ‘perl -e ’srand();print int(3000000*rand())+1;’‘ set out = outL${L}b${beta} echo "Running L${L}b${beta}" ./is -L $L -b $beta -s 1 -S $rand -n $nmeas > $out echo "Autocorrelations L${L}b${beta}" grep -v ’#’ $out | \ awk -v N=$N ’NR>100000{print ($2>0)?($2/N):(-$2/N)}’|\ autoc -t $tmax > $out.rhom end
154È
Ê ÊÌÀÅ
½º ËÍÆ ÊÌÀËÀ à Á ÉÊÇÆÇË
ÍÌÇËÍËÉ ÌÁËÅÇÍ
ËØ
×ÙÒ Õ
Ø×
Ù ÞÓÙÑ
ØÓ ×Õ Ñ
Ñ
ØÓ gnuplot
1:2 1:2 1:2 1:2 1:2 1:2 with with with with with with lines lines lines lines lines lines title title title title title title "5" "10" "20" "40" "60" "80"
% gnuplot gnuplot> plot gnuplot> replot gnuplot> replot gnuplot> replot gnuplot> replot gnuplot> replot
"outL5b0.4407.rhom" "outL10b0.4407.rhom" "outL20b0.4407.rhom" "outL40b0.4407.rhom" "outL60b0.4407.rhom" "outL80b0.4407.rhom"
using using using using using using
Å
Ô Ö ÑÓ Ó ØÖ ÔÓ Ø ÕÒÓÙÑ ØÓÒ ÙÔÓÐÓ ×Ñ ØÓÙ τm
Ö
Ø ×Õ Ñ Ø Þ Ñ ×Ø Û
º½¼º Ü
% gnuplot gnuplot> f(x) = c * exp(-x/t) gnuplot> set log y gnuplot> plot [:1000] "outL40b0.4407.rhom" using gnuplot> c = 1 ; t = 300 gnuplot> fit [150:650] f(x) "outL40b0.4407.rhom" gnuplot> plot [:1000] "outL40b0.4407.rhom" using gnuplot> plot [:] "outL40b0.4407.rhom" using
1:2 with lines using 1:2 via c,t 1:2 with lines,f(x) 1:3 with lines
ÔÓÙ Ñ Ø Ò Ø Ð ÙØ Ö ÑÑ ×Ù ÖÒÓÙÑ Ñ Ø Ò Ø Ñ ØÓÙ τint,m º À ÒØÓÐ fit Ò Ò Ø º ÈÖ Ô Ò Ó Ñ ×ØÓ Ò ÓÖ
Ø Ñ
Ø Ö ÔÓÙ ô Ô Ð ÕØ ÒÒ Ò [150:650]º ËØ Ò ÔÖ Ñ Ø ØØ ÙØ ÔÓÙ ÒÑ ØÒ Ó Ñ Ø Ò ÔÖôØ ÒØÓÐ plot Ñ Ô ÖÔÓÙ ÔØ ×ÙÒ ÖØ × Õ ØÒ ÒÑÒÑÒ ×ÙÑÔØÛØ ×ÙÑÔ Ö ÓÖ ´Ø ×ÙÒ ÖØ × f(x) = c exp(-x/t)µ Ñ Ø ÐÑ Ø ÒÛ ØÛ Ö Ø× ¾ 2 ôר ØÑ ØÓÒ τm Ò ×Ø ÖÓÔÓ Òô ØÓ χ /dof Ø
ÔÖÓ× ÖÑÓ
¿ 2 Ò Ò Ð Õ ×ØÓ º ÌÓ χ /dof Ø
ÔÖÓ× ÖÑÓ
ØÓ ÞÓÙÑ Ô ØÓ ÔÓØ Ð ×Ñ Ø
ÒØÓÐ
fit
έχομε τα δεδομένα {(xi , yi )}, i = 1, . . . , n με σφάλμα δyi τα οποία θέλουμε να n 2 2 προσαρμόσουμε στην f (x; c, t) = c e−x/t , τότε το χ2 (c, t) = i=1 (yi − f (xi ; c, t)) /δyi . 2 Το χ /dof είναι κανονικοποιημένο στον αριθμό των βαθμών ελευθερίας (dof = degrees of freedom= n − 2) που είναι ο αριθμός των σημείων στην προσαρμογή n μείον των αριθμό των ελεύθερων παραμέτρων της προσαρμογής (εδω οι c, t είναι 2) ¿ Αποδεκτά χ2 /dof ∼ 1 αλλά επειδή εδώ δεν παρέχουμε τα σφάλματα στην τιμή της συνάρτησης αυτοσυσχετισμού, το χ2 /dof δεν είναι σωστά κανονικοποιημένο. Το πρόγραμμα θέτει δyi = 1 ∀i.
¾ Αν
½
..... degrees of freedom (FIT_NDF) rms of residuals (FIT_STDFIT) = sqrt(WSSR/ndf) variance of residuals (reduced chisquare) = WSSR/ndf Final set of parameters ======================= c t ..... = 0.925371 = 285.736
: 449 : 0.000939201 : 8.82099e-07
Asymptotic Standard Error ========================== +/- 0.0003773 +/- 0.1141 (0.04078%) (0.03995%)
Ø Ö ÑÑ variance of residuals º Ô Ø
Ô Ñ Ò
Ö ÑÑ
ÞÓÙÑ Ø
Ø Ñ
ØÛÒ Ô Ö Ñ ØÖÛÒ Ñ Ø × ÐÑ Ø ØÓÙ
×ÙÑÔ Ö ÒÓÙÑ Ø τm = 285.7 ± 0.1º ÈÖ Ô Ò ØÓÒ ×Ø Ø ØÓ × ÐÑ ÙØ Ò ØÓ ר Ø ×Ø × Ð¹ Ñ Ø
ÔÖÓ× ÖÑÓ
Ø ÓÑ Ò Ö ÔÓÙ Ô Ð Ü Ñ Õ ØÓ ÔÖ Ñ Ø × ÐÑ º ËÙÒ Û
¸ ÔÛ
ô¸ Ø Ñ Ð Ø Ö × ÐÑ Ø ×Ø Ò ÔÖÓ× ÖÑÓ ØÛÒ ÓÑ ÒÛÒ × Ñ ×ÙÒ ÖØ × Ò ×Ùר Ñ Ø ÔÓÙ Ó ÐÓÒØ ´ ôµ ÙÖÛ
ר Ò Ô ÐÓ ØÛÒ ÓÖÛÒ º Ó Ñ ÞÓÒØ
ÓÖ
Ø Ñ
Ñ ÕÖ Ò ÔÐ × ×Ø Ø Ñ ØÓÙ χ2 /dof Ö× ÓÙÑ τm = 285(2)º ËØ ×Ù Ö Ñ Ò Ô ÖÔØÛ× ØÓ Ñ Ð Ø ÖÓ ×Ùר Ñ Ø × ÐÑ ÔÖÓ ÖÕ Ø Ô Ø Ò Ô Ö Ð Ý Ø
Ô Ö ×
ÐÐÛÒ ÕÖ ÒÛÒ ÙØÓ×Ù×Õ Ø ×ÑÓ ØÓÙ ×Ùר Ñ ØÓ
º Ä Ñ ÙÔ ÓÝ Ñ ÒÓ Ø Ò Ö ×ÙÒ × ÓÖ Ô ØÓÒ Ñ Ð Ø ÖÓ ÕÖ ÒÓ ÙØÓ×Ù×Õ Ø ×ÑÓ ÔÖÓ× ÖÑ ÞÓÒØ
Ø ÓÑ Ò ×Ø ×ÙÒ ÖØ ×
f (t) = c e−t/τ .
´½º¿µ
Ô
Στις παρενθέσεις είναι το επίπεδο εμπιστοσύνης (confidence level). Αυτό ορίζεται να είναι η πιθανότητα οι τιμές των παραμέτρων να είναι μέσα στο διάστημα που ορίζει το σφάλμα. Αυτό υποθέτει ότι έχουμε το σωστό στατιστικό βάρος σε κάθε σημείο που δίνεται από το σφάλμα - στο παράδειγμα δεν το έχουμε γι΄ αυτό και το επίπεδο είναι τόσο χαμηλό. Μια τιμή κάτω από 5% είναι πολύ χαμηλή και υποδηλώνει ότι το μοντέλο έχει ανάγκη από διορθώσεις. Οι αριθμητικές τιμές υποθέτουν Gaussian κατανομή των μετρήσεων και αν η υπόθεση αυτή δεν ισχύει πρέπει να ληφθούν απλά σαν μια ποιοτική ένδειξη. Για ένα προσεκτικό υπολογισμό μιας ποσότητας που προκύπτει από προσαρμογή δεδομένων, δοκιμάζουμε και άλλες συναρτήσεις που μπορεί να περιέχουν διορθώσεις της ασυμπτωτικής συμπεριφοράς.
½
È Ê ÊÌÀÅ
½º ËÍÆ ÊÌÀËÀ à Á ÉÊÇÆÇË
ÍÌÇËÍËÉ ÌÁËÅÇÍ
ËØ Ò ÔÖ Ñ Ø Ø Ø Ð Ñ ÒÓÒØ
ÙÔ³ Ý Ñ Ö Ø ÖÓÙ
ÕÖ ÒÓÙ
−t/τ1 −t/τ2 +a2 e +. . .º Ö× ÓÙÑ ÙØÓ×Ù×Õ Ø ÑÓ Ô Ö Ñ ÒÓÙÑ ρm (t) ∼ a1 e ÔÛ
Ø ÓÑ Ò Ñ
ÔÖÓ× ÖÑ ÞÓÒØ Ñ ÔÓÐ ×Ø Ö ØÖ ÔÓ ×Ø ×ÙÒ ÖØ ×
h(x) = a1 e−t/τ1 + a2 e−t/τ2 + a3 e−t/τ3 .
´½º µ
³ÇÔÛ
Ò Ø ×ØÓ ÔÓÐ Ñ ÖÓ
ÕÖ ÒÓÙ
ÙØÓ×Ù×Õ Ø ×ÑÓ τm ≡ τ1 Ò τ2 = 57(3)¸ τ3 = Ô ØÓÒ τ1 º Ù ÐÙÒ× ØÓÙ ØÒ Ò ÖÑÒ Ò
×Õ Ñ ½º½ Ô ØÙÕ ÒÓÙÑ Ö ×Ø ÔÖÓ× ÖÑÓ Ø ÔÓØ Ð ×Ñ Ø Ñ
ØÓÒ Ö Ó ÕÖ ÒÓ = 286.3(3)º Ç ÙØ Ö ÓÒØ
ÕÖ ÒÓ ÙØÓ×Ù×Õ Ø ×ÑÓ 10.5(8) Ó ÓÔÓÓ Ò Ö Ø Ñ Ö Ø ÖÓ Ò Òôר ÐÙ× ÔÖ ØÓÙÑ Ø
×
ÒØÓÐ
gnuplot> h(x) = a1 * exp(-x/t1) + a2 * exp(-x/t2) + a3 * exp(-x/t3) gnuplot> a1 = 1; t1 = 285; a2 = 0.04; t2 = 56;a3 = 0.03; t3 = 10 gnuplot> fit [1:600] h(x) "outL40b0.4407.rhom" \ using 1:2 via a1,t1,a2,t2,a3,t3 ... Final set of parameters Asymptotic Standard Error ======================= ========================== a1 = 0.922111 +/- 0.001046 (0.1135%) t1 = 286.325 +/- 0.2354 (0.08221%) a2 = 0.0462523 +/- 0.001219 (2.635%) t2 = 56.6783 +/- 2.824 (4.982%) a3 = 0.0300761 +/- 0.001558 (5.18%) t3 = 10.5227 +/- 0.8382 (7.965%) gnuplot> plot [:150][0.5:] "outL40b0.4407.rhom" using 1:2 \ with lines notit,h(x) ,f(x) gnuplot> plot [:1000][0.01:] "outL40b0.4407.rhom" using 1:2 \ with lines notit,h(x) ,f(x)
½
1
h(t) f(t)
ρm(t)
0.1
0.01 0 1 200 400 t h(t) f(t) 600 800 1000
ρm(t) 0
20
40
60 t
80
100
120
140
ËÕ Ñ ½º½ Προσαρμογή της συνάρτησης αυτοσυσχετισμού ρm (t) στις συναρτήσεις f (t) =
c e−t/τ και h(t) = a1 e−t/τ1 + a2 e−t/τ2 + a3 e−t/τ3 . Για μεγάλους χρόνους f (t) ≈ h(t), αλλά όπως φαίνεται στο κάτω σχήμα η h(t) είναι αναγκαία για την προσαρμογή των μικρών χρόνων. Η επιλογή αυτή δίνει σταθερή τιμή για τον κύριο χρόνο αυτοσυσχετισμού τm = τ = τ1 . Οι τιμές των παραμέτρων δίνονται στο κείμενο. Οι κάθετοι άξονες και των δύο σχημάτων είναι σε λογαριθμική κλίμακα.
½
È Ê ÊÌÀÅ
½º ËÍÆ ÊÌÀËÀ à Á ÉÊÇÆÇË
ÍÌÇËÍËÉ ÌÁËÅÇÍ
È Ê ÊÌÀÅ
¾
ÍÈÇÄÇ ÁËÅÇË Ë ÄÅ ÌÏÆ
¾º½ Å ÂÇ ÇË JACKKNIFE
ô ÒÓÙÑ ØÓ ÔÖ Ö ÑÑ ÔÓÙ ÙÔÓÐÓ Þ Ø × ÐÑ Ø Ñ Ø Ñ Ó Ó jackknife ÔÓÙ Ô Ö Ö Ý Ñ ×Ø Ò Ò Ø Ø º º¾º ËØÓ ×Õ Ñ º½¿ Ò Ø Ôô
ÕÛÖÞÓÙÑ Ø ÓÑ Ò Ñ
× binsº Ë bin ÙÔÓÐÓ ÞÓÙÑ Ø Ñ × Ø Ñ Ø
ÔÓ× Ø Ø
O ÔÓÙ Ò Ö Ñ ×Ø ר ×ÙÒ Õ Ô Ø ×Õ × ´ º¿ µ Ø × ÐÑ Ø º ØÒ ÖÑÓ Ø
Ñ ÓÙ ÔÖ ØÓÙÑ ÔÖ Ö ÑÑ Ô ØÓ ÖÕ Ó jack.c ´ ØÓ Ö Ø ×ØÓÒ ÙÔÓ Ø ÐÓ Ó Tools/ ×ØÓ ×ÙÒÓ ÙØ ÐÓ ×Ñ µ ØÓ ÓÔÓÓ ÙÔÓÐÓ Þ Ø
ÔÓ× Ø Ø
2 O ¸ δO¸ χ ≡ (O − O ) δχº
/***************** jack .c ********************************* Simple jackknife program for computation of jackknife errors of data. The jackknife function can be incerted to any program. */ #include #include #include #include #include #include #define MAXDAT 1000000 159
160 #define STRLEN 200 char prog[STRLEN]; int JACK,maxdat;
È Ê ÊÌÀÅ
¾º ÍÈÇÄÇ ÁËÅÇË Ë
ÄÅ ÌÏÆ
void jackknife(int,int,double *,double *,double *,double *,double *); void get_the_options(int ,char **),usage(char **),locerr(char *); int main(int argc,char **argv){ int ndat=0; double O,dO,chi,dchi; double *x; strcpy(prog,(char *)basename(argv[0])); maxdat=-1;JACK=10; get_the_options(argc,argv); if( maxdat <= 0 ) maxdat = MAXDAT; x = (double *) calloc((size_t) maxdat,(size_t) sizeof(double)); /*Read data from stdin as long as it fits the array x[]. ndat counts the number of data.*/ while( scanf("%lg",&x[ndat])==1 ){ ndat++; if(ndat == maxdat){//we give user a warning if we ignore some data fprintf(stderr,"# %s: Warning: Read ndat= %d. Reached the limit %d\n" prog,ndat,maxdat); break; //break the while loop } } jackknife(ndat,JACK,x,&O,&dO,&chi,&dchi);//calculate.... printf("# NDAT = %d data. JACK = %d groups\n",ndat,JACK);//...and print printf("# , chi= (-^2)\n"); printf("# +/- err chi +/- err\n"); printf("%.15lg %.15lg %.15lg %.15lg\n",O,dO,chi,dchi); } /****************************************************************/ /* jackknife routine: you can use it in any of your programs....*/ /****************************************************************/ void jackknife(int ndat, int jack, double *x, double *avO, double *erO, double *avchi, double *erchi){ int i,j,binw,bin;
¾º½º
Å ÂÇ
ÇË
JACKKNIFE
161
double *O,*chi; O = (double *) calloc((size_t) jack ,(size_t) sizeof(double)); chi = (double *) calloc((size_t) jack ,(size_t) sizeof(double)); binw = ndat/jack; if(binw<1)locerr("jackknife: binw < 1"); ndat = binw * jack; //only full bins considered /* average value */ for(i=0;i\n\ -j : No. jack groups Def. 10\n\ -d : Give the maximum number of data points read.Def. %d\n\ Computes , chi= (-^2)\n\ Data is in one column from stdin.\n",prog,MAXDAT); exit(1); }/*usage()*/
Ø
ÑØ
ÐôØØ ×
ÕÖ × ÑÓÔÓ Ó Ñ
ØÒ
ÒØÓÐ
¾º½º
Å ÂÇ
ÇË
JACKKNIFE
163
% cc -O2 jack.c -o jack -lm
ÒØ
Ò
ÓÑ Ò ÒÓÙÑ
Ñ
Ò × Ñ ×Ø Ð ×ØÓ ÖÕ Ó data Ø Ø ØÓÒ ÙÔÓÐÓ ×Ñ ØÛÒ × ÐÑ ØÛÒ Ñ ¼ jack bins
ÒØÓÐ Ò
% cat data | jack -j 50
ÌÓ ÔÖ Ö ÑÑ ÕØ ØÓ ÔÓÐ ½¸¼¼¼¸¼¼¼ Ñ ÓÖ× Ñ MAXDAT Ò Ò ØÓ ½¼¼¼¼¼¼µº Ò ÕÖ × ÑÓÔÓ ×ÓÙÑ ØÓ ÔØ -d 2000000 À Ô ÐÓ Ò ÞÓÙÑ Ô ØÓ stdin Ò Ò ÕÖ × ÑÓÔÓ × ×ÙÒ Ù ×Ñ Ñ ÐØÖ Ø Ò Ò ÐÙ× ØÛÒ ÓÑ ÒÛÒº ÔÖ Ñ Ò Ø ×
Ñ ØÓ ÔÖ Ö ÑÑ ÔÓÙ ÕÓÙÑ Ö ÑÔÓÖÓ Ñ Ò ÕÖ × ÑÓÔÓ ×ÓÙÑ Ø Ò ÒØÓÐ
ØÖ ×
´ Ô ØÓ macro ÔÓÙ ÕÓÙÑ Ô Ö Ô ÒÛ ÔÖ Ô Ò ¾¸¼¼¼¸¼¼¼ Ñ ØÖ ×
кպ Ø Ò ÑÔÓÖ ØÓ ÔÖ Ö ÑÑ ÔÓÙ ÑÔÓÖ Ò ÕÖ × ÑÓÔÓ ×ÓÙÑ Ñ¸ Ø Ò Ò ÐÙ× Ø
Ý ØÓ ÔÖ ØÙÔÓ Ising
% is -L 20 -b 0.4407 -s 1 -S 342 -n 2000000 | grep -v # | \ awk -v L=20 ’{print ($2>0)?($2/(L*L)):(-$2/(L*L))}’ |\ jack -j 50 -d 2000000 | grep -v # | \ awk -v b=0.4407 -v L=20 ’{print $1,$2,b*L*L*$3,b*L*L*$4}’
À Ô Ö Ô ÒÛ ÒØÓÐ Ò Ñ Ö ÑÑ Ò Ö ×ÓÙÑ Ø
Ø Ð ÙØ
Ò ÔÓ Ø
Ö ÑÑ
´backslash ³\³µº ÔÐ Ö Ø Ø
ØÒ Ü ×ÓÙÑ À ÔÖôØ Ö ÑÑ ØÖ Õ ØÓ ÔÖ Ö ÑÑ is ØÓ ÔÖ ØÙÔÓ Ising N = L × L = 20 × 20 ÔÐ Ñ Ø
×
´-L 20µ β= 0.4407 ´-b 0.4407µº ÖÕÞ Ô ÙØ Ø Ü ×Ô Ò ´-s 1µ Ò ¾¸¼¼¼¸¼¼¼ Ñ ØÖ ×
´-n 2000000µº ÐØÖ ÖÓÙÑ Ñ Ø Ò ÒØÓÐ grep -v Ø ×Õ Ð Ô Ø Ò ÜÓ Ó ØÓÙ ÔÖÓ Ö ÑÑ ØÓ
º ËØ ØÖ Ö ÑÑ ÐÓ Ñ Ø Ò awk ÓÖÞÓÒØ
Ø Ò Ñ Ø Ð Ø L=20 Ò ØÙÔô× Ø Ò Ô ÐÙØ ØÑ Ø
Ø Ö
ר Ð
Ö Ñ Ò
Ñ ØÛÒ Ö Ñ ØÛÒ ÔÐ Ñ Ø ôÒ × ÛÒ L*Lº ËØ Ò ØÖØ Ö ÑÑ Ò Ø Ó ÙÔÓÐÓ ×Ñ
Ø
Ñ ×
Ø Ñ
2 m (m− m ) Ñ Ø × ÐÑ Ø ØÓÙ
Ô ØÓ ÔÖ Ö ÑÑ jackº Ô Ø ÔÓØ Ð ×Ñ Ø ÖÓ ÒØ Ø ×Õ Ð Ñ Ø Ò ÒØÓÐ grep -vº À Ø Ø ÖØ Ö ÑÑ Ò Ø ÔÐ ØÓÒ ÙÔÓÐÓ ×Ñ Ø
Ñ Ò Ø
Ô Ø ØØ
´ º¾½µ ÔÓÙ ÔÖ Ô Ò ÔÓÐÐ ÔÐ × ×ÓÙÑ Ñ ØÓÒ Ô Ö ÓÒØ βN = βL2 Ø
ÙÑ Ò×
(m− m )2 ØÓ × ÐÑ ØÓÙ
Ò Ô ÖÓÙÑ Ø Ò χº
164
È Ê ÊÌÀÅ
¾º ÍÈÇÄÇ ÁËÅÇË Ë
ÄÅ ÌÏÆ
¾º¾
Å ÂÇ
ÇË BOOTSTRAP
ÒØØ
ËØ Ò ÙÔÓ Ò Ø Ø ÙØ Ô Ö ØÓÙÑ ØÓ ÔÖ Ö ÑÑ ØÓÒ ÙÔÓÐÓ ×Ñ ØÛÒ × ÐÑ ØÛÒ Ñ Ø Ñ Ó Ó bootstrap × Ñ ÛÒ Ñ × Ô Ñ ×Ø Ò º º¿º ÌÓ ÔÖ Ö ÑÑ Û ÓÔÓ Ø ×ØÓ ÖÕ Ó boot.c
/***************** boot.c ********************************* Simple program for computation of errors of data using bootstrap. */ #include #include #include #include #include #include #include #define MAXDAT 1000000 #define STRLEN 200 char prog[STRLEN]; int SAMPLES,maxdat; void bootstrap(int,int,double *,double *,double *,double *,double *); void get_the_options(int ,char **),usage(char **),locerr(char *); double drandom(); void init_random(); int main(int argc,char **argv){ int ndat=0; double O,dO,chi,dchi; double *x; strcpy(prog,(char *)basename(argv[0])); maxdat=-1;SAMPLES=1000; get_the_options(argc,argv);init_random(); if( maxdat <= 0 ) maxdat = MAXDAT; x = (double *) calloc((size_t) maxdat,(size_t) sizeof(double)); /*Read data from stdin as long as it fits the array x[]. ndat counts the number of data.*/ while( scanf("%lg",&x[ndat])==1 ){
¾º¾º
Å ÂÇ
ÇË
BOOTSTRAP
165
ndat++; if(ndat == maxdat){//we give user a warning if we ignore some data fprintf(stderr,"# %s: Warning: Read ndat= %d. Reached the limit %d\n", prog,ndat,maxdat); break; //break the while loop } } bootstrap(ndat,SAMPLES,x,&O,&dO,&chi,&dchi);//calculate.... printf("# NDAT = %d data. SAMPLES = %d groups\n",ndat,SAMPLES); printf("# , chi= (-^2)\n"); printf("# +/- err chi +/- err\n"); printf("%.15lg %.15lg %.15lg %.15lg\n",O,dO,chi,dchi); } /****************************************************************/ /* bootstrap routine: you can use it in any of your programs....*/ /****************************************************************/ void bootstrap(int ndat, int samples, double *x, double *avO, double *erO, double *avchi, double *erchi){ int i,j,k,binw,bin; double *O,*O2,*chi,xs; O = (double *) calloc((size_t) samples O2 = (double *) calloc((size_t) samples chi = (double *) calloc((size_t) samples for(j=0;j\n\ -s : No. samples Def. 1000\n\ -d : Give the maximum number of data points read.Def. %d\n\ Computes , chi= (-^2)\n\ Data is in one column from stdin.\n",prog,MAXDAT); exit(1); }/*usage()*/ /************************ drandom() *****************************/ #define a 16807 #define m 2147483647 #define q 127773 #define r 2836 #define conv (1.0/(m-1)) #include #include long seed; double drandom(){ long l; l = seed/q; seed = a*(seed-q*l) - r*l; if(seed < 0) seed +=m; return conv*(seed-1); } #include #include /* Scramble time using the pid number:*/ void init_random(){ long pid; seed = (long) time( (time_t) 0); pid = (long) getpid(); //Process ID number seed = seed ^ (pid + (pid << 15));
½
È Ê ÊÌÀÅ
¾º ÍÈÇÄÇ ÁËÅÇË Ë
ÄÅ ÌÏÆ
printf("# Initiated drandom() with seed= %d\n",seed); }
Ø ÒØ
ÑØ
ÐôØØ ×
ÕÖ × ÑÓÔÓ Ó Ñ
ØÒ
ÒØÓÐ ÒØÓÐ Ò
% cc -O2 boot.c -o boot -lm
Ò
ÓÑ Ò ÒÓÙÑ
Ñ
Ò × Ñ ×Ø Ð ×ØÓ ÖÕ Ó data Ø Ø ØÓÒ ÙÔÓÐÓ ×Ñ ØÛÒ × ÐÑ ØÛÒ Ñ ¼¼ samples
% cat data | boot -s 500
ÌÓ ÔÖ Ö ÑÑ ÕØ ØÓ ÔÓÐ ½¸¼¼¼¸¼¼¼ Ñ ØÖ ×
´ Ô ØÓ macro ÔÓÙ ÓÖ× Ñ MAXDAT Ò Ò ØÓ ½¼¼¼¼¼¼µ ÔÛ
×ØÓ ÔÖ Ö ÑÑ jackº Ò ÕÓÙÑ Ô Ö Ô ÒÛ ÔÖ Ô Ò ÕÖ × ÑÓÔÓ ×ÓÙÑ ØÓ ÔØ -d 2000000 ¾¸¼¼¼¸¼¼¼ Ñ ØÖ ×
кպ ÔÖ Ñ¸ Ø Ò Ò ÐÙ× Ø
Ñ Ò Ø ×
Ñ ØÓ ÔÖ Ö ÑÑ ÔÓÙ ÕÓÙÑ ÖÝ ØÓ ÔÖ ØÙÔÓ Ising ÑÔÓÖÓ Ñ Ò ÕÖ × ÑÓÔÓ ×ÓÙÑ Ø Ò ÒØÓÐ
% is -L 20 -b 0.4407 -s 1 -S 342 -n 2000000 | grep -v # | \ awk -v L=20 ’{print ($2>0)?($2/(L*L)):(-$2/(L*L))}’ |\ boot -s 1000 -d 2000000 | grep -v # | \ awk -v b=0.4407 -v L=20 ’{print $1,$2,b*L*L*$3,b*L*L*$4}’
À Ô Ö Ô ÒÛ Ò ÔÓ
ÒØÓÐ Ò Ñ Ö ÑÑ Ò Ö ×ÓÙÑ Ø
Ö ÑÑ
´backslash ³\³µº
Ø
Ø Ð ÙØ
¾º¿
À ËÍ ÃÊÁËÀ ÌÏÆ Å ÂÇ
ÏÆ
ËØ Ò ÙÔÓ Ò Ø Ø ÙØ ÕÖ × ÑÓÔÓ ×ÓÙÑ ×Ù ÖÒÓÙÑ Ö Ñ ×Ø
ÔÖÓ Ó Ñ Ò
Ò Ø Ø
ØÓÒ ÙÔÓÐÓ ×Ñ ÔÓÙ Ò Â ÕÖ × ÑÓÔÓ ×ÓÙÑ Ø ×Õ × ´ º¿½µ ¸ Ø Ñ Ó Ó jackknife Ø Ñ Ó Ó bootstrap ´ º ¼µ º Ò ÒÓ Ò Ó ÓÖ ÓÑ Ò Ñ ×ÕÙÖ ÙØÓ×Ù×Õ Ø ×Ñ º Ô Ð ÓÙÑ ×ØÓ ÔÖ ØÙÔÓ ØÓÒ Ð Ö ÑÓ Metropolis L = 40¸ β = 0.4407 ≈ βc º Ñ Ð Ø ×ÓÙÑ Ø Ñ Ò Ø × Ò ÔÐ Ñ Ø × ´ º½ µ º 1, 000, 000 Ñ ØÖ ×
Ñ Ø
ÒØÓÐ
Ø
Ñ ÓÙ
ØÛÒ × ÐÑ ØÛÒº ´ º¿ µ
ÕÖ × ÑÓÔÓ × Ising ØÖ Ã ÒÓÙÑ
% ./is -L 40 -b 0.4407 -s 1 -S 5434365 -n 1000000 > outL40b0.4407.dat & % grep -v # outL40b0.4407.dat | \ awk -v L=40 ’{if($2<0){$2=-$2};print $2/(L*L)}’ > outL40b0.4407.m % cat outL40b0.4407.m | autoc -t 10000 -n 1000000 > outL40b0.4407.rhom
¾º¿º
À ËÍ ÃÊÁËÀ ÌÏÆ Å ÂÇ
ÏÆ
½
ËØ
Ô Ö Ô ÒÛ ¿ ÒØÓÐ
¸ ØÖ Õ ×Ô × × Ó Ö ÑÑ
º ÌÓ × Ñ ×Ø Ð Ø
Ñ ØÖ ×
Ø
Ñ Ò Ø ×
ÖÕ Ó outL40b0.4407.m Õ Òô ØÓ ÖÕ Ó outL40b0.4407.rhom Ø ×ÙÒ ÖØ × ÙØÓ×Ù×Õ Ø ×ÑÓ ØÓÒ ÓÐÓ Ð ÖÛÑ ÒÓ ÕÖ ÒÓ ÙØÓ×Ù×Õ Ø ×ÑÓ º Å ØÓ gnuplot Ñ Ð ØÓ Ñ ØÓ ÕÖ ÒÓ ÙØÓ×Ù×Õ Ø ×ÑÓ ÔÛ
Ô Ö Ö Ý Ñ Ô Ø × Ð ½ ÑØº È ÖÒÓÙÑ τm = 286.3(3)º ÍÔÓÐÓ ÞÓÙÑ ØÓÒ ÓÐÓ Ð ÖÛÑ ÒÓ ÕÖ ÒÓ ÙØÓ×Ù×Õ Ø ×ÑÓ Ñ ÔÓØ Ð ×Ñ τint,m = 254(1)º À Ñ × Ø Ñ m = 0.638682º À ÖÑÓ Ø
×Õ ×
´ º¿¼µ ´ÔÓÙ ÔÖÓÔÓ Ø ×Ø Ø ×Ø Ò Ü ÖØ Ø
Ñ ØÖ ×
µ Ò ØÓ ´ÙÔÓ Ø Ñ Ñ ÒÓµ × ÐÑ ×Ø Ø ×Ø
Ô Ð ×
δc m = 0.00017º ÉÖ × ÑÓÔÓ ôÒØ
Ø √ ×Õ × ´ º¿½µ ÕÓÙÑ δm = 1 + 2τ δc m ≈ 0.004º Ì Ñ Ò Ø Ô Ø ØØ Ò Ò ÙÒ Ø Ò Ò Ø Ò ÙÔÓÐÓ ×ÓÙÑ Ñ ØÓÒ ØÖ ÔÓ ÙØ º ³ Ö ÒÓÙÑ ØÓ ÔÓØ Ð ×Ñ m = 0.639 ± 0.004 ≡ 0.639(4) ´¾º½µ
0.00021 0.0002 0.00019 0.00018 δm 0.00017 0.00016 0.00015 0.00014 0.00013 0.00012 1 10 100 nS
ËÕ Ñ ¾º½ Το σφάλμα δm της μαγνήτισης υπολογισμένο με τη μέθοδο bootstrap σα
συνάρτηση του αριθμού των δειγμάτων nS . Παρατηρούμε πολύ γρήγορη σύγκλιση στην τιμή του σφάλματος που παίρνουμε από τη σχέση (4.30) δc m = 0.00017
1000
10000 100000
½¼
È Ê ÊÌÀÅ
¾º ÍÈÇÄÇ ÁËÅÇË Ë
ÄÅ ÌÏÆ
0.045 0.04 0.035 δχ 0.03 0.025 0.02 1 10 100 nS
ËÕ Ñ ¾º¾ Το σφάλμα δχ της μαγνητικής επιδεκτικότητας υπολογισμένο με τη μέθοδο
bootstrap σα συνάρτηση του αριθμού των δειγμάτων nS . Παρατηρούμε σύγκλιση για nS > 1000 στην τιμή δc χ = 0.0435.
1000
10000 100000
ØÓÒ ÙÔÓÐÓ ×Ñ Ø
Ñ Ò Ø
Ô Ø Ø Ø
Ò Ò Ó Ò ÕÖ × ÑÓÔÓ ×ÓÙÑ Ñ Ô Ø
Ñ ÓÙ
jackknife bootstrapº À ØÖ ÖÑ Þ Ø ÖÕ Ñ ÑØ ÐØ ÖÑ Ñ ØÛÒ nS Ø× ôר Ò ÔÖÓ× ÓÖ×ÓÙÑ ØÓÒ ÐØ ×ØÓ Ö Ñ Ô ÙØ Ò ÕÖ × ÑÓÔÓ ×ÓÙÑ ×Ø Ò Ò ÐÙ× Ñ
º ËØÓ ×Õ Ñ ¾º½ ÒÓÒØ Ø ÔÓØ Ð ×Ñ Ø Ø Ñ Ò Ø × º È Ö Ø ÖÓ Ñ ÔÓÐ Ö ÓÖ × Ð × ×ØÓ × ÐÑ Ø
ר Ø ×Ø
Ô Ð ×
δc m = 0.00017 ÑÖ ÖÑ Ñ ØÛÒº  ÑÔÓÖÓ × Ñ Ñ ×Ð Ø Ò Ò ÐÙ× ØÛÒ ÓÑ ÒÛÒ Ø
Ñ Ò Ø ×
Ò ÔÐ Ñ nS = 100º Ø Ò Ô ÖÔØÛ× Ø
Ñ Ò Ø
Ô Ø ØØ
× Ð× Ò Ô Ó Ö ¸ ÐÐ Ô Ð ÑÔÓÖÓ × Ñ Ò Ô ÖÓÙÑ nS = 500º È ÖÒÓÙÑ χ = 20.39 ØÓ × ÐÑ δc χ = 0.0435º À Ø Ñ ØÓÙ × ÐÑ ØÓ
ÑÛ
ÓÖ Ò Ü ÖØ Ø
Ñ ØÖ ×
¸ Ø ÔÓÙ ×ÙÑ Ò ×Ø Ò Ô ÖÔØÛ× √ 1 + 2τm Ñ
º À Ø Ñ ÙØ ÔÖ Ô Ò ÓÖ Û Ô ØÓÒ Ô Ö ÓÒØ Ò ô× δχ = 1º ³ Ö
χ = 20 ± 1 ≡ 20(1)
´¾º¾µ
¾º¿º
À ËÍ ÃÊÁËÀ ÌÏÆ Å ÂÇ
ÏÆ
½½
ÜÞ Ò ÔÖØÖ Ø ØÓ × ÐÑ Ò ÖØÑ ÐÓ¸ Ø ÔÓÙ ÕÒ Ø Ò ÔÖ Ø Ù× ÓÐ ÔÓÙ ÖÒÓÙÒ Ó Ñ ÐÓ ÕÖ ÒÓ ÙØÓ×Ù×Õ Ø ×ÑÓ ´×Ø Ò ÔÖ Ñ Ø ØØ ÕÓÙÑ Ñ ÒÓ n/(2τm ) ≈ 1, 000, 000/(2 × 286) ≈ 1750 Ò Ü ÖØ Ø
Ñ ØÖ ×
µº Ô×
× Ñ ôÒÓÙÑ Ø ØÓÒ ÙÔÓÐÓ ×Ñ ØÓÙ × ÐÑ ØÓ
Ñ ØÓÒ ØÖ ÔÓ ÙØ Ò Ò Òô× ØÓÙ τm º È Ó × Ð
¸ Ö ÓÖ Ùר
Ñ Ó Ó
Ò Ñ Ó Ó
jackknifeº ØÓÒ ÔÖÓ× ÓÖ ×Ñ ô ÕÖ ×Ø ØÛÒ ÔÖÓØ ÖÛÒ Òô× ØÓÙ τm º ØÓÙ × ÐÑ ØÓ
Ö Ò Ñ Ð Ø ×ÓÙÑ Ø ÓÑ Ò Ñ Ñ Ø Ð Ø ÖÑ Ô jackknife bins nb º ËØÓ ×Õ Ñ ¾º¿ ÒÓÒØ Ø ÔÓØ Ð ×Ñ Ø Ñ
Ø Ñ Ò Ø × º ³ÇØ Ò Ø jackknife bins nb = n Ø Ø Ø ÑØ Ñ
ÔÓØ ÐÓ ÒØ Ô Ð
Ø
Ñ ØÖ ×
Ø
Ô Ò ×ØÓ Õ Óº Ì Ø ØÓ × ÐÑ Ò ØÓ Ó Ñ ØÓ × ÐÑ Ø
ר Ø ×Ø √
Ô Ð ×
Ò ÙÔÓ Ø Ñ Ñ ÒÓ Ø ØÓ ÒÛר Ô Ö ÓÒØ 1 + 2τm º ÙØ Ò Ø ×ØÓ ×Õ Ñ ¾º¿ ÔÓÙ Ô Ö Ø Ö Ø Ñ ÔÓÐ Ö × Ð × ×Ø Ò Ø Ñ δc m = 0.00017º À Ô Ö × ØÛÒ ÙØÓ×Ù×Õ Ø ×ÑôÒ Ü ÒÞ Ø ô
Ô ØÓ Ñ Ñ
ÖÓ Ñ (bin width) ≈ 2τm Ñ ØÖ ×
º ÙØ Ò Ø Ø Ò nb ≈ n/(bin width) = n/(2τm ) = 1, 000, 000/572 ≈ 1750º Ù× Ø ØÑ × Ò ØÒØÜ Ñ ÓÙ
Ñ ÔÖÓ× Ø ÑÐØ Ò Ò ØÓÒ ÔÖÓ× ÓÖ ×Ñ ØÓÙ ×Û×ØÓ Ö ÑÓ nb º 100 < nb < 800 ËØÓ ×Õ Ñ ¾º¿ Ð ÔÓÙÑ Ø ØÓ × ÐÑ ×Ù ÐÒ √ ר Ò Ø Ñ δm = 0.0036 ÔÓÙ Ò ÖØ ÓÒØ ר Ò Ø Ñ 1 + 2τm δc m ≈ 0.004 ´ Ñ ÓÒØ Ø Ö Ò ÕÖ × ÑÓÔÓ ×ÓÙÑ ØÓÒ ÓÐÓ Ð ÖÛÑ ÒÓ ÕÖ ÒÓ ÙØÓ×Ù×Õ Ø ×ÑÓ τint,m = 254µº Ô×
Ô Ö Ø ÖÓ Ñ Ø ÕÓÒØÖ ØÑ × ØÓÙ × ÐÑ ØÓ
ÑÔÓÖÓ Ñ Ò Ô ÖÓÙÑ ÔÓÐ Ñ Ö Ö Ñ nb ≈ 20− 40 Ø ÔÓÙ ÑÔÓÖ Ò ÕÖ × ÑÓÔÓ Ö ÓÖÓÙ
ÙÔÓÐÓ ×ÑÓ
º È Ö ÑÓ ÔÓØ Ð ×Ñ Ø Ô ÖÒÓÙÑ ØÒÑ ÒØ Ô Ø ØØ χ ÔÓÙ ØÓ × ÐÑ ×Ù ÐÒ ×Ø Ò Ø Ñ δχ = 0.86 × ×ÙÑ ÛÒ Ñ Ø
ÔÖÓ Ó Ñ Ò
Ø Ñ ×
Ñ
º nb → n ØÓ × ÐÑ ×Ù ÐÒ ×ØÓ ´ÙÔÓ Ø Ñ Ñ ÒÓµ × ÐÑ δc χ = 0.0421º ÒÒ Ø ØÓ ÖôØ Ñ Ò Ñ Ó Ó
bootstrap ÑÔÓÖ Ò ÕÖ × ÑÓÔÓ Ñ Ò ÐÓ Ó ØÖ ÔÓ Ñ ÙØ Ø
jackknife ØÓÒ ÔÖÓ× ÓÖ ×Ñ ØÓÙ ÔÖ Ñ Ø Ó × ÐÑ ØÓ
δm¸ δχ ÕÛÖ
Ø Òô× ØÓÙ τm º À Ô ÒØ × Ò ÒºÂ ÕÖ × ÑÓÔÓ ×ÓÙÑ Ø × × Ñ
Ô Ø Ñ Ó Ó jackknife binningº ÉÛÖÞÓÙÑ Ø ÓÑ Ò Ñ
× nb bins ØÛÒ ÓÔÓÛÒ ØÓ ÖÓ
(bin width) = n/nb º Ã bin ÛÖ Ø Û
Ñ Ò Ü ÖØ Ø Ñ ØÖ × ÔÓÙ Ò Ñ× Ø Ñ Ø
Ô Ö Ø Ö × Ñ
ÔÓ× Ø Ø
Ñ × ×ØÓ bin ÙØ º È ÖÒÓÙÑ nS = 1000 ÖÑ ÞÓÙÑ Ø Ñ Ó Ó bootstrap ×ØÓ Ñ ØÛÒ nb Ñ ØÖ × ÛÒº ËØ ×Õ Ñ Ø ¾º ¾º ÕÒÓÙÑ Ø ÔÓØ Ð ×Ñ Ø Ñ
× ×ÙÒ ÖØ ×
½¾
È Ê ÊÌÀÅ
¾º ÍÈÇÄÇ ÁËÅÇË Ë
ÄÅ ÌÏÆ
Ò (bin width) ≈ 2τm Ó Ñ ØÖ ×
ØÓÙ (bin width)º ³ÇØ Ò ÙØ Ñ
Ò ÔÖ Ø Ò Ü ÖØ Ø
ÔÖ Ô Ò Ô ÖÓÙÑ ØÓ ÔÖ Ñ Ø × ÐÑ º ËØÓ ×Õ Ñ ¾º ÕÒÓÙÑ Ø ÔÓØ Ð ×Ñ Ø Ø Ñ ÒØ× ÔÓÙ bin width=1 ÕÓÙÑ ØÓ ÔÓØ Ð ×Ñ δc m = 0.00017º ³ÇØ Ò ØÓ ÖÓ
Ò > 2τm ØÓ × ÐÑ Ò Ø δm = 0.0036¸ ØÓ ÓÔÓÓ ØÓ ÞÓÙÑ ×ØÓ plateau 1100 < (bin width) < 16000¸ × ×ÙÑ ÛÒ ÕÒÓÙÑ Ø ÔÓØ Ð ×Ñ Ø Ñ Ø Ñ Ó Ó jackknifeº ËØÓ ×Õ Ñ ¾º Ø Ñ ÒØ Ô Ø ØØº ÈÐ bin width=1 ÕÓÙÑ ØÓ ÔÓØ Ð ×Ñ δc χ = 0.0421º ³ÇØ Ò ØÓ ÖÓ
Ò > 2τm ØÓ × ÐÑ Ò Ø δχ = 0.615¸ ØÓ ÓÔÓÓ ØÓ ÞÓÙÑ ×ØÓ plateau 500 < (bin width) < 1000 ÔÓÙ Ò Ò ÔÓÐ ÓÖ Ø Ô ØÓ ÔÓØ Ð ×Ñ ÔÓÙ Ô Ö Ñ Ñ Ø Ñ Ó Ó jackknifeº ÃÐ ÒÓÙÑ Ø Ò ÙÔÓ Ò Ø Ø ÙØ Ñ Ñ × Ñ ÒØ Ô Ö Ø Ö × º ËØ Ò Ô ÖÓÙ× × Ñ
ÙÔÓÐÓ × Ñ ÔÖôØ ØÓ ÕÖ ÒÓ ÙØÓ×Ù×Õ Ø ×ÑÓ τm Ô Ø ×ÙÒ ÖØ × ÙØÓ×Ù×Õ Ø ×ÑÓ ´×Õ Ñ µ ר ×ÙÒ Õ ÔÖÓ× ÓÖ× Ñ Ô Ø Ó Ñ Ó Ó ÔÓÙ ÕÖ × ÑÓÔÓ × Ñ ô× Ò ØÓ ´ÙÔÓ Ø Ñ Ñ ÒÓµ × ÐÑ ×Ø Ø ×Ø
Ô Ð ×
ØÛÒ Ñ ØÖ × ÛÒ Ô Ø ØÓ ÔÖ Ñ Ø ÔÓÙ Ð Ñ Ò ÙÔ Ý ØÓÙ
ÙØÓ×Ù×Õ Ø ×ÑÓ
º ËØ Ò ÔÖ Ü ÑÛ
Ó Ñ Ó Ó ÙØÓ ÔÓØ ÐÓ Ò Ñ Ò Ü ÖØ Ø Ñ Ó Ó ÙÔÓÐÓ ×ÑÓ ØÓÙ τm Ô Ø
×Õ ×
δO/δc O = √ 1 + 2τO º ³ Ø× Ô Ø Ô Ö Ô ÒÛ ×ÙÒ Ø Ø
τm = 1 2 δm δc m
2
−1
=
1 2
δχ δc χ
2
−1
...
´¾º¿µ
×Õ ×
ÔÓÙ ÑÔÓÖÓ Ò Ò ÕÖ × ÑÓÔÓ ÓÒ ØÓÒ Ð ÕÓ Ø
ÙØÓ×ÙÒ Ô
Ø
Ò ÐÙ×
ØÛÒ ÓÑ ÒÛÒ Ñ
º Ù× ÙÔ Ò ÙÑ×ÓÙÑ Ø Ò × ×Ø Ñ Õ ÔÓÐÐÓ
ÕÖ ÒÓÙ
ÙØÓ×Ù×Õ Ø ×ÑÓ ÓÖ Ø
ÔÖØÖ×Ñ
ÔÓ× Ø Ø
ÑÔÓÖ ×ÙÑÔ Ö ÓÖ ØÓÙ
Ò ÓÖÞ Ø Ô ÓÖ Ø Ó
ÕÖ ÒÓÙ
ÙØÓ×Ù×Õ Ø ×ÑÓ ´fast modes, slow modesµº
¾º
ÈÊÇ ÄÀÅ Ì
½º Å Ø ØÖ ÝØ ØÓ ÔÖ Ö ÑÑ boot.c Ø× ôר Ò Ò binning ר ÓÑ Ò º ÒÔÖ Ø Ø ×Õ Ñ Ø ¾º ¾º º ´Ä × ÌÓ ÔÖ Ö ÑÑ boot bin.c רÓÒ ÙÔÓ Ø ÐÓ Ó Tools/ ØÓÙ ×ÙÒÓ ÙØ Ó ÐÓ ×Ñ Ó µ
¾º º
ÈÊÇ ÄÀÅ Ì
½¿
0.004 0.0035 0.003 0.0025 δm 0.002 0.0015 0.001 0.0005 0 1 10 100 1000 10000 1000001e+06 jackknife bins 0.004 0.0035 0.003 0.0025 δm 0.002 0.0015 0.001 0.0005 0 0
ËÕ Ñ ¾º¿
200
400 600 800 jackknife bins
1000 1200
Το σφάλμα δm της μαγνήτισης υπολογισμένο με τη μέθοδο jackknife σα συνάρτηση του αριθμού των δειγμάτων jackknife bins nb . Παρατηρούμε σύγκλιση για 100 < nb < 800 στην τιμή δm = 0.0036. Στο πάνω σχήμα φαίνεται καθαρά ότι καθώς φτάνουμε στο όριο να αφαιρούμε μόνο ένα στοιχείο από τα δεδομένα (nb = n) το σφάλμα πλησιάζει στην τιμή που υπολογίζεται από τη σχέση (4.30) δc m = 0.00017. Οι οριζόντιες γραμμές αντιστοιχούν √ √ στις τιμές δc m και 1 + 2τm δc m ≈ 0.004 όπου τm = 286.3. Ο λόγος δm/δc m ≈ 1 + 2τm .
½
È Ê ÊÌÀÅ
¾º ÍÈÇÄÇ ÁËÅÇË Ë
ÄÅ ÌÏÆ
1.2 1 0.8 δχ 0.6 0.4 0.2 0 1 1.2 1 0.8 δχ 0.6 0.4 0.2 0 0 200 400 600 800 jackknife bins 1000 1200 10 100 1000 10000 100000 1e+06 jackknife bins
ËÕ Ñ ¾º Το σφάλμα δχ της μαγνήτισης υπολογισμένο με τη μέθοδο jackknife σα συνάρτηση του αριθμού των δειγμάτων jackknife bins nb . Παρατηρούμε σύγκλιση για 100 < nb < 800 στην τιμή δχ = 0.86. Στο πάνω σχήμα φαίνεται καθαρά ότι καθώς φτάνουμε στο όριο να αφαιρούμε μόνο ένα στοιχείο από τα δεδομένα (nb = n) το σφάλμα πλησιάζει στην τιμή που θα παίρναμε αν θεωρούσαμε τις μετρήσεις ανεξάρτητες δc χ = 0.0421. Η τιμή αυτή είναι πολύ κοντά στην τιμή που πήραμε με τη μέθοδο bootstrap. Οι τιμές αυτές √ φαίνονται στα σχήματα στις δύο οριζόντιες γραμμές. Ο λόγος δχ/δc χ ≈ 1 + 2τm .
¾º º
ÈÊÇ ÄÀÅ Ì
½
0.004 0.0035 0.003 0.0025 δm 0.002 0.0015 0.001 0.0005 0 1 0.004 0.0035 0.003 0.0025 δm 0.002 0.0015 0.001 0.0005 0 1000
ËÕ Ñ ¾º
10
100
1000 10000 100000 1e+06 bin width
10000 bin width
Το σφάλμα δm της μαγνήτισης υπολογισμένο με τη μέθοδο bootstrap. Παίρνουμε nS = 1000 και χωρίζουμε τα δεδομένα μας σε bins των οποίων το εύρος bin width φαίνεται στον οριζόντιο άξονα. Κάθε bin θεωρήται ως μια ανεξάρτητη μέτρηση. Για bin width=1 έχουμε το αποτέλεσμα δc m = 0.00017. ΄Οταν το εύρος γίνει > 2τm το σφάλμα γίνεται δm = 0.0036, το οποίο το διαβάζουμε στο plateau για 1100 < (bin width) < 16000, σε συμφωνία με τη μέθοδο jackknife. Αυτό φαίνεται καθαρά στο κάτω σχήμα. Οι οριζόντιες γραμμές αντιστοιχούν στις τιμές των δc m και δm που αναφέρθηκαν παραπάνω.
½
È Ê ÊÌÀÅ
¾º ÍÈÇÄÇ ÁËÅÇË Ë
ÄÅ ÌÏÆ
0.7 0.6 0.5 δχ 0.4 0.3 0.2 0.1 0 1 0.7 0.6 0.5 δχ 0.4 0.3 0.2 0.1 0 200
ËÕ Ñ ¾º
10
100
1000 10000 100000 1e+06 bin width
400
600
800 1000 1200 1400 bin width
Το σφάλμα δχ της μαγνητικής επιδεκτικότητας υπολογισμένο με τη μέθοδο bootstrap. Παίρνουμε nS = 1000 και χωρίζουμε τα δεδομένα μας σε bins των οποίων το εύρος bin width φαίνεται στον οριζόντιο άξονα. Κάθε bin θεωρήται ως μια ανεξάρτητη μέτρηση. Για bin width=1 έχουμε το αποτέλεσμα δc χ = 0.0421. ΄Οταν το εύρος γίνει > 2τm το σφάλμα γίνεται δχ = 0.615, το οποίο το διαβάζουμε στο plateau για 500 < (bin width) < 1000 που δεν είναι πολύ διαφορετικό από το αποτέλεσμα που πήραμε με τη μέθοδο jackknife. Αυτό φαίνεται καθαρά στο κάτω σχήμα. Οι οριζόντιες γραμμές αντιστοιχούν στις τιμές των δc χ και δχ που αναφέρθηκαν παραπάνω.
Readers
Recent searches finding this book
| konstantinos anagnostopoulos | via Google |
| computational statistical physics | via Google |
| homepages gr anagnostopoulos | via Google |
| homepages gr anagnostopoulos | via Google |
| konstantinos anagnostopoulos | via Google |
| konstantinos anagnostopoulos | via Google |
| introduction to monte carlo simulation download | via Google |
| introduction to monte carlo simulation download | via Google |
| introduction to monte carlo simulation download | via Google |
| introduction to monte carlo simulation download | via Google |
| mathematica bootstrap nb | via Google |
| mathematica bootstrap nb | via Google |
| KATANOMH ΒΟΛΤΖΜΑΠ| via Google |
| αντισιδηÏομαγνητικό | via Google |
| αντισιδηÏομαγνητικό | via Google |
| GOULD 100MS OSO 400 | via Google |

Like (1)
Add Comment