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. Read help file for those.