MathGroup Archive 2014

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

Search the Archive

Some linear constraints seem to be ignored in function NMinimize with

  • To: mathgroup at smc.vnet.net
  • Subject: [mg132366] Some linear constraints seem to be ignored in function NMinimize with
  • From: Daniel Stariolo <daniel.stariolo at gmail.com>
  • Date: Sat, 22 Feb 2014 03:05:33 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • Delivered-to: l-mathgroup@wolfram.com
  • Delivered-to: mathgroup-outx@smc.vnet.net
  • Delivered-to: mathgroup-newsendx@smc.vnet.net

I'm trying to minimize a non-linear function of four variables with some linear constraints. Mathematica 8 is unable to find a good solution giving complex values of the function at some point in the iteration. This implies that one or some contraints are not being enabled in the process. Is this a bug or limitation of the optimization function ?

Function to minimize is

ff[lxw_, lwz_, c_, d_] := - J1 (lxw + lwz) - 2 J2 c +
  T (-Log[2] - 1/2 (1 - lxw) Log[(1 - lxw)/4] -
     1/2 (1 + lxw) Log[(1 + lxw)/4] -
     1/2 (1 - lwz) Log[(1 - lwz)/4] -
     1/2 (1 + lwz) Log[(1 + lwz)/4] + 1/2 (1 - d) Log[(1 - d)/16] +
     1/8 (1 + 2 c + d - 2 lwz - 2 lxw) Log[
       1/16 (1 + 2 c + d - 2 lwz - 2 lxw)])

where

T = 10;
J1 = 1;
J2 = -0.2;

are constant parameters. Then I try

NMinimize[{ff[lxw, lwz, c, d],
  2 c + d - 2 lwz - 2 lxw  >= -0.999 && -0.999 <= lxw <=
   0.999 && -0.999 <= lwz <= 0.999 && -0.999 <= c <= 0.999 &&
  d <= 0.9999}, {lxw, lwz, c, d}]

with the result

NMinimize::nrnum: "The function value 5.87777-4.87764 I is not a real number at {c,d,lwz,lxw} = {-0.718817,-1.28595,0.69171,-0.932461}."

I would appreciate if someone can give a hint at what is happening here.



  • Prev by Date: EventHandler and keyboard events
  • Next by Date: Re: can we use ListVectorPlot to plot arrows? (tail at
  • Previous by thread: EventHandler and keyboard events
  • Next by thread: Re: Some linear constraints seem to be ignored in function