Drexel dragonThe Math ForumDonate to the Math Forum



Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.


Math Forum » Discussions » Software » comp.soft-sys.math.mathematica

Topic: Some linear constraints seem to be ignored in function
Replies: 3   Last Post: Mar 2, 2014 1:49 AM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
Bob Hanlon

Posts: 895
Registered: 10/29/11
Re: Some linear constraints seem to be ignored in function
Posted: Feb 23, 2014 2:45 AM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply


I don't know why the search methods go outside the constraints, but you can
get better results using a Method other than the default of Automatic.


$Version


"8.0 for Mac OS X x86 (64-bit) (October 5, 2011)"


Clear[ff, T, J1, J2]


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)]);


cons = And @@ Cases[ff[lxw, lwz, c, d],

Log[x_] -> x > 0, Infinity] // Simplify


d < 1 && lwz < 1 && 1 + lwz > 0 && 1 + 2 c + d > 2 (lwz + lxw) && lxw < 1
&&
1 + lxw > 0


T = 10;
J1 = 1;
J2 = -2/10;


Off[NMinimize::nrnum]


NMinimize[{ff[lxw, lwz, c, d], cons}, {lxw, lwz, c, d}]


{-4.91624, {c -> 0.94525, d -> -0.315535, lwz -> 0.901231, lxw ->
-0.191668}}


NMinimize[{ff[lxw, lwz, c, d], cons}, {lxw, lwz, c, d},
Method -> "DifferentialEvolution"]


{-12.5767, {c -> -0.236399, d -> -0.976973, lwz -> -0.68191,
lxw -> -0.939971}}



Bob Hanlon




On Sat, Feb 22, 2014 at 3:05 AM, Daniel Stariolo
<daniel.stariolo@gmail.com>wrote:

> 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.
>
>






Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© Drexel University 1994-2014. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.