
ååž°çãããã¯ãã©ãã³ã¯ããšçŽäº€å€é åŒ
ä»ååããŠãããŸã§ã«ããã°ã©ãã³ã°ã§åŠãã ããšã«ã€ããŠæžããŠã¿ãŸãã以äžã§åºãŠããã³ãŒãã¯ããããPython3ã®ãã®ã§ãã
ããã°ã©ãã³ã°ã«ããããååž°ããã«ãŒãããšããã«ãžã£ã³ãã«å€é
åŒããšèšã£ãçšèªã®ãããããç¥ã£ãŠããæ¹ã«èªãã§ããã ããã°å¬ããæããŸãããã ããã®æç¹ã§äœããããå¯ãã®ã€ãæ¹ã«ãšã£ãŠã¯æ°ããç¥ãæ
å ±ã¯å°ãªããããããŸããã
ä»åã®è©±é¡ã¯ãã¡ãã®æžç±ã§åŠãã ããšãå ã«ãªã£ãŠããŸãã
1. ååž°åŒåºã
ããã°ã©ãã³ã°ã«ãããŠååž°ãšããã°é¢æ°ãå®è£
ããäžã§èªåèªèº«ãåŒã³åºããããªææ³ãæããŸãããŸããã®ããã«ããŠå®è£
ããã颿°ãååž°é¢æ°ãšåŒã³ãŸãã
ååž°ãå©çšããäŸãšããŠåãããããã®ãæ°åŠã«ããããéä¹ãã§ããè² ã§ãªãæŽæ°nã«å¯Ÿããnããå§ããŠ1ãŸã§ã®èªç¶æ°ãä¹ãããã®ãnã®éä¹(è±èªã§ã¯factorial)ãšãããn!ã®ããã«æžããŸããäŸãã°
3! = 3ã»2ã»1 = 6
4! = 4ã»3ã»2ã»1 = 24ã®ããã«ãªããŸãããŸãç¹å¥ãªãã®ãšããŠ0ãš1ã®éä¹ã¯1ã§ãããšãããŠããŸãã
0! = 1! = 1å®çŸ©ãããnã1ãã倧ããå Žåã«ã¯æããã«
n! = nã»(n-1)!ãæãç«ã¡ãŸãããããã£ãŠããã°ã©ã ã§ã¯ã
ã»nã1以äžã®å Žåã«ã¯1ã
ã»ããã§ãªãå Žåã«ã¯ãnããšãåŒæ°ãn-1ãšããèªåèªèº«ããšã®ç©ã
ããããè¿ããããªé¢æ°ãå®çŸ©ããã°ããããæŽæ°åã®åŒæ°ã«å¯ŸããŠãã®éä¹(â»)ãåºåããŠãããŸãããã®ãããªå ·åã§ãã
def factorial(n=1):
if n<=1:
return 1
else:
return n*factorial(n-1)æåŸã®äžè¡ãååž°åŒã³åºãã«ãªã£ãŠããŸããããã§ä»»æã®æŽæ°ã®éä¹ãPythonã§èšç®ã§ããããã«ãªããŸããã
⻠现ããããšãèšããŸããšäžã®é¢æ°ã§ã¯nãè² ã®ãšãã«ã1ãè¿ãããã«ããŠããŸããè² ã®æŽæ°ã®éä¹ã¯ååšããŸãããæ°åŠã«ã¯æŽæ°ã§ãªãå€ã«å¯ŸããŠãå®çŸ©ã§ããããéä¹ãæ¡åŒµããã¬ã³ã颿°ããããŸãããåŒæ°ãè² ã®æŽæ°ã§ããå Žåã«ã¯ã¬ã³ã颿°ããŸãçºæ£ããŠããŸã£ãŠæ±ºãŸã£ãå€ããããŸããããã®ããæ¬æ¥éä¹ãèšç®ãã颿°ã§ã¯nãè² ã§ããã°ãšã©ãŒãªããèŠåãåºãããã«ãã¹ãã§ããå®éPythonã®mathã©ã€ãã©ãªã«ã¯éä¹ãè¿ãååã®é¢æ°ããã£ãŠäŸãã°factorial(-1)ãèšç®ãããããšãããš
ValueError: factorial() not defined for negative valuesã®ããã«ãšã©ãŒã«ãªããŸãã
ååž°çãªææ³ã䜿ãã°ãã£ããããæ°ãåºåãããããšãã§ããŸãããã£ããããæ°åãšã¯ã
ã»åããšãã®æ¬¡ã®é ã1
ã»ãã以éã¯çŽåã®2é ãè¶³ãåãããæ°
ãããªãæ°åã§ããããã®äžã€äžã€ã®æŽæ°ããã£ããããæ°ãšãããŸãïŒæåã0ãšããå®çŸ©ããããŸãïŒãåãã®10åãæãããš
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55] ãšãã£ãæãã§ãããã£ããããæ°ãè¿ã颿°ã¯ããã®å®çŸ©ãã®ãŸãŸã«
def fibonacci(n=1):
if (n==0) or (n==1):
return 1
else:
return fibonacci(n-2)+fibonacci(n-1)ãšããŠå®è£ ããããšãã§ããŸãããã®äžã§ifã®æ¬¡ã®è¡ããåããšãã®æ¬¡ã®é ã1ãã§ããããšãelseã®æ¬¡ã®è¡ãããã以éã¯çŽåã®2é ãè¶³ãåãããæ°ããšãªãããšãæå³ããŸãããããååž°é¢æ°ã§ããå®éã«ããã§äŸãã°fibonacci(7)ãåŒã³åºããŠã¿ãã°21ãšããçµæãè¿ã£ãŠããŸãã
2. ã¡ã¢å
è«ççã«ã¯äžèšã®ããæ¹ã§éä¹ããã£ããããæ°ãèšç®ããããšã¯ã§ããŸãããèšç®ã®ã¢ã«ãŽãªãºã ã®èгç¹ãããããšè³¢ãæ¹æ³ã§ã¯ãããŸããã
1ã€ã®ãã£ããããæ°ãèšç®ããããã«ããããå°ãã2ã€ã®ãã£ããããæ°ãæ±ããããã§ãããããããã®ãã£ããããæ°ãæ±ããã®ã«ãåãèšç®ãè¡ãç¹ã«æ³šç®ããŸãã
äŸãã°fibonacci(10)ãèšç®ããã«ã¯fibonacci(9)ãšfibonacci(8)ãšãæ±ããŠè¶³ãåãããŸãããããŠfibonacci(9)ãæ±ãããšãã«ãfibonacci(8)ãå¿ èŠã§ããããfibonacci(8)ã¯2åèšç®ãããŸããããããå°ããfibonacci(7)ã¯3åèšç®ãããŸãããã®ããã«å ã®åŒæ°ïŒãã®å Žåã¯10ïŒãã2以äžå°ããçªå·ã®ãã£ããããæ°ãæ±ããåŠçãè€æ°åç¹°ãè¿ãããããšã«ãªããŸãã
åŒæ°nã3ãšã5ã®ããã«å°ãããã°å€§ããåé¡ã«ãªããŸããããåŒæ°nãããçšåºŠä»¥äžå€§ãããšã颿°ãåŒã³åºããŠå€æ°ã®åã調ã¹ãŠç©ãåãèšç®ããŠä»£å ¥ããŠ... ãšãã£ãæŒç®ãè¡ãããåæ°ãéåžžã«å€ããªã£ãŠããŸããŸããããã¯ææ°é¢æ°çãªå¢å€§ã§ãã
ã¢ã«ãŽãªãºã ã®ææã«ãããŠãã£ããããæ°ã®äŸé¡ã¯ãã®ãããªååž°é¢æ°ã®åé¡ãèªèããããããã®äœçœ®ä»ãã§ããPythonã§ã¯ãããã¢ã«ãŽãªãºã å
¥éãã§ã¯èšç®ãé«éåããããã«ãã¡ã¢åããè¡ããŸãããããã¯äžåºŠèšç®ããŠåºãçµæãä¿åããŠãããŠåŸã§åŒã³åºããšããããæ¹ã§ãããããšã§åãèšç®ã®ç¹°ãè¿ããé¿ããããšãã§ããŸããå
·äœçã«ã¯æ¬¡ã®ããã«ããŸãã
mem = {0: 1, 1: 1}
def fibonacci(n=1):
if n not in mem:
mem[n] = fibonacci(n-2)+fibonacci(n-1)
return mem[n]æåã«åãã®2ã€ã®ãã£ããããæ°ã§memãªãèŸæžïŒé£æ³é åïŒãäœã£ãŠãããæ¬²ããçµæããã®äžã«ããã°ãã®å€ãè¿ããããªããã°ããã§åããŠãã£ããããæ°ãèšç®ããŠç»é²ïŒã¡ã¢ïŒããŸããããã§ç»é²ãããæ°ã¯ããã倧ããªãã£ããããæ°ãæ±ãããšãã«ååž°ã§åŒã³åºãããŸãããã®æ¹æ³ãªãã°èšç®åæ°ããã£ãšåæžããããããnã30以äžã§ãã»ãšãã©åŸ ã€ããšãªãfibonacci(n)ãåŸãããšãã§ããŸãã
3. ã«ãŒã
åãèšç®ãããã®ã«ããããååž°ã§ã¯ãªãã«ãŒããäœ¿ãæ¹æ³ããããŸãã
def fibonacci(n=1):
mem = [1, 1]
for k in range (2, n+1):
mem.append(mem[k-2]+mem[k-1])
return mem[n]ããã§ã¯
ã»memããªã¹ããšããŠæåã«åãã®2ã€ã®ãã£ããããæ°ãå ¥ããã
ã»3åç®ä»¥éãæ±ããå Žåã«ã¯3é ç®ä»¥éãèšç®ããŠæ«å°Ÿã«è¿œå ããŠããã
ã»ãªã¹ãã®æ«å°Ÿã«å ¥ã£ãæŽæ°ãè¿ãã
ãšãã£ãããšãè¡ã£ãŠããŸããããã§ããŸãã¡ã¢åãšååž°ã«ããææ³ãšåçšåºŠã®èšç®éã§çµæãåŸãããŸãã
4. ã«ãžã£ã³ãã«å€é
åŒãžã®å¿çš
ãããŸã§ç¥ã£ããšããã§å ç©çåŠç§ã®ç§ã¯ã«ãžã£ã³ãã«å€é åŒãèªåã§å®è£ ããŠã¿ãããªããŸããã
ã«ãžã£ã³ãã«å€é åŒP_l (x)ãšã¯æŽæ°ãã©ã¡ãŒã¿lãæã¡ -1 ⊠x ⊠1 ã®ç¯å²ã§å®çŸ©ãããxã®l次åŒã§ãå ã ã¯
ã®ããã«å·ŠèŸºã®é¢æ°ãtã§å±éãããšãã«çŸããä¿æ°ãšããŠèããããŸããã仿¥ã§ã¯å·ŠèŸºã®é¢æ°ãã«ãžã£ã³ãã«å€é åŒã®æ¯é¢æ°ãšåŒã³ãŸãããã®ãšãxã®é¢æ°ã§ããP_lã¯
ãšãã£ãåŸ®åæ¹çšåŒãšå¢çæ¡ä»¶ãæºãããŠããŠããã®è¡šåŒã¯
ãšãããããªã²ã¹ã®å ¬åŒã§æ±ããããŸãã
ãããäœã«äœ¿ãããã®ããšãããŸããšããŸãã¯ãŒãã³ã®æ³åã«ãããããªãéäºä¹åãã®ããã³ã·ã£ã«é¢æ°ãèããéã«å ã»ã©æ¯é¢æ°ãšåŒãã ã®ãšåãåœ¢ã®æ°åŒãçŸããŸããããäžè¬ã«ã¯ã3次å ã®ã©ãã©ã¹æ¹çšåŒããã«ã ãã«ãæ¹çšåŒããã¢ãœã³æ¹çšåŒãç座æšïŒ3æ¬¡å æ¥µåº§æšïŒã§å€æ°åé¢ããéã®è§£ã®äžéšåãã«ãžã£ã³ãã«å€é åŒã§ããã®ã§ç©çåŠã§ã¯å¿çšç¯å²ããšãŠãåºãã§ãã
ç©çåŠç§ã§ãªããŠãé»åè»éã®å³ãèŠãããšãããã°ããã®åœ¢ã決ããŠããã®ãã«ãžã£ã³ãã«å€é åŒããæŽŸçãã3次å çé¢èª¿å颿°ãªã®ã§å¿çšå ã®äžã€ãç¥ã£ãŠããããã§ãã
ãã®ããã«ã«ãžã£ã³ãã«å€é åŒãšã¯ãã£ããèšã£ãŠãã®äžã®äžã«é»æ°ãååšããŠç©ºéã3次å ã§ããããã«ç©çãååŠã§å¿ èŠã«ãªã颿°ã§ãããšæãã°ééããããŸããããã®ã«ãžã£ã³ãã«å€é åŒãPythonã䜿ã£ãŠèªåã§å®è£ ããŠã¿ãããšãã話ã§ããã
å®ã¯ã«ãžã£ã³ãã«å€é åŒã«ã¯åž°çŽçãªåŒ
ãããããã®äžã®3ã€ç®ã¯ããã®æŒžååŒãšåŒã°ããŸãããã£ããããæ°ããªã¹ããšã«ãŒãã§æ±ããããã°ã©ã ãç¥ã£ããšããç§ã«ã¯ãã®åŒãæãæµ®ãã³ãŸããããããŸã§èããã°é£ããããšã¯ãããŸããã
def legpoly(x=1.0,l=0):
mem = [1.0, x]
for k in range(2,l+1):
y = ((2*k-1)/k)*x*legpoly(x, k-1) - ((k-1)/k)*legpoly(x, k-2)
mem.append(y)
return mem[l]颿°åã¯è±èªã®Legendre polynomialsãç¥ããŠä»ããŠããŸããããã§ã¯
ã»memããªã¹ããšããŠæåã«P_0 = 1.0 ãšP_1 = x ãå ¥ããŠããã
ã»l=2以éã®é ãæ±ããã«ã¯æŒžååŒã§èšç®ããŠæ«å°Ÿã«è¿œå ããŠããã
ã»ãªã¹ãã®æ«å°Ÿã«å ¥ã£ãæ°ãè¿ãã
ãšãã£ãããšãããŠããŸããåºæ¬çãªèãæ¹ã¯ãã£ããããæ°åã®ãšããšåãã§ãç°ãªãã®ã¯æŽæ°ã®ã€ã³ããã¯ã¹lã®ä»ã«æµ®åå°æ°ç¹åã®å€æ°xãããããšãããã§ããæ©éãã®é¢æ°ãçšããŠmatplotlibã§ã°ã©ããæããŠã¿ãŸããã
åããããªå³ã¯æ€çŽ¢ããã°ããããåºãŠããŸãããããããŠèªåã®æãåãããŠããã°ã©ã ãæžãããããŠå³ç€ºããçµæãèŠãŠåããŠäœ¿ããç¥èãšããŠèº«ã«ã€ããæ°ã«ãªããŸãã
ç§ãã«ãžã£ã³ãã«å€é åŒã®åºãŠããè¬çŸ©ãåããã®ã¯ãã10幎ãåã®ããšã§ããåœæã¯ãã®æ°åŒã®ç ©éãã«æããããäžã«å匷ã«ã»ãšãã©èº«ãå ¥ããªããªã£ãŠããŸããã®ã§ãã¬ããŒã課é¡ãæåºããŠåäœãåã£ãŠãäœãäœã ããã£ã±ãåãããŸããã§ããã
æšå¹Žå人çã«ããããåºæ¬çãªãç¹æ®é¢æ°ããå匷ãçŽããããšã§ããããããçšåºŠèªåšã«æ°åŒãæããããã«ãªããŸãããããã¯ããã§é¢çœãã§ããã10幎åã«ãã£ãšç©æ¥µçã«ãªã£ãŠããããå匷ãã§ããŠããã°ã©ãã»ã©è¯ãã£ãããšæããŸããæ¬åœã«ã倧åŠçãåæ§ã身ã«ã€ããããã°å匷ããã°è¯ããšãã話ãã§ãã
5. ãã®ä»ã®çŽäº€å€é åŒ
ããããŠå³ãå ãããšãã£ãããªã®ã§ä»ã®ç¹æ®é¢æ°ãäœã£ããããšããæ°åã«ãªããŸãããèŠã¯æŽæ°ã®ãã©ã¡ãŒã¿ãæã¡ãïŒåŸ®åãå«ãŸãªãïŒæŒžååŒãåãã£ãŠããçŽäº€å€é åŒãªãåãææ³ã§äœããããã§ããæŽæ°åã®å€æ°ïŒç©çåŠã«ãããéåæ°ãã¢ãŒãã®çªå·ïŒã¯ãªã¹ãã®ã€ã³ããã¯ã¹ã«äœ¿ããæµ®åå°æ°ç¹åã®å€æ°ïŒç©çåŠã«ãããäžè¬å座æšïŒã¯ååæŒç®ã§åŠçããŸãããããã£ãŠæ§æã§ãããã®ã2ã€ç޹ä»ããŸãã
äžã€ã¯ãšã«ããŒãå€é åŒã§ã次ã®ããã«é¢æ°prbherpolyãäœããŸããã
def prbherpoly(x=0.0, n=0):
mem = [1.0, x]
if n > 1:
for k in range(2, n+1):
y = x*prbherpoly(x, k-1) - k*prbherpoly(x, k-2)
mem.append(y)
return mem[n]äœãããã¯ç©çã®æç§æžã«èŒã£ãŠãããšã«ããŒãå€é åŒã§ã¯ãªããè±èªçWikipediaã§ããprobabilists' Hermite polynomialsãã€ãŸã確çè«ã«ããããšã«ããŒãå€é åŒã§ã ç©çåŠã«åºãŠãããããšã¯å€æ°å€æãšå®æ°åãšã§ç§»ãæ¿ããããšãã§ããŸãããã®å€é åŒã¯
ãªã挞ååŒã§æ±ããããã®ã§ãããå ã«å®è£ ããŸããã
ããäžã€ã¯ã©ã²ãŒã«ã®éªå€é åŒã§ããæ£ç¢ºã«ã¯æ¥æ¬èªçWikipediaã«ãããã®ã§ã¯ãªãè±èªçã®Generalized Laguerre polynomials (äžè¬åã©ã²ãŒã«å€é åŒ)ã®æ¹ã§ãã宿°å€æ°xãã€ã³ããã¯ã¹nã®ä»ã«å®æ°ãã©ã¡ãŒã¿Î±ãæã¡ãŸããããã«ã€ããŠã¯
ãšããå°ãé·ãå ¬åŒãçšããããšã«ãªããŸãããããããšã¯åãã§ãã
def genlagpoly(x=1.0,n=0,a=0.0):
mem = [1.0, 1.0+a-x]
for k in range(2, n+1):
y = (float(2*k-1)+a-x)/k*genlagpoly(x, k-1, a)
- (float(k-1)+a)/k*genlagpoly(x, k-2, a)
mem.append(y)
return mem[n]ãã®ããã«ããŠèªåãã¡ã®ç°å¢ã§ãã€ã§ãç°¡åã«çŽäº€å€é åŒãåºåã§ããããã«ãªããŸããã
6. æ°ŽçŽ ååã®æ³¢å颿°
ã©ã²ãŒã«ã®éªå€é åŒã¯éåååŠã®æ°ŽçŽ åååã®ã·ã¥ã¬ãŒãã£ã³ã¬ãŒæ¹çšåŒã®è§£ã®äžéšã«ãªã£ãŠããŸãã詳现ã¯çããŸããã倿°åé¢ãè¡ãååŸã®é·ãrã«äŸåããæåãåãåºããšã
ããã®ïŒåžžåŸ®åæ¹çšåŒã®ïŒè§£ã«ãªã£ãŠããŠãå³èŸºã®ç«¯ã«ãã倧æåã®Lãã©ã²ãŒã«ã®éªå€é åŒã§ããäœãn=1,2,...ã§ãããl=0,1,...,n-1ãšããæŽæ°ã«éããŸãããããã¯ããããäž»éåæ°ãæ¹äœéåæ°ãšåŒã°ããŸãã
ãŸãã宿°aã¯ãã®ååã®ããŒã¢ååŸã§é¢æ°genlagpolyã®åŒæ°aãšã¯å¥ç©ã§ããååŸã®é·ãrãããŒã¢ååŸaã§å²ã£ãŠããã®ã§ãÏ=r/aã¯ãããŒã¢ååŸã®äœåã®è·é¢ããã衚ããŸãïŒåèïŒåååäœç³»ïŒã
äžèšã®é¢æ°R_n, lã¯æ¢ã«èŠæ ŒåãããŠãã
ãæãç«ã¡ãŸããå ã»ã©ã®æ¥æ¬èªçãŠã£ãããã£ã¢ã®ããŒãžã«ãåã衚èšã®é¢æ°R_n, lããããŸãããäžèšã®ãã®ãšã¯å®æ°åã ãç°ãªããŸãããªãç©åã®å€æ°ãrã§ã¯ãªãç¡æ¬¡å éã®Ï=r/aã«ããããšãããšããã®åŸã§ç°ãªãåºæç¶æ ã®æ³¢å颿°ã®åœ¢ãæ¯èŒããããããããã§ãã
Pythonã§ã¯Ï=r/aã"rho"ïŒã®ãªã·ã£æåÏã®ããšïŒãšããŠãå ã»ã©ã®é¢æ°genlagpolyãšéä¹é¢æ°factorialãäœ¿ãæ°ãã颿°ãå®çŸ©ããŸãããããã¯1ã«ãªãäžèšã®ç©åã®äžã®è¢«ç©å颿°ïŒintegrantïŒã§ãã
"""
factorialãšgenlagpolyãimport
"""
def integrant(rho=0.0, n=1, l=0):
if n > l:
coef = 4*factorial(n-l-1)/(n**4*factorial(n+l))
vari1 = np.exp(-rho/n)*(2*rho/n)**l
vari2 = genlagpoly(2*rho/n, n-l-1, float(2*l+1))
return coef*(rho**2)*(vari1*vari2)**2
else:
return 0.0ããã«2ã€ã®éåæ°ã®çµ(n, l)ãäžããäŸãã°
import matplotlib.pyplot as plt
import numpy as np
(äžç¥)
x = np.linspace(0.0, 25.0, 200)
y = integrant(x, 2, 1)ãšããŠx, yãmatplotlibã§ããããããã°ãé»åãååæ žã®ããäžå¿ããrãšr+drã®éã®è·é¢ã«ãã確ç
ãdr/aã§å²ã£ã確çå¯åºŠã®ååžæ²ç·ãèŠãããšãã§ããŸãããã äžéãã®(n, l)ã®çµã¿åããã ãèŠãŠãé¢çœããªãããããŸã(n, l)=(1, 0), (2, 0), (3, 0)ã®3éããæ¯èŒããŸãããããã¯ãããã1s, 2s, 3sãšåŒã°ããé»åè»éã®ãã®ã§ãã
ãã®ããã«æ¹äœéåæ°ãçãããã°ãäž»éåæ°ã倧ããã»ã©é»åã®æ³¢å颿°ãäžå¿ããé¢ããé åã«ååžããããšãèŠãŠåããŸãã
(n, l)=(3, 0), (3, 1), (3, 2)ã§ãåæ§ã®æ¯èŒãããŸããããããã¯ãããã3s, 3p, 3dãšåŒã°ããé»åè»éã«å¯Ÿå¿ããŸãããã®ããã«äž»éåæ°ãæããŠæ¯èŒããã°ãæ¹äœéåæ°ã倧ããã»ã©ããŒã¯ãäžå¿ã«å¯ãæ§åã䌺ããŸãã
å ã»ã©ã®ãšãããªåç»ãèŠããšããªããã«ãããã宿§çãªã€ã¡ãŒãžãæã£ãŠãããšåããããããããããŸãããããä»ã®é»åè»éãèŠãŠã¿ããæ¹ãããŸãããããèªèº«ã®ç°å¢ã§é¢æ°genlagpolyããã³integrantãå©çšãå¥ã®ãã©ã¡ãŒã¿ã䜿ã£ãŠããããããŠããããã°ãšæããŸããäœãå šãŠã®å 容ã¯ç¬¬äžè ã®ãã§ãã¯ãåãããã®ã§ã¯ãªãæªã 誀ããããããåãããŸããã®ã§æ£ããã®ä¿èšŒã¯èŽããããŸãã
颿°integrantãèŠæ Œåããããããããæ²ç·ã§ãy=0ã®æšªè»žãšã®éã®é åã®é¢ç©ãæ±ããã°1ã«ãªããŸããããæ
ãããã®æ²ç·ã¯ç¢ºçå¯åºŠã衚ããŠãããšãããŸãã念ã®ããæ£ããèŠæ ŒåãããŠããã確ãããããã«ãæéãªã¹ãããæ°ã»æéãªé·ãã®åºéã§æ°å€çã«ç©åãæ±ãã颿°norm_hydatomã远å ããåç¹ïŒrho=0ïŒããããŒã¢ååŸã®50åã®è·é¢ãŸã§ã®åºéã«ãããŠã¹ãããæ°500ã§èšç®ããŠã¿ãŸãããããã§ã®åºåpãšã¯ã(n, l)ã§æå®ãããé»åè»éã«å¯Ÿå¿ããåºæç¶æ
ã«ããé»åãåç¹ããããŒã¢ååŸã®50åã®è·é¢ãŸã§ã®é åã«ååšãã確çãã«ãªããŸãã
(ç¥)
def norm_hydatom(n=1, l=0, radi=50.0, step=500):
integ = 0.0
if l < n:
drho = radi/step
for s in range(0, step):
rho = radi*s/step
integ += integrant(rho, n, l)*drho
return integ
for n in range(5):
for l in range(n):
p = norm_hydatom(n,l)
print('P = '+str(p)+' for n ='+str(n)+', l = '+str(l))ãã®çµæã¯ä»¥äžã®éãã§ãã
P = 0.9999933544529871 for n =1, l = 0
P = 0.9999991684835401 for n =2, l = 0
P = 1.000000000165054 for n =2, l = 1
P = 0.999999698937952 for n =3, l = 0
P = 0.9999999691434047 for n =3, l = 1
P = 0.9999999920869674 for n =3, l = 2
P = 0.99904809636214 for n =4, l = 0
P = 0.9993203497043445 for n =4, l = 1
P = 0.9996795120816482 for n =4, l = 2
P = 0.9999231959668202 for n =4, l = 3ãšããããã§æåã«äœã®è©±ãããŠãããæãåºããŸããšãååž°çããã°ã©ãã³ã°ããå§ããŠãã®ä»£æ¿ææ®µãšããŠã®ã¡ã¢åãšã«ãŒããããã«ç©çåŠã«åºãŠããç¹æ®é¢æ°ãžã®å¿çšã«ã€ããŠæžããŠããŸãããé¢çœããšæããããŸãããããŒãããŒã¯ãæŒããŠããã ãããšå¬ããã§ãã
远èšïŒ
çŽäº€å€é
åŒä»¥å€ã®ç¹æ®é¢æ°ãšããŠä»£è¡šçãªååšã§ããããã»ã«é¢æ°ã«ã€ããŠæžããŸããã









