2

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

附言。我已将这篇文章标记为曲线拟合,因为我找不到更好的标签,而且我无法制作新标签。

4

2 回答 2

1

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

您可以拟合 Gaussian、Lorentzian 和许多类似的函数(Voigt、Pseudo-Voigt、Pearson7、split-Gaussian、split-Lorentzian 等)。

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

最新的fityk 手册(在 RTD)包括不完整的 API 文档。

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

于 2013-07-10T23:26:20.193 回答
0

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

于 2013-07-16T16:40:31.920 回答