はじめに
Jupyter WidgetsであるipywidgetsのIntSliderで多項式近似の次数を調整してフィッティングする方法について紹介する。多項式近似にはlmfitのPolynomialModelを使用した。
解説
モジュールのインポートなど
バージョン
データの生成
sin関数データを作成する。
データを表示すると以下のようになる。

3次の多項式で近似
例として、3次の多項式で近似した結果を示す。
lmfitのPolynomialModel(3)を定義し、model.guess()でパラメータを設定したのちに、model.fit()でフィッティングを行う。ax.text()で決定係数を表示した。

Intsliderで次数を変化させてフィット
IntSlider(min=1, max=7,step=1,value=3,description=”degree”)とし、1から7の範囲で1刻みにスライダーを動かせるようにする。description=”degree”でスライダーの左に表示される説明文をdegree(次数)とした。
スライダーを動かすたびに、ax.cla()で図を消し、フィッティングを行って結果を表示している。
得られるパラメータの値はDataFrameにしてdisplay()で表示した。
animationで示すと下のようになる。
参考

[lmfit] 12. 多項式モデルによるカーブフィッティング
lmfitは非線形最小二乗法を用いてカーブフィットするためのライブラリであり、Scipy.optimize.curve_fitの拡張版に位置する。ここでは、lmfitでデータを多項式モデルによりカーブフィッティングする方法について説明する。

[lmfit] 17. フィッティングして得られたパラメータをDataFrameに変換する
lmfitは非線形最小二乗法を用いてカーブフィットするためのライブラリであり、Scipy.optimize.curve_fitの拡張版に位置する。ここでは、lmfitによるカーブフィッティングで得られたパラメータをpandasのDataFrameに変換する方法について説明する。
Built-in Fitting Models in the models module — Non-Linear Least-Squares Minimization and Curve-Fitting for Python
Widget List — Jupyter Widgets 8.1.5 documentation
コメント