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}