我必须将高斯曲线拟合到预期有1个峰值的数据点。数据点可以在y方向上具有任意偏移。
我正在使用org.apache.commons.math3
包。但是,在创建GaussianCurveFitter
实例时,只能传递以下初始猜测值:
现在我走到这一步:
import org.apache.commons.math3.fitting.GaussianCurveFitter;
import org.apache.commons.math3.fitting.WeightedObservedPoints;
public void fitGaussian(double[] data) {
WeightedObservedPoints obs = new WeightedObservedPoints();
//add data points
for (int j = 0; j < data.length; j++) {
obs.add(j, data[j]);
}
//fit gaussian curve
double[] parameters = GaussianCurveFitter.create().fit(obs.toList());
}
此处parameters
包含上述值(Normalization,Mean,Sigma)。
有没有人知道如何将y方向的偏移量作为自由优化参数包含在内?或者也许如何转换原始数据点以适应优化器?
感谢您的帮助!