Computational Physics II

In Greek

Introduction to monte carlo methods in statistical physics.

I've Read This
  • 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

 

Academia © 2010