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 !!
> >
>

Reply via email to