
ãã¥ãŒãã³æ³ã§æ±ããããã»ã«é¢æ°ã®é¶ç¹
ãPythonã䜿ã£ãæ°å€è§£æã»ã¢ã«ãŽãªãºã ã«é¢ããæçš¿ç¬¬2匟ã§ãã以äžã§ã¯ãã¥ãŒãã³æ³ãçšããŠããã»ã«é¢æ°ã®é¶ç¹ãæ±ãããšããããšããã£ãŠãããŸããåºæ¬çãªåŸ®ç©åã®èšç®ãã§ããã°çè§£ã§ããããäžå¯§ã«èª¬æããŠãããŸãã®ã§ãç©çåŠãšæ°çæé©åã®ããããã«é¢å¿ã®ããæ¹ã«ã¯æ¥œãããå
容ã«ãªããšæããŸãã
ãããã»ã«é¢æ°ãšã¯å€å
žç©çåŠã®è€æ°ã®åéã§çŸãããç¹æ®é¢æ°ãã®äžçš®ã§ããæ§ã
ãªå¿çšå
ãããéèŠãªé¢æ°ã§ããããããããæ°åŒãè€éã§ããããé£è§£ãªãã®ãšæãããã¡ã§ããäžæ¹ãã¥ãŒãã³æ³ãšã¯äžããããé£ç¶é¢æ°ã®å°é¢æ°ãçšããŠæ ¹ïŒé¢æ°ã®å€ã0ã«ãªãç¹ïŒãæ±ããæ°å€è§£æã®ææ³ã§ãããŸãã¯ãã¡ãã«ã€ããŠèª¬æããŠãããŸããæ¬é¡ã«å
¥ãã®ã¯5ç¯ç®ã§ãã
1. äžå€æ°é¢æ°ã«å¯ŸããNewtonæ³
ããã äžã€ã®ïŒå®ã®ïŒå€æ°xãæã€æ»ãããªé¢æ°f(x)ããã£ããšããŸãããã®ãããªé¢æ°ãšããŠã¯
ããªã©ãªã©è²ã èããããŸãããããã颿°ã®å€ããŒãã«ãªãç¹ãã€ãŸã
ãšãªãè§£xãæ±ãããããªåé¡ãèããŸãããã®ãããªxã§è¡šãããç¹ããã®é¢æ°ã®é¶ç¹ã ãšãæ ¹ãšåŒã³ãŸããäžè¬ã«ã¯è€æ°ã®æ ¹ãæã€é¢æ°ãæ±ãããšããããŸããããã¥ãŒãã³æ³ã§ã¯ã©ããã«åºçºç¹ãå®ããŠãã®è¿ãã«ããæ ¹ãæ¢ããŸãã
ãã€ã¡ãŒãžããããããããäžèš3ã€ã®é¢æ°ãxyå¹³é¢äžã®ã°ã©ãã«ããŠã¿ãŸããããäžå€®ã暪åã£ãŠããã®ã y=0 ã®æšªè»žã§ããã®ç·ãšå颿°ã®æãæ²ç· y=f(x)ãšã®äº€ç¹ãæ±ããããšãããã§ã®ç®æšã§ãã
ã颿°ã®å€ããŒãã«ãªãç¹ãæ±ãããšãããšæ¥µã ç¹æ®ãªã±ãŒã¹ã«éã£ãè©±ã«æãããããããŸãããå®éã¯ããã§ããããŸããã
ããŸãçåŠã»å·¥åŠã®å¿çšåéã§ã¯çžç°ãªã2ã€ã®é¢æ°ã®å€ãäžèŽããç¹ãæ±ãããå Žé¢ããã°ãã°ããããããæèšç®ã§æ±ããããªããªãã°2ã€ã®é¢æ°ãg(x)ãh(x)ãšããŠé¢æ° f(x) = g(x) - h(x)ã®æ ¹ãæ±ããããšã«ãªãããã§ããæåãªäŸãšããŠã¯ tan(x)ãšxã®å€ãäžèŽããç¹ãæ¢ããšããåé¡ããããŸãïŒä»¥äžã§çŸããäžè§é¢æ°ã¯å šãŠè§åºŠã®åäœãradãšãã匧床æ³ã®ãã®ã§ãïŒã
ããã¡ãããã®2ã€ã®é¢æ°ã®ããããå³ã§ãããŸãåç¹x=0ããã®è§£ã§ããããšã¯æçœã§ããããã®ä»ã«ãç¡éåã®è§£ããããŸããäŸãã°ãã¡ãã®å³ã®äžã§ã¯x=4.5ã®è¿ãã«ååã§èšãã亀ç¹ããããŸãããã®ç¹ã®åº§æšãå³å¯ã«æ±ããããšã¯ã§ããŸããããåŸè¿°ããããã«ãã¥ãŒãã³æ³ã§è¿äŒŒçã«æ±ããããšãã§ããŸãã
ãããããæ°å€æé©åã®åéã§ã¯ãè€æ°ã®ãã©ã¡ãŒã¿ãæã€é¢æ°ãæå€§åãªããæå°åããæ¡ä»¶ãæ¢ãåé¡ããã°ãã°æ±ããŸãããã®ãããªé¢æ°ã¯ç®ç颿°ãšåŒã°ããç®ç颿°ããã®ãã©ã¡ãŒã¿ã§åŸ®åããããšã§åŸãããå°é¢æ°ããŒãã«ãªãç¹ãæ¢ãããšã«ãªããŸãããããã£ãŠãã®ç®ç颿°ã®å°é¢æ°ã«ãã¥ãŒãã³æ³ãé©çšãããšããã±ãŒã¹ãåºãŠããŸãããã®æã¯äžè¬ã«å€å€æ°é¢æ°ã«æ¡åŒµããæ¹æ³ãèããªããã°ãããŸããããä»åã¯ãã äžã€ã®å€æ°ãæã€åŸ®åå¯èœãªé¢æ°ã ããæ±ããŸãã
ããã®æ¹æ³ã説æããŸããããæ²ç· y=f(x)ã«å¯Ÿãã x = x_k (k=0, 1, 2, ... )ã®ç¹ã«ãããæ¥ç·ãšæšªè»ž y=0ãšã®äº€ç¹ã x = x_k+1 ãšããŸãã颿°f(x)ã®å°é¢æ°ãf'(x)ãšæžãããšã«ãããšç¹x = x_kã«ãããæ¥ç·ã®åŸãã¯f'(x_k)ã§ãããæ¥ç·ã®æ¹çšåŒã¯
ã§è¡šãããŸããå°ã çŽããããã§ããæ·»åã®ä»ãã x_kã¯å€æ°xã«äŸããªã宿°ã§ãã
ã巊蟺ã®yããŒãã®æã« xã®å€ã x_k+1ã«çãããªãã®ã§
ã«ãã£ãŠ x_k+1 ãæ±ããããŸãã
ããã®æäœãx_0ããå§ããŠäœåºŠãç¹°ãè¿ããããæ£ã®å°ããå€Îµã«ã€ããŠ
ãªãåææ¡ä»¶ãæºãããããšãã«ãæåŸã«æ±ãããã x_k+1ãå ã®æ¹çšåŒã®è§£ãšããŸãããããäžå€æ°ã®é¢æ°ã®æ ¹ãæ±ãããã¥ãŒãã³æ³ã§ããæåã®x_0ã¯æ ¹ã«ååã«è¿ããšèããããç¹ãé©åœã«æ±ºããŠäžããŸãã
ãæç« ãæ°åŒãããå³ã®æ¹ãåãããããã§ããããè±èªçWikipediaã«ã¯åãçµµãããã®ã§ãã¡ããèŠããšå°è¯ããããããŸãããäžã®ããããå³ã§ã¯é¢æ°f(x)=tan(x)-x ã«ã€ããŠãåŸè¿°ããã³ãŒãã§ x_0 = 4.6ããéå§ã㊠x_1, x_2çãæ±ããŠããŸãããã®çµæãšããŠtan(x) = x ã®è¿äŒŒçãªè§£ xâ4.4934ã«ãã©ãçããŠããŸãã
2. Pythonã«ããäžå€æ°ã®Newtonæ³ã®å®è£
ãããã§äžåºŠãŸãšãããšãã¥ãŒãã³æ³ã®èãæ¹ã®èŠç¹ã¯æ¬¡ã®2ã€ã§ãã
ã(1) x_0ãåºçºç¹ãšããŠé次çã«è§£ã«è¿ãç¹ x_1, x_2, ... ãæ±ããŠããã
ã(2) äºãå®ããããåææ¡ä»¶ãæºãããšããã§æã¡åã£ãŠè¿äŒŒè§£ãšããã
def newton1dim(f, df, x0=0.0, max_iter=1e+2, eps=1e-8):
x = x0
step = 1
x_new = x - f(x)/df(x)
while not abs(x_new-x) < eps:
step += 1
x = x_new
x_new = x - f(x)/df(x)
if step >= max_iter:
break
return [x_new, step, abs(x_new-x) < eps]ããã®ããšãPython3ã§è¡šããã®ãäžèšã®ã³ãŒãã§ãã
ãã»fã¯è§£ãæ±ãããé£ç¶é¢æ°
ãã»dfã¯fã®å°é¢æ°
ãã»x0ã¯åºçºç¹ã®åº§æšïŒåæå€ïŒ
ãã»max_iterã¯ç¹°ãè¿ãã®æå€§åæ°
ãã»epsã¯åææ¡ä»¶ã®Îµ
ãšãã£ããã®ã«ãªããŸããç¹°ãè¿ãã®åæ°ã«äžéãå®ããã®ã¯è§£ãæ±ããããªãå Žåã«ç¡éã«ãŒãã«å
¥ãã®ãé²ãããã§ãã
ãåææ¡ä»¶ abs(x_new-x) < epsãæºããããŠã«ãŒãããè±ããæã®x_newãæ±ãããã£ãè§£ïŒå ã»ã©ã®x_k+1ïŒã«ãªããŸãããã®ä»ã«ãåäœã®ç¢ºèªãããããã«ããã®è§£ã«ãã©ãçããŸã§ã®ã¹ãããæ°ããšããåææ¡ä»¶ãæºãããããåŠãããè¿ãããã«ããŠããŸãã
ããããçšã㊠f(x)=tan(x)-xã® x=4.5ä»è¿ã®æ ¹ãæ±ããŸãããã
ã颿°f(x)ã®å°é¢æ°ã¯
ãªã®ã§ãnewton1dimã«ç¶ããŠ
def f(x=0.0):
return np.tan(x)-x
def df(x=0.0):
return np.tan(x)**2-1.0ãšãã£ã2ã€ã®é¢æ°fããã³dfã远å ããŸãããããŠããããšåæå€x0 = 4.6 ãšãå ã»ã©ã®é¢æ°newton1dimãžæž¡ããŸããããããŠãªã¹ãåã®è¿ãå€ããã®ãŸãŸã³ãã³ãã©ã€ã³ã«è¡šç€ºãããããšã§æ¬¡ã®åºåçµæãåŸãŸãã
[4.493409457871261, 8, True]ãã®çµæããx_8ãŸã§ãèšç®ãããŠãè¿äŒŒè§£ xâ4.4934ãæ±ããããããšãåãããŸãããããå
ã»ã©è¿°ã¹ãtan(x)ãšxã®å€ãäžèŽããç¹ã®äžã€ã§ãã
ãããã«å¥ã®é¢æ°ãšããŠ
def lis1dnewton(f, df, x0, num=5, eps=1e-8):
lis = [[x0, f(x0)]]
for i in range(num):
x = lis[i][0]
x_new = x - f(x)/df(x)
lis.append([x_new, f(x_new)])
if abs(x_new-x) < eps:
break
return lisãå®çŸ©ããŠãããšãåæå ã®è§£ã ãã§ãªãx_0ãx_1ãx_2ãšãã£ãéäžã®ç¹ãšããããã«å¯Ÿãã颿°f(x)ã®å€ãåºåã§ããŸããå ã»ã©ã¯ãã®åºåçµælisãå©çšããŠx_0ãx_1ãx_2ã衚ãç¹ç·ïŒé次解ã®è»è·¡ïŒãæããŸããã
[è£è¶³]
ããã§ã®å®è£ ã§ã¯é¢æ°f(x)èªäœãšãã®å°é¢æ°f'(x)ãšãå¥ã ã«çšæããŸããããå°é¢æ°ã®æ¹ã埮åã®å®çŸ©ã«åã£ãŠ
def df(x=0.0, eps=1e-8):
x_new = x + eps
return (f(x_new)-f(x))/epsã®ããã«ããããæ¹ãèããããã§ãããããããããã ãšf(x_new)-f(x)ãepsãšåããªãŒããŒã®ããªãå°ããæ°ã«ãªã£ãŠããŸãèšç®ã®ç²ŸåºŠãæåŸ ã§ããªãïŒæ¡èœã¡ã®æããããïŒãããäžè¬ã«ã¯äžèº«ã®åãã£ãŠãã颿°ã§ããã°å°é¢æ°ãå¥ã«äžããæ¹ãè³¢æãšãããŠããããã§ãã
ããããŸã§ã®å 容ã¯ãæ©æ¢°åŠç¿ã®ãšãã»ã³ã¹ãå®è£ ããªããåŠã¶Pythonãæ°åŠãã¢ã«ãŽãªãºã ããåèã«æžããŸããã以åèè ã®å è€å ¬äžãããããã°ã§å¥ã®æ¬ã«ã€ããŠæžãããæžè©ãåŒçšããŸãããããããšã¯å¥ã«ãã¡ãã®æžç±ãè²·ã£ãŠå匷ãããŠããã£ãŠããŸãã
ãæ¬ç¯ã®æåŸã«ãäŸãšããŠæåã«æãã3ã€ã®é¢æ°
ã«é¢ããçµæãæããŠãããŸããåºå¥ã®ããçªå·ãä»ããŸãããããããã®å°é¢æ°ã¯æ¬¡ã®éãã§ãã
ããŸãããããå®çŸ©ããŸãã
def f1(x=1.0):
return x**2+3*x-1.0
def f2(x=1.0):
return np.sin(x)
def f3(x=1.0):
return x*np.log(x)-x
def df1(x=1.0):
return 2*x+3.0
def df2(x=1.0):
return np.cos(x)
def df3(x=1.0):
return np.log(x)
xini = [0.7, 2.4, 3.1]ãæåŸã®xiniã¯ããããã®é¢æ°ã®æ ¹ãæ±ããããã®xã®åæå€ïŒinitial valueïŒãéãããªã¹ãã§ãããããã®é¢æ°ãšåæå€ãå ã»ã©ã®newton1dimãžãšæž¡ããŠåŸãããæ ¹ãã°ã©ãã®äžã«ããããããŠã¿ãŸãã
ãç·è²ã®ååå°ãå颿°ã«å¯Ÿããx ã®åæå€ãšããã®ç¹ã«ããã颿°ã®å€ã瀺ããŠããŸããããã«å¯ŸããŠèµ€è²ã®ååããã¥ãŒãã³æ³ã§æ±ããããæ ¹ã§ããããããã®å€ãã°ã©ãå ã«æžã蟌ã¿ãŸããã
ãã¡ãªã¿ã«f1ã¯2æ¬¡é¢æ°ãªã®ã§ãã®æ ¹ã¯2次æ¹çšåŒãè§£ãããšã§
ãšæ±ããããŸãããf2ã®x=3è¿ãã®æ ¹ãšããã°ååšç
ã«ä»ãªããŸãããæ¯ã¹ãŠã¿ããšäžèšã®çµæã¯ãããã®å€ã«ãå°ãªããšãepsããå°ãã誀差ã®ã¿ãæ®ããŠäžèŽããŠããŸãã
3. æŽæ°æ¬¡ã®ïŒç¬¬äžçš®ïŒBessel颿°
ãããã»ã«é¢æ°ãšã¯åé ã§è¿°ã¹ãéãå€å
žç©çåŠã®è€æ°ã®åéã§çŸããç¹æ®é¢æ°ã§ãããããã説æããããã«äœããã®å®çŸ©ãšãããã«ã¯è€æ°ã®æµåããããŸã*1ã
ãæŽå²çã«ã¯é¢æ°ã®ååã«ãåãæ®ããŠãã倩æåŠè
Friedrich Wilhelm Besselãã仿¥ã®é«æ ¡ç©çã®æç§æžã«ãç»å Žãããã±ãã©ãŒã®æ³åãã«åŸãææã®éåã«ã€ããŠè§£æçã«è§£ããéã«åããŠèŠåºããããšãããŸãããã®åž°çµã®äžéšãçŸä»£çãªè¡šèšã§æžããšã
ãšããç©åãææè»éã«é¢ããåŸ®åæ¹çšåŒã®è§£ã®äžã«çŸããŸã*2ããããn次ã®ïŒç¬¬äžçš®ïŒããã»ã«é¢æ°ãšåŒã°ãããã®ã§ãæŽæ°nã¯æ¬¡æ°ãšåŒã°ããŸãã
[è£è¶³]
*1 ãããç¥ããªãã§æ¬ãªã©ãèªããšååŠè ã¯å°æããããšã«ãªããŸãã
*2 ãã®å°åºã«ã€ããŠWebäžã§ã¯äŸãã°ãScientific Doggieâæ°çã®æ¥œãã¿ããšãããµã€ãã«ãããã¡ãã®PDFã§èŠãããšãã§ããŸãã
http://www.wannyan.net/scidog/spfunc/ch03.pdf
ãäžèŠãããšâ ã¯äžè§é¢æ°ã®äžã«äžè§é¢æ°ãå ¥ããšãããšãã§ããªã代ç©ã«èŠããŸãããã®ç©åãèšç®ããããšã¯æããªãã§ã代ããã«äž¡èŸºãxã§åŸ®åããäžã§xãããããšããæäœãããŸãã
ãéäžã§äžåºŠéšåç©åãè¡ã£ãŠããŸããæ¬¡ã«ããããè¶³ãããããŸãã
ããããŠå€©äžãïŒæ¥ççšèªïŒã«ãªããŸããã
ãªããã®ã䞡蟺ãžãšè¶³ããt = nz - x sin(z)ã§çœ®æç©åãè¡ããŸãã
ãã¯ãããšããããã§å ã»ã©å°å ¥ãã颿°J_n (x)ã®æ£äœãç¥ãããšãªããã®é¢æ°ã
ãªãæ¹çšåŒïŒããã»ã«ã®åŸ®åæ¹çšåŒïŒãæºããããšãåãããŸããã
ãç©åã«ããå®çŸ©ã®åŒâ ãšã¯å¥ã«äžèšã®æ¹çšåŒã®è§£ãã¹ãçŽæ°å±éãšåŒã°ããæ¹æ³ã§æ±ããããšãã§ããŸãããã ããã®æèã§ã¯äžèšã®åŸ®åæ¹çšåŒãæºããããšã«å ããŠãåç¹ x=0ã«ãããŠïŒçºæ£ããããšãªãïŒæ£åã§ããããšããæ¡ä»¶ãä»ããŸãããã®è§£ã®æ±ãæ¹ã«ã€ããŠã¯åžè²©ã®æç§æžé¡ãè¬çŸ©ããŒããªã©æ§ã ãªãšããã§è©³ãã説æãããŠããŸãããªã®ã§ããã§ã¯çµæã®ã¿æžããŸããããã¯ãããããã®ã§ãã
ãããã¯å ã»ã©ã®ããã»ã«ã®åŸ®åæ¹çšåŒã®è§£ã«ãªã£ãŠããã ãã§ãªããäžèŠãããšå ã»ã©ãšå šã䌌ã€ããªã衚åŒã§ããâ ã®ç©åãšäžèŽããŸãã
ããã®é¢æ°J_n (x)ã®éãŸãïŒé¢æ°åïŒ{J_n (x)| n =0,1,2,...} ã«ã¯æ¯é¢æ°ãšããŠ
ããããŸããããã®æå³ãããšããã¯ãxã®å€ãåºå®ãtã«ã€ããŠå·ŠèŸºãçŽæ°å±éããã°tã®nä¹ã«ãããä¿æ°ãJ_n (x)ã«ãªããšããããšã§ããããã¯è€çŽ é¢æ°è«ãéããŠèšŒæãããŸãã
ããããŸã§ç»å Žããããã»ã«é¢æ°ã®è¡šåŒãæ¹ããŠåæããŸãã
ããŸãâ ã®ããã«ç¹æ®é¢æ°ãå¥ã®å€æ°ã«ããç©åã®çµæãšããŠè¡šãããã®ããã®é¢æ°ã®ç©å衚瀺ãšãããŸããå ã»ã©è¿°ã¹ãããã«æŽå²çã«åããŠèŠåºãããããã»ã«é¢æ°ã¯ãã®åœ¢åŒã§ããã
ãäžæ¹ã§ä»æ¥ã®å€ãã®æ¬ãè¬çŸ©ããŒãã§ã¯â¡ã®åªïŒã¹ãïŒçŽæ°å±éãããã»ã«é¢æ°ã®å®çŸ©ãšããŠããŸããããã¯ç©å衚瀺ã®åŒãšå¥ç©ã®ããã«èŠããŸãããâ¢ã®æ¯é¢æ°ãéããŠäºãã«çããããšã瀺ãããŸãã
ããã®ããïŒãã¡ãã®PDFãã¡ã€ã«ã®ããã«ïŒãããâ¢ãããã»ã«é¢æ°ã®å®çŸ©ã ãšããŠâ â¡ããã®ä»è«žã ã®é¢ä¿åŒãç€ºãæµåããããŸãããããããšäžèªç¶ããææ§ãã®åãé€ãããŠéŠå°Ÿäžè²«ããè°è«ãã§ããŸãã
ããŸããããŸã§nãæŽæ°ãšããŠããŸããããããäžè¬çã«ã¯ããã宿°ãããã«ã¯è€çŽ æ°ã®ãã©ã¡ãŒã¿ãžãšæ¡åŒµããŠããã»ã«é¢æ°ãå®çŸ©ããããšãã§ããŸãããã®å Žåäžèšâ¡ã®åŒã®åæ¯ã¯éä¹ã§ã¯ãªãã¬ã³ã颿°ã«ãªããŸãã
ãããã«ããã»ã«ã®åŸ®åæ¹çšåŒã®è§£ãšããŠã¯ãã®ä»ã«åç¹ã§æ£åã§ãªããªãïŒãããã1/âxã«æ¯äŸããŠçºæ£ïŒããè§£ããããããããã€ãã³é¢æ°ãšãããŸãããããã¯ããã»ã«é¢æ°J_n(x)ãšãã€ãã³é¢æ°ããŸãšããŠãããã»ã«é¢æ°ããšç§°ããåè ã第1çš®ãåŸè ã第2çš®ãšåŒã¶ããšããããŸãã
ããããããã§åŸãã«äžè¬åããŠãç¹ã«æå³ã¯ãªãã®ã§ãæ¬æçš¿ã§ã¯åŒãç¶ãnãæŽæ°ã§ãããšããŠç¬¬1çš®ããã»ã«é¢æ°J_n(x)ã®ã¿ãæ±ããŸããããªãåŸã®æ¹ã§è¿°ã¹ãããã«æŽæ°æ¬¡ã®ïŒç¬¬1çš®ïŒããã»ã«é¢æ°ã«ã¯ãã®é¶ç¹ãæ±ããããšã«å®çšçãªæå³ãããããã€ãããæèšç®ã§æ±ããããªããšããæ§è³ªããããŸãããã¡æ°çç©çåŠãã¡ã³ãšããŠã¯ããã¥ãŒãã³æ³ãç¥ã£ããšãã«ããã䜿ã£ãŠèªåã§ãããã»ã«é¢æ°ã®é¶ç¹ãæ±ããŠã¿ãããšèããã®ã§ããã
4. Pythonã«ããæŽæ°æ¬¡Bessel颿°ãšãã®å°é¢æ°ã®å®è£
ãããã§ã¯ããã»ã«é¢æ°ãPython3ã§å®è£ ããŸããããã§ã¯â¡ã®çŽæ°è¡šç€ºãå©çšããŸããæ¬æ¥ã¯ç¡éåã®é ãããªãçŽæ°ã§ããæŽæ°åã®å€æ°numã§æå®ããåæ°ã®é ã§æã¡åããŸãã
# Bessel functions of the first kind in limited series expansion
def funcjn(x=0.0, n=0, num=25):
y = 0.0
if n >= 0:
for m in range(0, num+1):
coef = (-1)**m
demon = factorial(m)*factorial(m+n)
vari = (x/2)**(2*m+n)
y = y + coef*vari/demon
else:
y = (-1)**n*funcjn(x, -n, num)
return yã忝ã«ããéä¹é¢æ°factorialã¯mathã©ã€ãã©ãªããimportãããã以åååž°çããã°ã©ãã³ã°ã®äŸãšããŠç޹ä»ããããã«
def factorial(n=1):
if n<=1:
return 1
else:
return n*factorial(n-1)ãšããŠèªåã§å®çŸ©ããŸãã
ãæãããŠããã§æ£ããå®è£ ã§ããŠããã®ã調ã¹ãããã«matplotlibã©ã€ãã©ãªãå©çšããŠããããããŠã¿ãŸãã倿°numã¯ããã©ã«ãã®25ãšããŠããŸãã®ã§ç¡éçŽæ°ã®äžã®åãã®26åã®é ã«ããè¿äŒŒã§ãã
ãããã ãèŠããšãããã»ã«é¢æ°ãã§æ€çŽ¢ããŠåºãŠããã°ã©ããšåãããã«èŠããŸãããã®åŸã§ä»åã®æ¬é¡ã§ããé¶ç¹ãã€ãŸã暪軞ãšã®äº€ç¹ã®åº§æšãæ±ããããšã§å床æ£ç¢ºã«èšç®ã§ããŠããã確ãããŸãã
ã颿°J_n(x)ã¯ãã®å®çŸ©ãããé æ¹ïŒx>>1ïŒã«ãããŠæŒžè¿çã«
ãšãªãããšã瀺ãããŸãããããäžã®ã°ã©ãã®ããã«äžèšã®æéåã®é ã«ããè¿äŒŒã§ã¯xãããçšåºŠå€§ãããšããã§çºæ£ãå§ããŠããŸããŸããããã§ã¯num=25ãšãããŸãŸããããã®ç¯å²ã ããåºããŠã¿ãŸããããã®çµæããæ£ç¢ºãªå€ã®æ¬²ããåºéããã©ã¡ãŒã¿nã®å€æ¬¡ç¬¬ã§ã¯èšç®ããé ã®æ°ãå¢ãããå¥ã®å®è£ ãèããå¿ èŠãããããšãåãããŸãã
ããã¥ãŒãã³æ³ã§èšç®ãè¡ãåã«ã¯é¢æ° J_n(x)ã®å°é¢æ°ãå°å ¥ãã¹ãã§ãããããã¯æ¬¡ã®ããã«è¡ããŸãããŸãåŒâ¡ãã nâ§0ã«ã€ããŠ
ã§ãããã®äž¡èŸºãxã§åŸ®åããŠã¿ããšãå³èŸºã«ãããŠm=0ã®é ãæ¶ããããšã«æ³šæããŠ
ãæãç«ã€ããšãåãããŸããéäžã§ k=m-1ã«çœ®ãæããŸããããã®äž¡èŸºãžxã®nä¹ãä¹ããŠ
ãªã埮åã®å ¬åŒãåŸãŸããã€ãŸãããã»ã«é¢æ°ã®å°é¢æ°ã次æ°nã®ç°ãªãããã»ã«é¢æ°ãšã®å·®åã§è¡šããããšããããšã§ãã
def dfuncjn(x=0.0, m=0, num=25):
return (m/x)*funcjn(x, m, num)-funcjn(x, m+1, num)ããããå©çšããŠPythonã§ã¯é¢æ° J_n(x)ã®å°é¢æ°ãšããŠäžèšã®é¢æ°dfuncjnãå®è£
ããŠãããŸããããã§æ¬é¡ãžé²ãããã®éå
·ç«ãŠãæããŸããã
ãäœè«ã§ãããã®ä»ã«æ¯é¢æ°â¢ã®äž¡èŸºãtãxã§åŸ®åããããšã§
ãšãã£ã挞ååŒãå°ãããšãã§ããŸãããããã¯æç§æžãæŒç¿æžã«èŒã£ãŠããŸãã第2åŒã§ã¯æ¬¡æ°nãäžããããšãã§ããŸããæ¬¡æ°nã倧ããå Žåã«ã¯å·ŠèŸºãå ã»ã©ã®funcjnã®ãããªæéåã®é ã®çŽæ¥èšç®ã§è¿äŒŒããããããå³èŸºã«çç®ããŠååçŽäº€å€é åŒãååž°çææ³ã§å®è£ ãããšãã®ããã«æ¬¡æ°nã®å°ããããã»ã«é¢æ°ã®å·®åãšããæ¹ã粟床ã¯è¯ããããããŸããïŒããã¯æªæ€èšŒã§ãïŒã
5. Newtonæ³ã§æ±ããBessel颿°ã®é¶ç¹
ã以äžã¯ãã¥ãŒãã³æ³ãšããã»ã«é¢æ°ããããã®å°å
¥ïŒã€ã³ãããã¯ã·ã§ã³ïŒã§ãããããããæ¬é¡ã§ãã
ããŸããå¿ èŠãªé¢æ°ã®ã³ãŒããåæ²ããŸãã
# Bessel functions of the first kind in limited series expansion #
def funcjn(x=0.0, n=0, num=25):
y = 0.0
if n >= 0:
for m in range(0, num+1):
coef = (-1)**m
demon = factorial(m)*factorial(m+n)
vari = (x/2)**(2*m+n)
y = y + coef*vari/demon
else:
y = (-1)**n*funcjn(x, -n, num)
return y
# Derivative of Bessel functions #
def dfuncjn(x=0.0, m=0, num=25):
return (m/x)*funcjn(x, m, num)-funcjn(x, m+1, num)
# Factorial of a positive integerãïŒ
def factorial(n=1):
if n<=1:
return 1
else:
return n*factorial(n-1)# Method #
def newton1dim(f, df, x0=0.0, n=0, eps=1e-10, max_iter=1e+2):
step = 1
x = x0
x_new = x - f(x, n)/df(x, n)
while not abs(f(x_new, n)) < eps:
step += 1
x = x_new
x_new = x - f(x, n)/df(x, n)
if step >= max_iter:
break
return [x_new, step, abs(f(x_new, n)) < eps]ãããã§xã®åæå€x0ãšæ¬¡æ°nãæå®ããäžã§
sol = newton1dim(funcjn, dfuncjn, n, x0)ãšããããšã§è§£ã®ãªã¹ãsolãååŸã§ããŸãã第2ç¯ãšç°ãªã颿°funcjnã®åŒæ°ã«äžåå°æ°ç¹åã®xã®ä»ã«æŽæ°åã®nãããããnewton1dimã§ãnãæ±ãããã«ããŸããã
ããªã¹ãsolã®åèŠçŽ ã¯ãããã
sol[0]ãïŒãã¥ãŒãã³æ³ã§æ±ããããåæå€x0è¿ãã®æ ¹
sol[1]ãïŒããã«è³ããŸã§ã®ã¹ãããæ°
sol[2]ãïŒåææ¡ä»¶ãæºãããããåŠã
ãæå³ããŸãã
ãäŸãšã㊠n = 0ãx0 = 5.4ãšããŠèšç®ãããçµæããsolããã®ãŸãŸã³ãã³ãã©ã€ã³ã«åºåãããããšã§ç¢ºãããŠã¿ãŸãã
[5.520078110286313, 3, True]ããã®çµæã®æå³ãããšããã¯æ¬¡ã®éãã§ãã
åæå€x = x0ããå§ããŠãx_new = x - f(x, n)/df(x, n)ããšããä»£å ¥ã3åè¡ãªã£ãããšã§ãx_new-x ã®çµ¶å¯Ÿå€ãeps=1e-10ããå°ããããšããåææ¡ä»¶ãæºããæ ¹ xâ5.52ãæ±ããããã
ããã®çµæãããããããã®ãäžã®ã°ã©ãã§ããã·ã¢ã³è²ã®æ²ç·ã次æ°n=0ã®ããã»ã«é¢æ°J_0(x)ãç·è²ã®ããŒã¯ãåæå€x0ã®äœçœ®ããèµ€è²ã®ããŒã¯ãæ ¹ã衚ããŸãã
ãä»åã®æ¡ä»¶ã§ã¯äžæãè¡ããŸããããåæå€ã®åãæ¹æ¬¡ç¬¬ã§èšç®ã¯å€±æããŸããäŸãã°äžèšã®J_0(x)ã®å Žå xâ7.07ãæ¥µïŒå°é¢æ°ããŒãã«ãªãç¹ïŒã§ããããããã®è¿ãã«åæå€ x0ãåãã°æ¥ç·ãã»ãŒç暪ãåããŠããŸããŸãããããªããšé¢æ°funcjnãããã»ã«é¢æ°ãååã«è¿äŒŒã§ããŠãåºéå ã§æ¥ç·ã暪軞ã«äº€ãããªãããåææ¡ä»¶ãæºããæ ¹ã«å°éããŸããã
ããŸããå è¿°ã®éã颿°funcjnã¯æéåã®é ã«ããè¿äŒŒã§ããxã20ãè¶ ãããããã§æ¬ç©ã®ããã»ã«é¢æ°ãšæããã«ç°ãªãæåãå§ããŸãããã®ãããªå€åã«åæå€x0ãåããšæ¬¡ã®ããã«ãªããŸãã
[115.8601597857589, 100, False]ããã¡ãã¯æ¬¡æ° n=3ãåæå€ x0=21.0ãããã»ã«é¢æ°ã®è¿äŒŒã®æ¬¡æ° num=25 (ããã©ã«ãå€)ã§ã®èšç®äŸã§ãããã®ãããã§ã¯funcjnã ãã§ãªãdfuncjnã®åœ¢ã厩ããŠããŸã100åã®ä»£å ¥èšç®ãè¡ã£ãŠãåææ¡ä»¶ãæºããããããšãªãx=19.4ä»è¿ã®æ ¹ã«å°éã§ããŸããã§ããã
ãç¶ããŠãã 1ã€ã®æ ¹ãæ±ããã ãã§ãªããåæã«è€æ°ã®æ ¹ãæ±ããŠããã»ã«é¢æ°ã®é¶ç¹ã®è¡šãäœæããŸãããã®ããã«ãŸãæ ¹ãæ¢ãåºçºç¹ã®å€ãèŒããCSVãã¡ã€ã« sample_data.csvãäœæããŸãã
ãMacOSæšæºã®ã¢ããªNumbersã§CSVãã¡ã€ã«ãéããæ§åã§ããäžçªå·Šã®åã§ããã»ã«é¢æ°ã®æ¬¡æ°nãæå®ããŠããŸãããã®æ¬¡ã®åã¯åç¹ã®åº§æšã§ãn=0以å€ã§ã¯ãããèªæãªé¶ç¹(*)ã«ãªã£ãŠããŸããããã¯0çªç®ã®é¶ç¹ãšããŠçŽ éããããã®æ¬¡ã®åãã忬¡æ°ã®ããã»ã«é¢æ°ã®é¶ç¹ãæ±ããåæå€ãæžã蟌ãã§ããŸãããããã®å€ã¯äžã®ãããªããããå³ãèŠãªããç®åéã§éžã³ãŸããã
*è£è¶³
çŽæ°å±éåŒâ¡ãããåç¹x=0ã®è¿ãã§ããã»ã«é¢æ°J_n(x)ã¯xã®nä¹ã®å®æ°åã«è¿äŒŒãããŸãã
ãã®è¡šåŒãããåããããã«æ¬¡æ°nã0ã§ãªããã°åç¹ã«ãã㊠J_n = 0ãšãªããŸãããããnã2以äžã§ããã°åç¹x=0ã®è¿ãã§ J_n(x)èªèº«ã ãã§ãªããã®å°é¢æ°ã0ã«è¿ã¥ããŠããŸãããã¥ãŒãã³æ³ã®ä»£å ¥åŒ
å³èŸºç¬¬2é ãããŸãèšç®ã§ããŸããããã®ãã x=0ãé¶ç¹ã§ããããšã¯æãããªã®ã«æ°å€èšç®ã§ã¯ãªããªãããã«å°éããªããšããããšãèµ·ãããŸãããã®ããããã¯ãèªæãªé¶ç¹ããšããŠé£ã°ããŸãã
ãPythonã§ã¯sample_data.csvã®0åç®ã®æ¬¡æ°nãš2åç®ä»¥éã®åæå€x0ãreadããäžã§newton1dim(funcjn, dfuncjn, x0, n)ã§æ ¹ãèšç®ããæ°ããCSVãã¡ã€ã«result_data.csvãäœã£ãŠçµæãwriteããŸãããã®ãšãæ¯èŒããããããæåã®è¡ãšç¬¬0åã»ç¬¬1åãsample_data.csvããã³ããŒããŠãããåã ã®æ ¹ãæ±ããã®ã«äœ¿ã£ãåæå€ãsample_data.csvã«ãããŠå ¥ããããŠããã®ãšåãäœçœ®ã«æ ¹ã®å€ãæžã蟌ãã§ãããŸãã
[åŠçã®æµã]
ïŒ0ïŒéå§ # 䜿çšããã©ã€ãã©ãªã颿°ã®import
ïŒ1ïŒCSVãã¡ã€ã«"sample_data.csv"ãèªã¿èŸŒãã§åèŠçŽ ã2次å
ã®ãªã¹ãdata_csvã«ä¿åããã
ïŒ2ïŒç©ºã®ãªã¹ãresultsãå®çŸ©ããã
ïŒ3ïŒç®æ¬¡ã«ãªã£ãŠãã0è¡ç®ãé£ã°ãã1è¡ç®ããæçµè¡ãŸã§ã«ãããŠæ¬¡ã®æäœãè¡ãã
ã»ç©ºã®ãªã¹ãlisãå®çŸ©ããã
ã»j=2åç®ããæçµåãŸã§æ¬¡ã®æäœãè¡ãã
ã»data_csvã®0åç®ãæŽæ°åã«å€æããŠå€æ°nã«ä»£å
¥ããã
ã»åjåç®ã®èŠçŽ ãäžåå°æ°ç¹åã«å€æããŠå€æ°x0ã«ä»£å
¥ããã
ã»res = newton1dim(funcjn, dfuncjn, x0, n)ãèšç®ããã
ã»æ ¹res[0]ãlisã«è¿œå ããã
ã»lisãresultsã«è¿œå ããã
ïŒ4ïŒæ°ãã"result_data.csv"ãäœæããã
ïŒ5ïŒdata_csvã®0è¡ç®ãresult_data.csvã«æžã蟌ãã
ïŒ6ïŒdata_csvã®0åç®ãš1åç®ãresult_data.csvã«æžã蟌ãã
ïŒ7ïŒresultsã®åèŠçŽ ãresult_data.csvã«æžã蟌ãã§ããã
ïŒ8ïŒçµäºãããã§ãåŒãç¶ãnum=25ãšããŠãåºåå€ã¯å
šãŠå°æ°ç¹ç¬¬4äœãŸã§ã§äžžããŸããèšç®ãå®è¡ãäžèšã®sample_data.csvãã以äžã®åºåçµæãåŸãŸããã
ãç¹æ®é¢æ°é¢é£ã®æžç±ããããäžã®è³æïŒäŸãã°å ã»ã©æããPDFãã¡ã€ã«ã®25ããŒãžç®ã«ããã衚 3.1ãïŒãšæ¯èŒãããšããã®ç¯å²ã§ã¯æ ¹ãäžæãæ±ããããŠããããšãåãããŸãã
ã衚é¡ã®å 容ã¯ä»¥äžã«ãªããŸãããã®å ã§ã¯ç¶ããšããŠããã»ã«é¢æ°ã®ç©çåŠãžã®å¿çšãªã©ã«ã€ããŠè¿°ã¹ãŠãããŸããå³å¯ãã詳ãããããäžè¬çãªæžç±ã®è¡éãåããããšãéèŠãã説æãã¡ã€ã³ã«ãªããŸãã
ãåé ã«ãPythonã䜿ã£ãæ°å€è§£æã»ã¢ã«ãŽãªãºã ã«é¢ããæçš¿ç¬¬2匟ããšæžããŸãããããã®ç¬¬1匟ã¯ååž°çããã°ã©ãã³ã°ãšçŽäº€å€é
åŒã«é¢ããäžèšã®æçš¿ã§ããããã¡ãã§ã倧åŠã®ç©çåŠç§ã§åŠã°ããŠããç¹æ®é¢æ°ãPythonã§å®è£
ããŠããã€ãã®ãã¢ã³ã¹ãã¬ãŒã·ã§ã³ãè¡ã£ãŠããŸããèå³ã®ããæ¹ã¯åŸã»ã©ãã¡ããã芧äžããã
6. Helmholtzæ¹çšåŒãšBessel颿°
ãããã»ã«é¢æ°ã®å¿çšå ã«ã€ããŠãã¡ããšèª¬æããã«ã¯åç座æšç³»ã®åº§æšã®åãæ¹ãé¿ããŠã¯éããŸãããããã§ã¯ãã®ããšãã説æããŸãã
ã座æšã®åãæ¹ãšã¯ã€ãŸããšãã空éå
ã®ç¹ã®äœçœ®ãäœããã®æ°ã®çµã¿åããã§è¡šãæ¹æ³ã§ãããŸãåºæºãšãªãåç¹Oãæ±ºããä»»æã®PãOããèŠãŠã©ãã«ãããšèšã衚ãããèããŸãã
ã3次å
ãŠãŒã¯ãªãã空éã§ã®åº§æšã®åãæ¹ã§ãæãåãããããã®ã¯ãã®å³ã®ãããªçŽäº€åº§æšç³»Â (x, y, z)ã§ããããååŸäžäžå·Šå³ã®æ¹åã«x, y, zã®3æ¬ã®è»žãåããç¹Pã®äœçœ®ãããããã®è»žã®æ¹åã«åç¹Oããã©ãã ãé¢ããŠããïŒå€äœããŠããïŒãã衚ããŸãã
ãä»®ã«xyå¹³é¢ãå°é¢ã ãšèããŠy軞æ£ã®æ¹åãçåãšãããªãã°ãçŽäº€åº§æšç³»ã®å座æšå€æ°ã¯ãããã
ããx: ç¹Pãåç¹ããèŠãŠæ±ãžã©ãã ãå€äœããŠããã
ããy: ç¹Pãåç¹ããèŠãŠåãžã©ãã ãå€äœããŠããã
ããz: ç¹Pãåç¹ããèŠãŠçäžãžã©ãã ãå€äœããŠããã
ãšãã£ãããšãæ°å€ã§è¡šããŸããç¹Pãåç¹ãã西ãåãäžã«ããå Žåã«ã¯ããããxãyãzãè² ã«ãªããŸãã
ãããã«å¯ŸããŠåç座æšç³»Â (Ï, Ï, z)ãšã¯zã ãããã®ãŸãŸã«ãxãšyã®æå®ã®ä»æ¹ãå€ãã座æšã®åãæ¹ã§ããçŽäº€åº§æšç³»ã®å€æ°ãšã®é¢ä¿ã¯äžã®å³ã®éãã§ããå ã»ã©ãšåæ§ã®èª¬æããããªãã°ãÏïŒããŒïŒãšã¯ãç¹Pããçã£çŽãã«åç·ãäžãããŠå°é¢ãžéãããšããã®ç¹ãšåç¹Oãšã®è·é¢ãã§ãããÏïŒãã¡ã€ïŒã¯ããã®ç¹ãŸã§åç¹ããåŒããçŽç·ãçæ±ã®æ¹è§ããã©ãã ãå転ããŠããããã衚ããŸãããã®æå³åãããÏã¯ååŸãÏã¯æ¹äœè§ãšãåŒã°ããŸããå ã»ã©ã®xãyãzãæ£ã«ãè² ã«ããªãã®ã«å¯Ÿããåç座æšç³»ã®Ïã¯0ãŸãã¯æ£ãÏã¯0ãã2ÏïŒã©ãžã¢ã³ïŒã®ç¯å²ã«éãããŸãã
ããã®åº§æšã®åãæ¹ãæ¡çšããã®ã¯ãåç圢ç¶ã®ç®¡ã®äžãäŒããé»ç£æ³¢ãæµäœã ãšããåæ±åã®ç©äœå ãäŒããç±ãªã©ãæ±ãã±ãŒã¹ã§ããããããäžå¿ã«äžæ¬ã®è»žããããšèããŠãããz軞ãšããŸãã
ããããã£ãåé¡ã§é»ç£å Žã黿µå¯åºŠã枩床ååžãªã©ã®åŸãæ¹çšåŒãç«ãŠããšããŸãããããããžããã«ããã€ãã®åºæ¬çãªèŠè«ãããã°å€ãã®å Žåã«
ãšãã圢ã®ãã«ã ãã«ãæ¹çšåŒãžåž°çãããããšãã§ããŸãããã®åŒã®äžã«ããäžè§åœ¢ã®èšå·ã¯ïŒ3次å ã®ïŒã©ãã©ã·ã¢ã³ãšåŒã°ããååŸ®åæŒç®åã®èšå·ã§ãããuãçŽäº€åº§æšç³»ã®xãyãzã®é¢æ°ãšãããªãã°
ã§ãããåç座æšç³»ã®ÏãÏãzã®é¢æ°ãšãããªã
ãæãç«ã¡ãŸãã
ãããuãåžžã«0ã§ããã°åŸ®åããŠãå¥ã®æ°ããããŠã0ã®ãŸãŸãªã®ã§äžèšã®æ¹çšåŒã¯æç«ããŸãããããã¯èªæãªè§£ãšåŒã³æ®éã¯ãã以å€ã®è§£ãæ¢ããŸãããããŠãã®è§£ã¯é»ç£å Žã黿µã枩床ãšãã£ãéã®ååžã衚ããŸãã
[è£è¶³]
ãããã座æšç³»ã§ã®ã©ãã©ã·ã¢ã³ãæ±ãããšãã蚌æåé¡ããã£ãŠå€§æµã¯å埮åã®æŒç®åã ããæžããŸããã倧åæãšããŠåŸ®åæŒç®åã¯äœããã®é¢æ°ã«äœçšããŠåããŠæå³ãæã€ãã®ã§ããã®é¢æ°ãã©ããªãã®ã§ãã£ãŠãæççã«çå·ãæãç«ã€ãã颿°ãçç¥ããŠæžããŠããããšã«æ³šæãå¿ èŠã§ãã
ãæ¢ããŠçŽäº€åº§æšç³»ã§ã¯ãªãåç座æšç³»ãéžæããå Žåãããã«ã¯æçœãªæå³ããããŸãã
ããã«ã ãã«ãæ¹çšåŒã®ãããªåŸ®åæ¹çšåŒã«ã¯äžè¬ã«ç¡æ°ã®è§£ãååšãããããããŸãšããŠäžè¬è§£ãšåŒã³ãŸããããã«å¯ŸããŠå®éã®1ã€ã®ç©ççŸè±¡ãèšè¿°ããè§£ããããšãããªããããã®è§£ã®äžã®äžã€ã«ãªããŸãããã©ã®è§£ãéžã°ããããæ±ºå®ããã®ã¯åŸ®åæ¹çšåŒã§ã¯ãããŸãããåºæºãšãªãæå»ã«ãããç¶æ
ãæå®ããåææ¡ä»¶ãã颿°ãå®çŸ©ãããåºéã®ç«¯ïŒäŸãã°åç圢ç¶ã®å®¹åšã®å£é¢ïŒãªã©ã§æªç¥é¢æ°ãæºããå¢çæ¡ä»¶ã§ãã
ãåç座æšç³»ãæ¡çšãããå Žåãå žåçã«ã¯ååŸÏãããç¹å®ã®å€aã«ãªãç¹ã«ãããŠ
ãšãã圢ã®å¢çæ¡ä»¶ãä»ããŸããäŸãã°é»ç£æ³¢ãåç圢ç¶ã®ç®¡ïŒå°æ³¢ç®¡ïŒã®å åŽã«éã蟌ããããŠãããšèããå Žåã«ã¯å¢çãšãªãå£é¢ã§ãã®ãããªæ¡ä»¶ãé©çšãããããã«æããŸããããããã§çŽäº€åº§æšç³»ã®x, y, zã«æã£ãŠããã°å ã»ã©ã®å¢çæ¡ä»¶ã
ãšããããããªã£ãŠããŸããŸããããã§ã¯ãªããªã話ãé²ãŸãªãã®ã§æ®éã¯åç座æšç³»ã䜿ããŸãã
ããã£ãããªã®ã§ãã®ãããªå Žåã®ãã«ã ãã«ãæ¹çšåŒã®è§£ãæ±ããŠã¿ãŸãããããŸãåç座æšã®Ïã®ã¿ã«äŸåããfãÏã®ã¿ã«äŸåããΟïŒã°ã¶ã€ïŒãzã®ã¿ã«äŸåããγïŒã¬ã³ãïŒã®3ã€ã®å åã«ãã£ãŠé¢æ°uã
ã®ããã«åãããããšèããŸãããããåç座æšã§ã®å€æ°åé¢ãšãããŸãããã®ããã«ãããšãç¹ã«äžèšã®å¢çæ¡ä»¶ã§å³èŸºã®å®æ°ã0ã§ããã°
ã®åŠãç°¡æœã«æžãããšãã§ããŸãã
ã倿°åé¢åã®è§£ u(Ï, Ï, z) = f(Ï)Ο(Ï)γ(z)ãä»®å®ãããšãã«ã ãã«ãæ¹çšåŒã¯ãã®ããã«ãªããŸãã
ãä»ã¯é¢æ°uã0ã§ãªããšããŠããã®ã§äž¡èŸºã«1/u = 1/(fΟγ)ããããŠ
ãšããŸããããã§åé
ã«æ³šç®ãããš1ã€ç®ã¯ååŸÏã®ã¿ã«äŸåãã2ã€ç®ã¯Ïã®ãã€ãã¹2ä¹ãæãã£ãŠããããšãé€ãã°Ïã®ã¿ã«ããããŠ3ã€ç®ã¯zã®ã¿ã«äŸåããŠããããšãåãããŸãã3ã€ã®åº§æšå€æ° (Ï, Ï, z)ã¯äºãã«é£åããããšãªãäºãã«ç¬ç«ã«å€åãããã®ãªã®ã§ããã®çåŒãæãç«ã€ããã«ã¯2ã€ã®äžžã§å²ã£ãéšåãäžå®ã§ãªããã°ãããŸããã
ãããã§ÎŸ(Ï) ã®å€æ°Ïã®æ§è³ªãèãããšãÏïŒ2Ïã§äžåšããŠx軞æ£ã®æ¹åïŒçæ±ã®æ¹è§ïŒÏïŒ0ã«æ»ãããã§ããã
ãšãªã£ãŠããå¿
èŠããããŸãããããè§£ãæ±ºããã®ã«å¿
èŠãªå¢çæ¡ä»¶ã®äžã€ã§ãããããåŸ®åæ¹çšåŒãšå¢çæ¡ä»¶ã®äž¡æ¹ãæºããã®ã¯
ãªã颿°ã§ãã
ãäžæ¹ã§Î³(z)ã«ãããšåããããªæ¡ä»¶ã¯ä»ããŸããã®ã§
ã®ãããªè§£ãèããããã§ãããããã®äžã«å«ãŸããk'ãβãbã¯ãããã座æšãšç¡é¢ä¿ãªå®æ°ã§ããåŸè
ã¯åèª¿ã«æžå°ãªããå¢å ãã颿°ã§ããã®ã§ãzâ±âãšãªãé æ¹ã§ééãªã倧ãããªã£ãŠããã®ã蚱容ããªãéãã¯åè
ã®ãããªäžè§é¢æ°ã ããæ¡çšãããŸãã
ãããã§ãããã®è§£
ãå
ã»ã©äžžå°ã§å²ã£ããšãããžä»£å
¥ããããšã§
ãšãªããŸããããã§å°å ¥ããæ°ãã宿°Îºã¯ã«ãããšèªã¿ãŸããããã0ã§ã¯ãªããšä»®å®ããŠãx=κÏãšãã倿°å€æãè¡ããŸãããã®xã¯çŽäº€åº§æšç³»ã®xãšã¯å¥ç©ã§ãããæ¬¡å è§£æãããã°åããããã«ç¡æ¬¡å éã§ãã
ãããã¯ããã»ã«ã®åŸ®åæ¹çšåŒ
ã«äžèŽããŸãããããã£ãŠé¢æ°f(Ï=x/κ)ã¯ããã»ã«ã®åŸ®åæ¹çšåŒãæºãããå
ã»ã©å°ãè¿°ã¹ãããã«åç¹ Ï=0ã«ãããŠæ£åã§ãããªãã°ããã»ã«é¢æ°J_n(x=κÏ)ã®å®æ°åã«ãªããŸãããã®ãããªæ§è³ªããããã»ã«é¢æ°ãå
ã»ã©ååã ãåºãããã€ãã³é¢æ°ããããŠãããã®ç·åœ¢çµåããŸãšããŠåç颿°ãšåŒã¶ããšããããŸãã
ããããŸã§ã®è°è«ããŸãšãããšãã«ã ãã«ãæ¹çšåŒ
ã®è§£ã次ã®åœ¢ã«å®ãŸãããšãåãããŸããã
ãå
šäœã«ããã宿°ãå颿°ã®äžã«å«ãŸãã nãκãαãβããšãã£ã宿°ã¯ããããå¢çæ¡ä»¶ã«ãã£ãŠå®ãŸããŸãããããã®äžã§å
ã»ã©ã® u(Ï=a, Ï, z) = 0ãªãå¢çæ¡ä»¶ãããã°ã
ãšããæ¹çšåŒãè§£ãããšã§å®æ°Îºã®åè£ãæ±ããããããšã«ãªããŸãããã®ããããã»ã«é¢æ°ã®é¶ç¹ãæ±ããããšã¯çŽç²ã«æ°çç©çåŠçãªèå³ã ãã§ãªãå¿çšäžã®å¿ èŠæ§ãããåé¡ã«ãªããŸããããã§ããããä»åã®äž»é¡ã®æçŸ©ã«è§ŠããããŸããã
ãäžèšã®é¢æ°u(Ï, Ï, z)ã§è¡šããåŸãéãšããŠã¯ãåçåã®ç®¡ã®å
éšãäŒæããé»ç£æ³¢ã®æåãåæ±åã®ç©äœå
ã®æž©åºŠååžãåçåã®å®¹åšã®äžã«éã蟌ããããç²åã®ã·ã¥ã¬ãŒãã£ã³ã¬ãŒæ¹çšåŒã®è§£ãæããããŸãã
ããããã®ç®¡ã容åšãåç圢ç¶ã§ãªãçŽæ¹äœã§ãã£ãå Žåã«ã¯äŸãã°
ã®ããã«é¢æ°uã¯äžè§é¢æ°ã ãã§è¡šãããšãã§ããã§ããããäžè¬è§£ã¯x, y, zããããã®äžè§é¢æ°ã®ç©ãšåïŒç·åœ¢çµåïŒã«ãªããŸããå ·äœçãªè§£ã«å«ãŸããã®ãsinãªã®ãcosãªã®ããæ¯å¹ ã¯ããããããããŠ(k_x, k_y, k_z)ã®åæåã®å€ã¯ã©ããªãããšãã£ãäºæã¯è©³çްãªå¢çæ¡ä»¶ã«ãã£ãŠå®ãŸããŸãã
ããã®ããšãšã®å¯Ÿæ¯ãããããã»ã«é¢æ°ïŒäžè¬ã«ã¯åç颿°ïŒã¯åç座æšç³»ã«ãããŠçŽäº€åº§æšç³»ã®äžè§é¢æ°ãšåã圹å²ãæ ããšãèšãããŸããããå°ã詳ããèšããšåç座æšç³»ã®å€æ°Ïã®é¢æ°ãå±éãããåºåºãã«ãªããšããããšã§ããåºåºãšã¯ä»»æã®é¢æ°ãããã«ãŒã«ã«åŸã£ãŠåè§£ããæã®æ§æèŠçŽ ã«é¢ãããã®ã§ãæäœéã®æ¡ä»¶ãæºãããããã颿°ããã®çµã¿åããã§è¡šãããŸãã
ãå®ã¯ãã«ã ãã«ãæ¹çšåŒã®è§£ã§ãªããŠãåãé åå ã§å®çŸ©ãããåºåçã«é£ç¶ãªé¢æ°ã§ããã°åæ§ã«äžè§é¢æ°ã®çµã¿åããã§è¡šãããšãã§ããŸãããããããŒãªãšçŽæ°å±éãšãããŸããæäœéã®æ¡ä»¶ãæºããéãã¯ä»»æã®é¢æ°ãç¡éåã®äžè§é¢æ°ã®ç©ãåã§è¡šãããšãã§ããŠãäžã€äžã€ã®äžè§é¢æ°ããã®å±éåŒã«ãããåºåºãæ§æããŸããçŽäº€åº§æšç³»ããåç座æšç³»ã«ç§»ã£ãŠåæ§ã®ããšãèãããšããäžè§é¢æ°ãæã£ãŠããåºåºã®åœ¹å²ã¯ã©ã®ãããªé¢æ°ãæ ãã ããããšåãã°ãã®çããããã»ã«é¢æ°ã ãšããããšã§ãã
7. äžè§é¢æ°ãBessel颿°ãçBessel颿°ã®æ¯èŒ
ãåç¯ã§ã¯3次å ã®çŽäº€åº§æšç³»ãšåç座æšç³»ã察æ¯ããŠèª¬æããŠããŸãããããã®ä»ã«ãåžžçšããã座æšç³»ã«çé¢åº§æšç³»ïŒãããã¯ç座æšç³»ã3æ¬¡å æ¥µåº§æšç³»ïŒããããŸãããããŠçé¢åº§æšç³»ã§ã¯ããã»ã«é¢æ°ã«é¡äŒŒãããçããã»ã«é¢æ°ããå°ãããŸããçŽäº€åº§æšç³»ã®äžè§é¢æ°ãåç座æšç³»ã®ããã»ã«é¢æ°ããããŠçé¢åº§æšç³»ã«ãããçããã»ã«é¢æ°ã察æ¯ããããšã§æ¬æçš¿ãç· ãããããããšæããŸãã
ãçé¢åº§æšç³»Â (r, Ξ, Ï)ã§ã¯çŽäº€åº§æšç³»ã®xãyãzãå šãŠçœ®ãæãããŸãã倿°éã®é¢ä¿ã¯äžã®å³ã«æžãããéãã§ãããã®äžã§ååŸrãšã¯ã·ã³ãã«ã«åç¹Oããç¹PãŸã§ã®è·é¢ã§ãã0ãŸãã¯æ£ã®å€ãåããŸãã2ã€ããè§åºŠã®å€æ°ã®ãã¡ÎžïŒã·ãŒã¿ïŒã¯z軞æ£ã®æ¹åïŒå€©é æ¹åïŒããã©ãã ãéããè§åºŠã«ç¹Pãäœçœ®ããããæå³ããŸãããã®ããšããΞã¯å€©é è§ãšãåŒã°ãããã®å€ã¯ååšåã€ãŸã0ããÏïŒã©ãžã¢ã³ïŒã®éã«éãããŸãããããŠÏã¯åç座æšç³»ã®ãããšåãããç¹Pããçã£çŽãã«åç·ãäžãããŠå°é¢ãžéãããšããã®ç¹ãx軞æ£ã®æ¹åããã©ãã ãå転ããŠãããã衚ããŠããããã¯ãæ¹äœè§ãšåŒã°ããŠããŠ0ãã2ÏïŒã©ãžã¢ã³ïŒã®ç¯å²ã«éãããŸãã
ããããŠuãçé¢åº§æšç³»ã®rãΞãÏã®é¢æ°ã§ãããšãããšãã
ãšãªããŸãããã®ãç座æšã®ã©ãã©ã·ã¢ã³ã®å°åºãã¯ç©çåŠç§ã®äŒçµ±è¡äºã®äžã€ã§ãã
ãããã§åã³ãã«ã ãã«ãæ¹çšåŒãèããŸãããããããã¯å ã»ã©ä»¥äžã«è©±ãã·ã§ãŒãã«ããããŸããæªç¥é¢æ° u(r, Ξ, Ï)ã
ã®ããã«ååŸrã«äŸåããéšåãšãã以å€ãšã«å€æ°åé¢ããŸãããã®ãããªè§£ãèããã®ã¯é2ä¹åã®ããã³ã·ã£ã«ããããšãç察称ãªå¢çæ¡ä»¶ã課ãããŠãããšãã£ãã±ãŒã¹ã§ãã
ãå ã»ã©åç座æšç³»ã«ã€ããŠè¡ãªã£ãã®ãšäŒŒãè°è«ããååŸåº§æšã®é¢æ° R(r)ã倩é è§ãšæ¹äœè§ã®é¢æ°Y(Ξ, Ï)ããããã
ãªãæ¹çšåŒãæºããããšã瀺ãããŸãããã®äžã®xãšã¯å ã»ã©ãšåããç¡æ¬¡å éã«å€æãããååŸrã§ãããçŽäº€åº§æšç³»ã®xãšã¯å¥ç©ã§ãããããŠè§åºŠã®åº§æšå€æ°ÎžãÏã®é¢æ°Yã¯3次å çé¢èª¿å颿°ã«ãªããŸãã
ãããã§ããã«é¢æ° R(r)ãåç¹ x=0ã§æ£åã§ããããšãèŠæ±ãããšãäžèšã®æ¹çšåŒã®è§£ã¯æŽæ°æ¬¡ã®ïŒç¬¬1çš®ïŒçããã»ã«é¢æ°
ã®å®æ°åãšããããšã«ãªããŸããç¹ã«æ¬¡æ°n=0ã®å Žåã¯
ãšãªã£ãŠããããsinc 颿°ã«äžèŽããŸãããã®ä»ã®æ¬¡æ°ã«ã€ããŠã
ãæãç«ã¡ãŸãã
ãå ã»ã©ã®çŽæ°å±éã®åŒãå©çšããåç¯ã®funcjnãšåæ§ã«ãæéåã®é ã®åã§æŽæ°æ¬¡ã®çããã»ã«é¢æ°ãè¿äŒŒããŠåºåããããšãã颿°sphejnã以äžã®Pythonã®ã³ãŒãã§å®è£ ããŸããã
def sphejn(x=0.0, n=0, num=25):
y = 0.0
for m in range(0, num+1):
coef1 = (-1)**m/factorial(m)
coef2 = 2**(n+1)*factorial(m+n+1)/factorial(2*(m+n+1))
vari = x**(2*m+n)
y = y + coef1*coef2*vari
return yãããã§ç¹ã«æ¬¡æ°n=0ãšããçããã»ã«é¢æ° j_0(x)ãšã次æ°n=1ã®ããã»ã«é¢æ°J_1(x)ãããã«äžè§é¢æ°sin(x)ããããã®æŠåœ¢ãæ¯èŒããŠã¿ãŸãã
ãäžãã
ãã»Numpyã©ã€ãã©ãªã®sin颿°
ãã»èªäœã®é¢æ°funcjnãå©çšããŠåºåãã1次ã®ããã»ã«é¢æ°
ãã»èªäœã®é¢æ°sphejnãå©çšããŠåºåãã0次ã®çããã»ã«é¢æ°
ã®ããããå³ã§ãã倧æåã®Jã¯ããã»ã«é¢æ°ãå°æåã®jã¯çããã»ã«é¢æ°ã衚ããŸãããããã®æ²ç·ãäžäžã«æ¯åããŠããŸãããèŠãŠã®éããã®æ¯ãå¹
ã®å€åã®ä»æ¹ã¯äºãã«ç°ãªããŸãã
ãããã«ç¶ããŠ
ãšãã£ã颿°ãåãåºéã§ããããããŠã¿ãŸãã
ããã®ããã«å
ã»ã©ãšæ¯ã¹ãŠäºãã«ããªã䌌ãåœ¢ã®æ²ç·ãæãããŸããããããããåããããã«3çš®é¡ã®é¢æ°ã®é æ¹ (x>>1)ã«ãããæ¯ãèãã«ã¯
ãã»äžè§é¢æ°ã®æ¯ãå¹
ã¯ã©ããŸã§ãäžå®ã§ããã
ãã»ããã»ã«é¢æ°ã¯1/âxã«æ¯äŸããŠæžè¡°ããŠããã
ãã»çããã»ã«é¢æ°ã¯1/xã«æ¯äŸããŠæžè¡°ããŠããã
ãšãã£ãç¹åŸŽããããŸãã
ãå®ã¯ãããã®ããããå³ã®éãã«ã¯ãããã®é¢æ°ã®ç©ççãªæå³ãçŸããŠããŸãã
ããããŸã§
ãã»çŽäº€åº§æšç³»ã§ã¯äžè§é¢æ°ãã
ãã»åç座æšç³»ã§ã¯ããã»ã«é¢æ°ãã
ãã»çé¢åº§æšç³»ã§ã¯çããã»ã«é¢æ°ã
ãã«ã ãã«ãæ¹çšåŒã®åºæ¬çãªè§£ã«ãªããšãã話ãããŠããŸããã
ããã«ã ãã«ãæ¹çšåŒãçŸããåéã®äŸãšããŠé»ç£æ°åŠãèãããšãäžè§é¢æ°ã»ããã»ã«é¢æ°ã»çããã»ã«é¢æ°ãããèªäœã«æ¯äŸããããšãããã®ã¯é»å ŽEãç£å ŽBã®åæåã§ããæ£ç¢ºã«ã¯é»ç£å Žã®äžã§ãé»è·ã»é»æµã»ç£æ°ã¢ãŒã¡ã³ãã«ãã£ãŠçããéé»å Žã»éç£å Žã§ã¯ãªããç空äžã®é»ç£æ³¢ã®æ¯å¹ ãæããŸãããããã¯ãã¯ãã«éã§ããäžè¬ã«ç°ãªã座æšç³»ãéžã¹ã°ããšãåäžã®é»ç£å Žãèšè¿°ããã«ããŠãåæåã®é¢æ°åã¯ç°ãªã£ãŠããŸãã
ãäžæ¹ãã®åŸã®å³ã§ããããããã®ã¯é»ç£å Žã®æã€ãšãã«ã®ãŒãæ±ããåŒ
ã«ããã被ç©å颿°
ã«çžåœããŸããããã§ã¯é»å ŽEããæžããŠããŸãããç£å ŽBã«ã€ããŠãåæ§ã§ãããããã£ãéã¯é»ç£å Žã®ãšãã«ã®ãŒå¯åºŠã衚ããŠããŠãç¹ã«äžèšåŒã¯åäžã®æ³¢é·ãæã€é»ç£æ³¢ã衚ãèªç±å Žã®è§£ã«çžåœããã®ã§åç¹ã®è¿ãã§ãé ãã§ãæžè¡°ããªãã§ååžããããšã«ãªããŸãã
ãæåŸã®ããããå³ã§3çš®é¡ã®æ²ç·ãããããæžè¡°ãªããå¢å¹ ããªãã§äžå®ã®æ¯å¹ ã§äžäžåããããã«èŠããã®ã¯ãã®ããšãšé¢é£ããŠããŸãããã¡ããåäžã®äžè§é¢æ°ã»ããã»ã«é¢æ°ã»çããã»ã«é¢æ°ã§è¡šãããé»ç£æ³¢ã¯ããããå¥ã®ãã®ãªã®ã§ããããã®ãšãã«ã®ãŒå¯åºŠã®ååžã®åœ¢ãäžèŽããããšã¯ãããŸãããããã§ãåºæ¬çãªæ¯ãèãã¯äºãã«äŒŒãŠããŸãã
ããã®ãããªæ§è³ªãããããã»ã«é¢æ°ã¯åç座æšç³»ã«ãããŠãçããã»ã«é¢æ°ã¯çé¢åº§æšç³»ã«ãããŠçŽäº€åº§æšç³»ã®äžè§é¢æ°ã®ããã«äœçœ®ä»ãããããšãããŸããç¹ã«ç¬¬1çš®ãšåŒãã 颿°J_n(x)ãj_n(x)ã¯ããããã®åº§æšç³»ã§sin颿°ã«å¯Ÿå¿ãããšèšããããããäžã®å³ã§ã¯sinãšæ¯èŒããŸããã
ãããã«å¯ŸããŠãããŸã§è§ŠããŠããªãã£ã第2çš®ããã»ã«é¢æ°ïŒãããã¯ãã€ãã³é¢æ°ïŒãããã³ç¬¬2çš®çããã»ã«é¢æ°ïŒãããã¯çãã€ãã³é¢æ°ïŒã¯cosã«å¯Ÿå¿ããŸãããããã¯åç¹ã«ãããŠçºæ£ããŠããŸãããã«èŠããŠããã¯ã第1çš®ã®é¢æ°ãšåãã2ä¹ããŠxãªããx^2ãä¹ããŠã¿ãã°cosã®2ä¹ã«äŒŒãŠèŠããã¯ãã§ãã
8. çµããã«
ã以äžã®å
容ã¯åºæ¬çã«ç§èªèº«ãä»ããã¡ããã©10幎åã«å€§åŠã§ç¿ã£ãå
å®¹ãæšå¹Žããå匷ããŠããããšã«çµã³ã€ããŠãŸãšãããã®ã§ããã
ããããŸã§æžããŠããŠå°è±¡çã ã£ãããšã¯å€§ããåããŠæ¬¡ã®2ã€ã§ãã第äžã«ãã¯ãåŠçã®é ã«ã¯åŠã¶ã¹ãäºæã«å¯ŸããŠå匷æéãæ ¹æ¬çã«è¶³ããªãã£ãããã«çè§£ã»ç¿åŸããŠããªãé
ç®ã倧å€å€ãã£ããšããããšã§ãããããŠç¬¬äºã«ã¯åœæã©ãããŠãçŽåŸã§ããªããšãå°åºçè§£ã§ããªãããã«æã£ãããšã§ããèœã¡çããŠããçŽããã¡ã«éäžã§ãã£ããªãçåãè§£æ¶ããŠããŸã£ãããšã§ããåŠæ¥ã§ã¯åŸã
ã«ããŠããããšãããããŸãããããåãããªãããšæã£ããšãã«æãæ¢ããŠããŸãã®ã§ã¯ãªããåãããªããããããåŠã³ç¶ããããšãéèŠãªã®ã ãšæ¹ããŠå®æããŸããã
ãæ¬æçš¿ã§ã¯1倿°é¢æ°ã«å¯Ÿãããã¥ãŒãã³æ³ãšæŽæ°æ¬¡ã®ç¬¬1çš®ããã»ã«é¢æ°ãªã©ã«ã€ããŠè§£èª¬ãããã¢ã³ã¹ãã¬ãŒã·ã§ã³ãšããŠããã»ã«é¢æ°ã®é¶ç¹ãæ±ããŸãããèšç®ã«å¿
èŠãªã³ãŒããèšèŒããŸããã®ã§Matplotlibçã䜿çšã§ããç°å¢ã§ããã°ã³ããŒããŠåæ§ã®èšç®ãããããã詊ãããšãã§ããŸããæåŸãŸã§èªãã§ããã ãããããšãããããŸããã































































