物理の駅 Physics station by 現役研究者

テクノロジーは共有されてこそ栄える

Fitting

Python lmfitを使って、マルチガウシアンでフィッティングする

phst.hateblo.jp の続編 mzfit が使っている tensorflow が重すぎなのと、モジュール読み込みに時間がかかるのと、機能的に不足する点があったのと、マルチプラットフォームであるべきという思想に反するので、lmfitを使ってマルチガウシアンでのフィッティ…

Python lmfitを使って、2次元ヒストグラムを2次元正規分布でフィッティングする (1次元も)

qiita.com lmfit.github.io pip3 install lmfit で lmfitをインストールする コード import numpy as np import lmfit from lmfit.lineshapes import gaussian2d, lorentzian import matplotlib.pyplot as plt npoints=10000 np.random.seed(0) x = np.rando…

Python +mzfit (zfit) で マルチガウシアンフィッティング

サイエンスの界隈でよく使われているzfitと、zfitを簡単に使うためのラッパーであるmzfitを使ってみる。 pypi.org pypi.org zfitが依存しているfittingのコアの部分である ipopt はWindowsに非対応なので、WindowsユーザーはWSLなどを使ってLinux環境で実行…

Pythonで、正規分布でフィッティングする汎用的な関数を作ってみる 2

過去のコードをより汎用的にするために修正した。 phst.hateblo.jp 小数の桁を取得して、小数点以下の有効桁数が4桁になるようにした。 gaus_sample.txt は ガウス分布のフィッティング用のサンプルデータ Sample data からダウンロードできます。 import ma…

Python3でROOTと同様にフィッティングとパラメータの標準誤差を算出する

まずはCERN ROOT + C++ で実装する。 お手本通り、平均値0、標準偏差1、ガウス分布(正規分布)に沿う乱数を10000個作り、ROOTのヒストグラムに詰め、 TF1 の ガウス分布 gaus でフィッティングした。オプション等は何もつけていない。も普通に結果を引用した…