*HI Gilles Sadowski,*
@Overridepublic double[] fit(Collection<WeightedObservedPoint> points) { final double[] p = super.fit(points); return new double[] { constrainedM.value(p[0]), constrainedK.value(p[1]), p[2] }; } This method Just maps the end result to the range I want.I think I need to let the return value of the fit method fall within the set range, rather than processing the return value of the fit method twice. Just like example: @Overridepublic double[] fit(Collection<WeightedObservedPoint> points) { return super.fit(points);} The above method returns a value that is directly in the range of the parameter variable I want. Regards, Qiqi