その形状に寄与している n 個の曲線を持つ曲線があるとしましょう。NMR ピークを扱う私の基本的な例では、3 つのピークが定義されています。
ここでは、これら 3 つのピークを一度にフィッティングするために次の方法を使用しました。
def lor_3(x, R1, F1, R2, F2, R3, F3):
return (R1) / (R1**2 + 4 * np.pi**2 * (x-F1)**2) +\
(R2) / (R2**2 + 4 * np.pi**2 * (x-F2)**2) +\
(R3) / (R3**2 + 4 * np.pi**2 * (x-F3)**2)
popt, pcov = optimize.curve_fit(lor_3, X, y, p0=[11, 750, 5.5, 800, 11, 850])
この種のピークにうまく適合するコード。ただし、より複雑なケースがある場合:
その後、状況はそれほど簡単ではありません。ケースに応じて、1、2、3、6、または合計曲線に寄与する任意のピークを使用して、多くの関数を定義する必要があります。
scipy.optimize.curve_fit または他の Python ツールを使用して N - 曲線の適合を実行する最適な方法はありますか?
ありがとう!