iminuit-由CERN所開發的科學擬合函式庫 #2105
LeoTsai999
started this conversation in
優秀Python套件
Replies: 1 comment
-
|
我該怎麼定義擬合函數?是要根據理論公式還是根據數據找出最適合的方程式來擬合? |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
歐洲核子物理組織CERN在C++環境下所開發的ROOT函式庫,是目前高能物理界做資料分析的首選。因應C++較高的使用門檻,CERN將ROOT的部分功能重新以Python編寫成iminuit,降低其使用門檻。相較於scipy僅能進行簡單的最小平方法擬合,iminuit能夠做到更複雜的功能,例如多變數擬合、二維error bar,亦可輕鬆看到各項統計學參數,如chi-squarevalue, Hesse-error等。
函式庫之document請見:https://scikit-hep.org/iminuit/about.html
我認為任何一位理學院學生,都可以學習此函式庫的使用。相較於Origin、Matlab等商用軟體,能使用程式語言自行設計數據分析程式,應該是一位科學家必備的能力。且自行設計之數據分析程式,能讓使用者更明瞭數據經過哪些數學上的處理。
以下為一個iminuit擬合的範例:
此程式在對數據進行預處理後,定義副程式fitting_function(x, a, b, c, d)為擬合方程式。在這個例子中,
我們使用arctan 函數進行擬合。接下來利用函式LeastSquares定義擬合之數據和誤差。接著使用Minuit設定擬合初始值,並使用migrad()和hesse()進行擬和數學運算。其中migrad是用來計算函數的最小值(在此案例中用來做最小平方法),而hesse()則和誤差有關。
Beta Was this translation helpful? Give feedback.
All reactions