Say I have a function of four variables $f(x_1,x_2,x_3,x_4)$ and a constraint $g(x_1,x_2,x_3,x_4)$ (both are quite complicated, that's why I don't write them explicitly). I want to find the minimum value of $f$ constrained with $g$. How can I do it?
1 Answer
b1 = Ball[{0, 0, 0, 0}, 3]
b2 = Ball[{1, 1, 1, 1}, 2]
region = RegionDifference[b1, b2]
BooleanRegion[#1 && ! #2 &, {Ball[{0, 0, 0, 0}, 4],
Ball[{1, 1, 1, 1}, 2]}]
points = RandomPoint[region, 1000];
And @@ Map[RegionMember[b1, #] &, points]
\[Not] (Or @@ Map[RegionMember[b2, #] &, points])
result = Minimize[w x^3 + y z^3, {w, x, y, z} \[Element] region]
point = {w, x, y, z} /. result[[2]]
RegionMember[region, point]
RegionMember[b1, point]
RegionMember[b2, point]
Ball[{0, 0, 0, 0}, 3]
Ball[{1, 1, 1, 1}, 2]
BooleanRegion[#1 && !#2 & , {Ball[{0, 0, 0, 0}, 3],
Ball[{1, 1, 1, 1}, 2]}]
True
True
{-((243*Sqrt[3])/16), {w -> 3/2, x -> -((3*Sqrt[3])/2), y -> 0,
z -> 0}}
{3/2, -((3*Sqrt[3])/2), 0, 0}
True
True
False
NMinimize is much faster than Minimize:
{4.71875, {-((243 Sqrt[3])/16), {w -> 3/2, x -> -((3 Sqrt[3])/2),
y -> 0, z -> 0}}}
{0.203125, {-26.305522272472924, {w -> 1.499999998583872,
x -> -2.598076232994641, y -> -8.937925613796142*^-9,
z -> -1.3744853098673136*^-8}}}
Of course, I may have missed something.
f
andg
, and try to solve that problem. If you have difficulty with that, show us what you have tried, and you may well get help. $\endgroup$Minimize
,NMinimize
, andFindMinimum
. They each take constraints. $\endgroup$