Hi Ted, Thanks a lot for your suggestion but I need to add it using java.
Thanks again . 2014-08-14 2:22 GMT-03:00 Ted Dunning <[email protected]>: > Have you considered using an interactive system like R, Matlab or Octave? > > You might be happier. > > Or even have you considered goal search in Excel? > > > > > On Wed, Aug 13, 2014 at 6:08 PM, South Light <[email protected]> > wrote: > > > Hi, > > > > May be someone can help me with this problem. > > > > Given the follow function: y = 10 ^ ((x + 82) / (-10 * A)) > > > > I would like to found the A value witch curve fit better for a set of x,y > > values, usually the set is about 20 to 25 x,y values. > > > > I use the CurveFitter class and the ParametricUnivariateFunction > > > > > > ParametricUnivariateFunction function = new > ParametricUnivariateFunction() > > { > > > > > > @Override > > > > public double[] gradient(double x, double[] params) { > > > > (????? comment) > > > > } > > > > > > @Override > > > > public double value(double x, double[] params) { > > > > > > double a = params[0]; > > > > > > return Math.pow(10, ((x + 82) / > > ( > > -10 * > > a > > ) > > )); > > > > > > } > > > > }; > > > > LevenbergMarquardtOptimizer optimizer = new > LevenbergMarquardtOptimizer(); > > > > CurveFitter<ParametricUnivariateFunction> fitter = new > > CurveFitter<ParametricUnivariateFunction>(optimizer); > > > > double[] x = { > > -82 > > , > > -85 > > , > > -89 > > }; > > > > double[] y = { > > 1 > > , > > 1.4 > > , > > 2 > > }; > > > > for (int i = 0; i < x.length; i++) > > > > fitter.addObservedPoint(x[i], y[i]); > > > > double[] result = fitter.fit(function, new double[] { 1, 10 }); > > > > > > > > A. Is this the best way to solve the problem or there's another better > > way? > > > > B. What do we need to write on the gradient area (????? comment) ? > > > > Any help will be more then welcome. > > > > Many thanks !! > > >
