Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

FindMaximum doesn't converge

  • To: mathgroup at smc.vnet.net
  • Subject: [mg112041] FindMaximum doesn't converge
  • From: Yaroslav Bulatov <yaroslavvb at gmail.com>
  • Date: Thu, 26 Aug 2010 06:48:46 -0400 (EDT)

The function I'm optimizing looks like one with a well defined local
maximum from ContourPlot but when I use FindMaximum, I get
FindMaximum::cvmit messages even for high WorkingPrecision and
MaxIterations, any idea why?

obj = 2/3 Log[(
     E^(-(h/Sqrt[3])) + E^(h/Sqrt[3]) + E^(-(h/Sqrt[3]) - Sqrt[2] j) +
       E^(-Sqrt[3] h + Sqrt[2] j))/(
     2 E^(-(h/Sqrt[3])) + 2 E^(h/Sqrt[3]) +
      E^(-(h/Sqrt[3]) - Sqrt[2] j) + E^(h/Sqrt[3] - Sqrt[2] j) +
      E^(-Sqrt[3] h + Sqrt[2] j) + E^(Sqrt[3] h + Sqrt[2] j))] +
   1/3 Log[(
     2 E^(-(h/Sqrt[3])) + E^(h/Sqrt[3] - Sqrt[2] j) +
      E^(-Sqrt[3] h + Sqrt[2] j))/(
     2 E^(-(h/Sqrt[3])) + 2 E^(h/Sqrt[3]) +
      E^(-(h/Sqrt[3]) - Sqrt[2] j) + E^(h/Sqrt[3] - Sqrt[2] j) +
      E^(-Sqrt[3] h + Sqrt[2] j) + E^(Sqrt[3] h + Sqrt[2] j))] +
   2/3 Log[(
     2 E^(h/Sqrt[3]) + E^(-(h/Sqrt[3]) - Sqrt[2] j) + E^(
      Sqrt[3] h + Sqrt[2] j))/(
     2 E^(-(h/Sqrt[3])) + 2 E^(h/Sqrt[3]) +
      E^(-(h/Sqrt[3]) - Sqrt[2] j) + E^(h/Sqrt[3] - Sqrt[2] j) +
      E^(-Sqrt[3] h + Sqrt[2] j) + E^(Sqrt[3] h + Sqrt[2] j))] +
   4/3 Log[(
     E^(-(h/Sqrt[3])) + E^(h/Sqrt[3]) + E^(h/Sqrt[3] - Sqrt[2] j) +
      E^(Sqrt[3] h + Sqrt[2] j))/(
     2 E^(-(h/Sqrt[3])) + 2 E^(h/Sqrt[3]) +
      E^(-(h/Sqrt[3]) - Sqrt[2] j) + E^(h/Sqrt[3] - Sqrt[2] j) +
      E^(-Sqrt[3] h + Sqrt[2] j) + E^(Sqrt[3] h + Sqrt[2] j))];
(* -1 makes more contours towards maximum *)

contourFunc[n_, p_] := Function[{min, max},
   range = max - min;
   Table[Exp[p (x - 1)] x range + min, {x, 0, 1, 1/n}]
   ];
cf = contourFunc[10, -1];
ContourPlot @@ {obj, {j, -1, 1}, {h, -1, 1}, Contours -> cf}
FindMaximum @@ {obj, {{j, 0}, {h, 0}}, Method -> "Newton",
  WorkingPrecision -> 200, MaxIterations -> 200}


  • Prev by Date: Why is Newton's method failing to "find sufficient increase in function"?
  • Next by Date: Re: "Abort Evaluation" does not work
  • Previous by thread: Re: Why is Newton's method failing to "find sufficient increase in function"?
  • Next by thread: Re: FindMaximum doesn't converge