public static void TestWood() { problemIndex = 0; int m = 4; int n = 6; double[] p = new[] { -3.0, -1.0, -3.0, -1.0 }; double[] x = new double[n]; opts[0] = Levmar.LmInitMu; opts[1] = 1E-15; opts[2] = 1E-15; opts[3] = 1E-20; opts[4] = Levmar.LmDiffDelta; Levmar levmar = new Levmar(); int ret = levmar.LevmarDif(wood, ref p, x, m, n, 1000, opts, ref info); PrintOutput(ret, m, p, info); }
public static void TestOsborne() { problemIndex = 1; double[] x33 = { 8.44E-1, 9.08E-1, 9.32E-1, 9.36E-1, 9.25E-1, 9.08E-1, 8.81E-1, 8.5E-1, 8.18E-1, 7.84E-1, 7.51E-1, 7.18E-1, 6.85E-1, 6.58E-1, 6.28E-1, 6.03E-1, 5.8E-1, 5.58E-1, 5.38E-1, 5.22E-1, 5.06E-1, 4.9E-1, 4.78E-1, 4.67E-1, 4.57E-1, 4.48E-1, 4.38E-1, 4.31E-1, 4.24E-1, 4.2E-1, 4.14E-1, 4.11E-1, 4.06E-1 }; int m = 5; int n = 33; double[] p = new[] { 0.5, 1.5, -1.0, 1.0E-2, 2.0E-2 }; opts[0] = Levmar.LmInitMu; opts[1] = 1E-15; opts[2] = 1E-15; opts[3] = 1E-20; opts[4] = Levmar.LmDiffDelta; Levmar levmar = new Levmar(); int ret = levmar.LevmarDer(osborne, jacosborne, ref p, x33, m, n, 1000, opts, ref info); // with analytic Jacobian //ret=levmar.LevmarDif(osborne, p, x33, m, n, 1000, opts, info, IntPtr.Zero); // no Jacobian PrintOutput(ret, m, p, info); }