final double[] w = new double[dataset.getNumObservations()];
Arrays.fill(w, 1.0);
final double[][] data = dataset.getData();
final double[] initial = dataset.getStartingPoint(0);
final MultivariateDifferentiableVectorFunction problem;
problem = dataset.getLeastSquaresProblem();
final PointVectorValuePair optimum;
optimum = optimizer.optimize(100, problem, data[1], w, initial);
final double[] actual = optimum.getPoint();