I need to come up with a solution for a rather, odd situation. Let's say I have an $M \times N$ matrix called ${\bf A}$, and I would like to solve it for ${\bf x}$ where $b_1 \le {\bf A} {\bf x} \le b_2$. However I also need to be able to put an upper and lower bound on each value in ${\bf x}$. Any suggestions? Linear programming is giving me some help, and doing well with $b_1$, but I'm having difficulty placing upper bounds on $b_2$.
1 Answer
$\begingroup$
$\endgroup$
4
Maybe
LinearProgramming[
ConstantArray[0, Last@Dimensions@A],
ArrayFlatten[{{A}, {-A}}],
Join[b1, -b2]
]
?
-
$\begingroup$ This seems to have done it, thank you very much! $\endgroup$– DanielCommented Mar 6, 2016 at 6:07
-
$\begingroup$ Doh! I just realized, I need to be able to get discrete values for certain x's. $\endgroup$– DanielCommented Mar 6, 2016 at 6:33
-
$\begingroup$ @Daniel Integer values? This is possible by the 5th argument of
LinearProgramming
... $\endgroup$– unlikelyCommented Mar 6, 2016 at 7:33 -
$\begingroup$ Never mind, I remembered how to do the last bit. Afraid it's been a while since I've used Mathematica. $\endgroup$– DanielCommented Mar 6, 2016 at 7:34
b1<=A*x<=b2
.... if you get pinged .) $\endgroup$LinearProgramming
here (mathematica.stackexchange.com/a/108655/16267). If you just want a feasible solution, without minimizing anything, you can use a zero cost vector (first argument). If you want to enforce a set constraints like $\mathbf{b}_1 \le \mathbf{Ax} \le \mathbf{b}_2$ you should double the constaints as $\mathbf{Ax} \le \mathbf{b}_2$ and $- \mathbf{Ax} \le -\mathbf{b}_1$ (second and thrid arguments). If you also want to put a lower/upper bound on each $\mathbf{x}$ component you should use the 4th argument. $\endgroup$