Re: Symbolic Constrained Maximization

• To: mathgroup at smc.vnet.net
• Subject: [mg58875] Re: Symbolic Constrained Maximization
• From: "Mukhtar Bekkali" <mbekkali at gmail.com>
• Date: Thu, 21 Jul 2005 15:46:05 -0400 (EDT)
• References: <dbicog\$bev\$1@smc.vnet.net><dbnii1\$hjg\$1@smc.vnet.net>
• Sender: owner-wri-mathgroup at wolfram.com

```Assume your objective function is f[X] where X={x1,x2,x3,x4} and g[X]
are constraints.  You create FOC=D[f[x],X] as your first order
conditions.  If your admissable solutions set for X is unbounded on one
side, say [0,infinity) then you write Reduce[{FOC<=0,X>=0,g[X]},X].
Notice that I used less than or equal sign. If some solutions are
corner it should give you those.  However, if your solution set for X
is bounded on both sides, say a proportion in [0,1] interval then you
might have to play around with Reduce.  For example, if solutions x1
and x4 are potentially corner, say x1=0 and x4=1, then you use
Reduce[{FOC[[1]]<=0,FOC[[2]]==0,FOC[[3]]==0,FOC[[4]]>=0,0<=X<=1,g[X]},X].

Please note that Reduce may take long to solve. If you know for sure
that x1=0 and x4=1 then incorporate this information like this
Reduce[{FOC[[2]]==0,FOC[[3]]==0,x1=0,x4=1,x1>0,x2>0,g[X]},X]. It will
be a lot faster. If you know your solution is ordered then also put
that in Reduce, like 0<x1<x2<x3<x4<1, or if you know restrictions on
parameter space, say parameter m>2, then put it inside Reduce as well.
I also add options Reals and Backsubstitution->True.  Remember, the
more you put the less time it should take to solve your problem.

You can use your solutions later by applying ToRules and Part commands.