Fitting
同じデータを使って、CERN ROOT、Pythonのscipy、lmfit を使って正規分布でフィッティングするコードと結果を比較する。 まずは、データ生成部分 C++用 std::vector<double> vx{-3.65,-3.45,-3.35,-3.25,-3.15,-3.05,-2.95,-2.85,-2.75,-2.65,-2.55,-2.45,-2.35,-2.2</double>…
lmfit にはビルトイン (組み込み) 関数が多数用意されている。関数名を見ればだいたい何か分かるが、グラフで見れたほうが便利なので、主要な1次元の内蔵関数をグラフ化してみた lmfit.github.io グラフ化のための関数は最後に書いてあります 正規分布 / ガ…
phst.hateblo.jp の続き lmfitは、複数の2次元正規分布でもフィッティングができる gauss = lmfit.models.Gaussian2dModel(prefix="g1") params = gauss.make_params() model = gauss gauss = lmfit.models.Gaussian2dModel(prefix="g2") params.update(gaus…
phst.hateblo.jp の続編 mzfit が使っている tensorflow が重すぎなのと、モジュール読み込みに時間がかかるのと、機能的に不足する点があったのと、マルチプラットフォームであるべきという思想に反するので、lmfitを使ってマルチガウシアンでのフィッティ…
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…
phst.hateblo.jp の二次関数版 import numpy as np # データ生成 x = np.array([10.09659323, 10.40523609, 10.72069954, 11.03063238, 11.33665493, 11.6391395, 11.9381814, 12.23925842, 12.5349865, 12.82765475, 13.11407145, 13.40273189, 13.69487096…
サイエンスの界隈でよく使われているzfitと、zfitを簡単に使うためのラッパーであるmzfitを使ってみる。 pypi.org pypi.org zfitが依存しているfittingのコアの部分である ipopt はWindowsに非対応なので、WindowsユーザーはWSLなどを使ってLinux環境で実行…
任意の方程式の解、つまり func(x) = 0 になる x を探させる。解が複数ある場合も初期値から探索したときに最も近い解を返す。 from scipy.optimize import fsolve import numpy as np # 変数 beta = 0.6955076793404303 ionpair = 4886 # 方程式 func = lam…
過去のコードをより汎用的にするために修正した。 phst.hateblo.jp 小数の桁を取得して、小数点以下の有効桁数が4桁になるようにした。 gaus_sample.txt は ガウス分布のフィッティング用のサンプルデータ Sample data からダウンロードできます。 import ma…
過去に、ROOTとPythonで正規分布のフィッティングをした。 phst.hateblo.jp だが、ROOTはWindowsでx64と共存しないので、x64と共存するライブラリだけを使ったフィッティングを試みた。まずは、 ガウス分布のフィッティング用のサンプルデータ Sample data …
最新の投稿 phst.hateblo.jp 過去の投稿 phst.hateblo.jp これを少し汎用化して、リスト、ビンの数、最小値、最大値を与えて、正規分布でフィッティングする関数を作ってみた。 オプションで平均値の初期値、標準偏差の初期値、グラフを描画するかどうかを与…
まずはCERN ROOT + C++ で実装する。 お手本通り、平均値0、標準偏差1、ガウス分布(正規分布)に沿う乱数を10000個作り、ROOTのヒストグラムに詰め、 TF1 の ガウス分布 gaus でフィッティングした。オプション等は何もつけていない。も普通に結果を引用した…