警告: 整合性のない脚注開始用の簡単コード:
この警告が見当違いであれば、管理画面の 全般設定 > 脚注の開始・終了用の簡単コード > 簡単コードの整合性を検査 にある構文検査の機能を無効にしてください。
整合性のない脚注開始用の簡単コード:
“x - X0)**2 + HWHM**2) フィッティングパラメータはA, X0, HWHMの3つです。 scipy curve_fitを使ってフィッティング scipy.optimizeにあるcurve_fitを使ってフィッティングします。 curve_fitに、フィッティングする関数、フィッティングしãâ¦â
scipyã使ã£ããã¼ã¯ãµã¼ããæé©åã®ããæ¹ã«ã¤ãã¦ç´¹ä»ãã¾ãã
ãã®è¨äºãXç·åæãFTIRãªã©ãå®é¨ãã¼ã¿ã«ãã£ããã£ã³ã°ãã¦æ°å¤ãæ±ããå ´åãæ³å®ãã¦æ¸ãã¦ãã¾ãã
ãã®è¨äºãæ¸ããèæ¯
(èå³ãªãæ¹ã¯ãèªã¿é£ã°ãã¦ããã£ã¦ãããã§ã)
ã»ã¨ãã©ã®å ´åãå®é¨ãã¼ã¿ã¸ã®ãã£ããã£ã³ã°ã¯æ¸¬å®æ©ã«ä»å±ãã¦ããå°ç¨ã½ããã¦ã§ã¢ã使ç¨ããã¨æãã¾ãã
ãããããã¼ã¿ã«ãã£ã¦ã¯èªåã§ã®ãã£ããã£ã³ã°ãé£ããã£ããããããå¦çãã§ãããã¼ã¿ãä¸ã¤ãã¤ãããã£ããã£ã³ã°ã§ããªãããªã©ã®å ´åãããã¾ãã
ã ã£ãããpythonã§ãã£ããã£ã³ã°ããã°ã©ã ãèªä½ããã°ãããããªããï¼
ã¨ãããã¨ã§ãèªä½ããéã«ä¸çªè¦å´ãããã¼ã¯ãµã¼ãã¨ãã©ã¡ã¼ã¿æé©åã«ã¤ãã¦ãã¾ã¨ãã¦ãããã¨æãã¾ããã
scipyã§ãã¼ã¯ãµã¼ã
ã¾ãã¯ãscipyã§ãã¼ã¯ãµã¼ãããããæ¹ã«ã¤ãã¦ç´¹ä»ãã¾ãã
äºã¤ã®ããæ¹ãç´¹ä»ãã¾ãã
â scipy.optimizeã®curve_fitã使ã£ã¦ãã£ããã£ã³ã°ãã
â¡scipy.signalã®argrelmaxã使ã£ã¦æ¥µå¤§å¤ãã¿ã¤ãã
ã¨ãªãã¾ãã
â ã¯ãã£ããã£ã³ã°ãã颿°ãåãã£ã¦ããã¨ãã«æå¹ã§ã
â¡ã¯ãã£ããã£ã³ã°ä¸è¦ã§ãã¼ã¯ãã¿ã¤ãããã¨ãã§ãã¾ãã
scipy curve_fitã使ãå ´å
ãã£ããã£ã³ã°ãã颿°ãå®ç¾©
ãã£ããã£ã³ã°ãã颿°ãå®ç¾©ãã¾ãã
ãã¼ã¯ã¸ã®ãã£ããã£ã³ã°ã«ã¯ã¬ã¦ã¹é¢æ°ããã¼ã¬ã³ã颿°ãªã©ã使ããã¾ãã
ã¬ã¦ã¹é¢æ°
x = bã§æå¤§å¤ aãã¨ãã¾ãã
ãã¼ã¬ã³ã颿°
x = bã§æå¤§å¤aãã¨ãã¾ããã¾ããdã¯åå¤å ¨å¹ (HWHM)ã«ãªãã¾ãã
ãã¼ã¬ã³ã颿°ã§ããã°ã次ã®ããã«å®ç¾©ãã¾ãã
def lorentz_func(x, A, X0, HWHM): return A * HWHM / ((x - X0)**2 + HWHM**2)
ãã£ããã£ã³ã°ãã©ã¡ã¼ã¿ã¯A, X0, HWHMã®ï¼ã¤ã§ãã
scipy curve_fitã使ã£ã¦ãã£ããã£ã³ã°
scipy.optimizeã«ããcurve_fitã使ã£ã¦ãã£ããã£ã³ã°ãã¾ãã
curve_fitã«ããã£ããã£ã³ã°ãã颿°ããã£ããã£ã³ã°ããããã¼ã¿(x, y)ããã£ããã£ã³ã°ãã©ã¡ã¼ã¿ã®åæå¤ã夿°ã¨ãã¦ã代å
¥ãã¾ããï¼æä½éãã®4ã¤ï¼
ã¾ããcurve_fitã¯è¿ãå¤ã¨ãã¦æçµçãªãã£ããã£ã³ã°ãã©ã¡ã¼ã¿ã¨å
±åæ£ãè¿ãã¾ãã
ã³ã¼ãã¯æ¬¡ã®ããã«æ¸ãã¾ãã
param = [A_ini, X0_ini, HWHM_ini] #ãã©ã¡ã¼ã¿åæå¤ popt, pcov = curve_fit(lorentz_func, om, inte, p0=param)
poptãæé©åããããã©ã¡ã¼ã¿ã«ãªãã¾ãã
ä¾ãã°ããã¼ã¯å¤ãã¨ãxã®å¤ãç¥ããããã°popt[1]ãã¿ãã°ããã§ãã
Xç·åææ³¢å½¢ã®ãã¼ã¯ã«ãã¼ã¬ã³ã颿°ããã£ããã£ã³ã°ããçµæã
éè²ï¼ãã£ããã£ã³ã°çµæãæ©è²ï¼å®é¨ãã¼ã¿
ãã£ããã£ã³ã°ããéã®æ³¨æäºé
ãã£ããã£ã³ã°ããããã§ããã©ã¡ã¼ã¿ã®åæå¤ã®é¸ã³æ¹ãéè¦ã§ããåæå¤ããã¾ãã«ãå¤ãããã¦ããã¨ãã¾ããã£ããã£ã³ã°ã§ããªãã®ã§ãå®é¨ãã¼ã¿ãè¦ã¦ãé©åãªåæå¤ãè¨å®ãã¾ãããã
scipy argrelmaxã使ãå ´å
scipy.signalã®æ¥µå¤§å¤ãæ±ãã颿°ãargrelmaxã使ãã¨ã
curve_fitãããç°¡åã§ãã
signal.argrelmax(y, order=3)
ã§æ¥µå¤§å¤ã®ã¤ã³ããã¯ã¹ãè¿ãã¦ãã¾ãã
yã¯æ¥µå¤§å¤ãæ¢ããããã¼ã¿ãorderã¯æ¥µå¤§å¤ãæ¢ãééã§ãã
ä¾ãã°ãorder=1ã¨ãã¦ãã¾ãã¨ããã¤ãºãå¤ããã¼ã¿ã®å ´åãé常ã«å¤ãã®ç¹ããã¼ã¯ã¨å¤æããã¦ãã¾ãã¾ãã
ã¡ããã©ããå¤ã«èª¿æ´ãã¾ãããã
scipyã§å®é¨ãã¼ã¿ã¸ã®ãã£ããã£ã³ã°
ç¶ãã¦ãå®é¨ãã¼ã¿ã¸ã®ãã£ããã£ã³ã°ã®ããæ¹ãç´¹ä»ãã¾ãã
ãã§ã«ç´¹ä»ããcurve_fitãå®é¨ãã¼ã¿ã¸ã®ãã£ããã£ã³ã°ã«ä½¿ãã¾ãã
ã§ãããããã§ã¯ããã¨ã¯éãæ¹æ³ãç´¹ä»ãã¾ãã
scipy least_squaresã使ã£ããã£ããã¤ã³ã°
scipy.optimizeã®least_squaresã使ã£ã¦ãã£ããã£ã³ã°ãã¦ã¿ã¾ãããã®é¢æ°ã¯æå°äºä¹æ³ã§ãã£ããã£ã³ã°ãã颿°ã§ãï¼curve_fitãæå°äºä¹æ³ã使ã£ã¦ãã¾ãï¼ã
least_squaresã¨åããããªé¢æ°ã¨ãã¦ãleastsqã¨ãã颿°ãããã¾ããäºã¤ã®éãã¯ä½ãã¨ããã¨ãleastsqã¯ãã©ã¡ã¼ã¿ã®ç¯å²ãå¶éã§ããªãã®ã«å¯¾ãã¦ãleast_squqresã§ã¯ãã©ã¡ã¼ã¿ã®ç¯å²ãæå®ã§ããã¨ãããã¨ã§ãã
å®é¨ãã¼ã¿ã®ãã£ããã£ã³ã°ã§ã¯ããç¨åº¦ãã©ã¡ã¼ã¿ã®åãããç¯å²ã決ã¾ã£ã¦ãã¾ãã®ã§ãleast_squaresã使ç¨ããã®ãè¯ãã¨æãã¾ãã
least_squaresã®ä½¿ãæ¹
ã¾ãã¯ããã£ããã£ã³ã°ãã颿°ãå®ç¾©ãã¾ãã
curve_fitã¨éãã®ã¯ããã£ããã£ã³ã°ãã颿°ã¨å®é¨ãã¼ã¿ã®å·®åã®é¢æ°ãå®ç¾©ãã¾ãã
ä¾ãã°ã
def fitting_func(x, a, b, c): f = a*x**2 + b*x + c return f def ls_res(a, b, c, x, y): r = y - fitting_func(x, a, b, c) return r
ã®ããã«å®ç¾©ãã¾ãã
次ã«ãã©ã¡ã¼ã¿ã®ç¯å²ãå®ç¾©ãã¾ãã
ãã©ã¡ã¼ã¿ã®ç¯å²ã¯ãããããã®ä¸éã¨ä¸éãé
åã§å®ç¾©ãã¾ãã
ä¾ãã°ã
ã®å ´åã
b = ([-1, 0, -np.inf], [1, np.inf, np.inf])
ã¨ãªãã¾ãã
ããã¦ã
param = [a_ini, b_ini, c_ini] b = ([-1, 0, -np.inf], [1, np.inf, np.inf]) le_lsq = least_squares(les_res, param, args=(x, y), bounds=b)
ã§ãã£ããã³ã°ãéå§ããã¾ãã
ãã£ããã£ã³ã°çµæã¯ã
popt = le_lsq.x
ã§åãåºãã¾ãã
ã¾ã¨ã
å®é¨ãã¼ã¿ã®ãã¼ã¯ãµã¼ãã®ããæ¹ããã£ããã£ã³ã°ã®æ¹æ³ãç´¹ä»ãã¾ããã
çãããèªä½ã§ãã£ããã£ã³ã°ã½ãããä½ãæã®åèã«ãªãã°å¹¸ãã§ãã
åèãã¼ã¸
ãã¼ã¬ã³ã颿°ã§ã®ãã£ããã£ã³ã°
https://qiita.com/yokotani/items/f8920f65b1037ec7009d
argrelmaxã§ãã¼ã¯ã®æ½åº
https://qiita.com/wrblue_mica34/items/e174a71570abb710dcfb
Xç·åææ³¢å½¢ãpythonã§è¨ç®
https://sciencompass.com/phys-engineer/semiconductor_physics/xrayutilities_1Â â
https://sciencompass.com/phys-engineer/semiconductor_physics/xrayutilities_2

