Java 指数拟合与apachecommons数学

Java 指数拟合与apachecommons数学,java,math,apache-commons-math,Java,Math,Apache Commons Math,我试图用公式A*EXP(-BX)对各个点(x,y)进行指数拟合,试图找到最适合我的点的A和B double[] xx = curveFitter.fit(new ParametricUnivariateFunction() { public double value(double v, double... doubles) { return doubles[0] * Math.exp(-1 * doubles[1] * v)

我试图用公式A*EXP(-BX)对各个点(x,y)进行指数拟合,试图找到最适合我的点的A和B

double[] xx = curveFitter.fit(new ParametricUnivariateFunction() {
                public double value(double v, double... doubles) {
                    return doubles[0] * Math.exp(-1 * doubles[1] * v);
                }

                public double[] gradient(double v, double... doubles) {
                    return new double[]{v, 1};
                }
            }, new double[]{0, 0});
我得到了一些数字,但它们在任何方面都不符合我的观点,似乎找不到关于上述内容的任何文档


使用commons-math3-3.0

如果您试图估计这一点,我建议您使用y的对数,这将为您提供一个图表

y' = log(y) = A - B * x;
由此可以计算坡度和截距

slope = sum((x - mean(x)) * (y' - mean(y')) / sum((x - mean(x))^2) // -B

intercept = mean(y' - x * slope) // A

用你的公式,然后用多项式代替,谢谢!