Java中的多峰拟合,具有高斯和洛伦兹函数

时间:2013-07-08 20:19:41

标签: java curve-fitting

我正在用Java编写程序来处理一些实验数据。我需要为这个数据拟合一个函数(使用高斯和洛伦兹),然后得到峰值的参数 - 它们的FWHM(半高全宽),高度,位置,强度(下面的区域)。有免费的图书馆,我可以用它吗?或者,例如,我可以以某种方式使用gnuplot吗?如果可能的话,我希望避免从头开始编写。

聚苯乙烯。我已经将这篇文章标记为曲线拟合,因为我找不到更好的标签,而且我无法创建新标签。

2 个答案:

答案 0 :(得分:1)

您可以查看libfityk,它是fityk的一部分(源代码at GitHub)。免责声明:我是作者。 Fityk是一个用于(多)峰拟合的程序,更普遍的是曲线拟合和xy数据分析。许可证:GPL。

你可以使用高斯,洛伦兹和许多类似函数(Voigt,Pseudo-Voigt,Pearson7,分裂高斯,分裂洛伦兹等)。

Libfityk具有SWIG生成的几种语言绑定,包括Java。但我知道只有一个人在Java中使用libfityk,该库主要用于C ++,Python和Lua。

最新的fityk manual (at RTD)包含不完整的API文档。

我不知道你在做什么,但是很多可编写脚本的程序可以进行峰值拟合,所以最快的解决办法就是选择并自动化其中一个。

答案 1 :(得分:0)

您可能还想查看与fityk具有相似范围的peak-o-mat(http://lorentz.sf.net)。 peak-o-mat是基于scipy(python)的交互式程序和拟合库。文档不完整但可以随意询问您是否遗漏了某些内容。与上述相同的免责声明:我是作者。