commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ole Ersoy <ole.er...@gmail.com>
Subject [Math] LevenbergMarquardtOptimizerTest Question
Date Fri, 04 Feb 2011 02:13:31 GMT
Hi,

I have a few questions regarding the implementation of the quadratic problem in the org.apache.commons.math.optimization.general.LevenbergMarquardtOptimizerTest.

I assume the quadratic is defined as:
f(x) = a*x^2 + b*x + c

This is the implementation of the jacobian function:

         private double[][] jacobian(double[] variables) {
             double[][] jacobian = new double[x.size()][3];
             for (int i = 0; i < jacobian.length; ++i) {
                 jacobian[i][0] = x.get(i) * x.get(i);
                 jacobian[i][1] = x.get(i);
                 jacobian[i][2] = 1.0;
             }
             return jacobian;
         }

It seems like the lines

                 jacobian[i][0] = x.get(i) * x.get(i);
                 jacobian[i][1] = x.get(i);
                 jacobian[i][2] = 1.0;

Really should be:

                 jacobian[i][0] = 2 * x.get(i) * variables[0];
                 jacobian[i][1] = variables[1];
                 jacobian[i][2] = 0;

Does that make sense?

My second question has to do with the value function below:

         public double[] value(double[] variables) {
             double[] values = new double[x.size()];
             for (int i = 0; i < values.length; ++i) {
                 values[i] = (variables[0] * x.get(i) + variables[1]) * x.get(i) + variables[2];
             }
             return values;
         }

Should this:

values[i] = (variables[0] * x.get(i) + variables[1]) * x.get(i) + variables[2];

Really be:

values[i] = (variables[0] * x.get(i)*x.get(i) + variables[1]) * x.get(i) + variables[2];

Thanks,
- Ole

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org


Mime
View raw message