2017-04-15 99 views
0

我想知道是否有人能給我看一種將多條高斯曲線擬合成包含6個峯值的數據集的方法(數據來自銅金合金晶體的衍射圖案)。我現在的方式涉及使用多個高斯方程相加,這意味着在曲線擬合時我必須給出多個值的猜測。曲線擬合高斯到6個峯值的總和

+0

嘗試在谷歌搜索「非線性曲線擬合python」 – Craig

+0

您可以擬合高斯混合模型(GMM)到您的數據,但請記住它不一定會找到您期望的結果。請參閱sklearn.mixture.GaussianMixture –

+1

您可能會發現lmfit有用。請參閱https://lmfit.github.io/lmfit-py/builtin_models.html#example-3-fitting-multiple-peaks-and-using-prefixes,例如適合2個高斯和指數衰減。應該很容易擴展到更多高斯。 –

回答

0

我已經成功地使用遺傳算法來搜索誤差空間並找到scipy的Levenberg-Marquardt非線性求解器的初始參數估計值。現在最新版本的scipy包括我一直使用的差分進化遺傳算法。它需要對先前擬合的數據集進行一些試驗,以調整諸如種羣大小或遺傳交叉策略之類的東西,但是您應該有辦法讓計算機以這種方式找到初始參數估計值。它需要一段時間才能運行,所以放過一夜,但它可以自動化。