# When can you guarantee Minimize outputs the global minimum? [closed]

In the Minimize documentation, it's stated that "Minimize will return exact results if given exact input. With approximate input, it automatically calls NMinimize."

What is an approximate input?

Here is a Mathematica code:

Minimize[-1 - 96 a12^2 - 256 a12^4 - 96 a13^2 - 1536 a12^2 a13^2 -
256 a13^4 - 1536 a12 a13 a23 - 96 a23^2 - 1536 a12^2 a23^2 -
1536 a13^2 a23^2 - 256 a23^4 +
343.04 (1 + 6 a12^2 + a12^4 + 6 a13^2 + 6 a12^2 a13^2 + a13^4 +
24 a12 a13 a23 + 6 a23^2 + 6 a12^2 a23^2 + 6 a13^2 a23^2 +
a23^4), {a12, a13, a23}]

Output:

{342.04, {a12 -> -5.84843*10^-25, a13 -> -1.68795*10^-23,
a23 -> 2.5292*10^-24}}

This is only a local minima. The polynomial attains a lower value, as can be seen by:

-1 - 96 a12^2 - 256 a12^4 - 96 a13^2 - 1536 a12^2 a13^2 - 256 a13^4 -
1536 a12 a13 a23 - 96 a23^2 - 1536 a12^2 a23^2 -
1536 a13^2 a23^2 - 256 a23^4 +
343.04 (1 + 6 a12^2 + a12^4 + 6 a13^2 + 6 a12^2 a13^2 + a13^4 +
24 a12 a13 a23 + 6 a23^2 + 6 a12^2 a23^2 + 6 a13^2 a23^2 +
a23^4) /. a12 -> -1.9006784725356818 /.
a13 -> -1.9006784725356818 /. a23 -> -1.9006784725356818

giving

-520.759

Does Mathematica assume 343.04 to be an approximate input? The following code (where I changed 343.04 to 34304/100 in the above code):

Minimize[-1 - 96 a12^2 - 256 a12^4 - 96 a13^2 - 1536 a12^2 a13^2 -
256 a13^4 - 1536 a12 a13 a23 - 96 a23^2 - 1536 a12^2 a23^2 -
1536 a13^2 a23^2 - 256 a23^4 +
34304/100 (1 + 6 a12^2 + a12^4 + 6 a13^2 + 6 a12^2 a13^2 + a13^4 +
24 a12 a13 a23 + 6 a23^2 + 6 a12^2 a23^2 + 6 a13^2 a23^2 +
a23^4), {a12, a13, a23}]

seems to give the global minimum :

{-1 + (2 (9666857885 - 82223496 Sqrt[62862]))/
42128975, {a12 ->
Root[{-786971886042052 - 966685788500 # + 1053224375 #^2& ,
2204297 + 425 # + 8020656 #2 + 7260432 #2^2 + 2134656 #\
2^3 + 129472 #2^4& }, {1, 3}],
a13 -> Root[{-786971886042052 - 966685788500 # + 1053224375 #^2& ,
2204297 + 425 # + 8020656 #2 + 7260432 #2^2 + 2134656 #\
2^3 + 129472 #2^4& , \
-1018313735738200449659774784 + 5698645395376234941626400 #\
- 11083614190038055995575404032 #2^2 + 1986326192315901090412800 # #\
2^2 - 8185110530032055693037662208 #2^4 + 611388495811547593574400 # #\
2^4 - 3048372220893668754063261696 #2^6 + 90939810999678739660800 # #\
2^6 - 600354216916620229531926528 #2^8 + 16135439394594009907200 # #\
2^8 - 63323209195296300000608256 #2^10 - 1872571526540616829763584 #\
2^12 - 11083614190038055995575404032 #3^2 + 1986326192315901090412800 #\
#3^2 + 4287462015822562049825673216 #2^2 #\
3^2 + 25764211964617179859814400 # #2^2 #\
3^2 - 36816286729444655930532790272 #2^4 #\
3^2 + 6807253648032933916262400 # #2^4 #\
3^2 - 11381778914420444732185116672 #2^6 #\
3^2 + 24203159091891014860800 # #2^6 #\
3^2 - 348277650574129650003345408 #2^8 #\
3^2 - 16853143738865551467872256 #2^10 #\
3^2 - 8185110530032055693037662208 #3^4 + 611388495811547593574400 # #\
3^4 - 36816286729444655930532790272 #2^2 #\
3^4 + 6807253648032933916262400 # #2^2 #\
3^4 + 77912326749562233967540174848 #2^4 #\
3^4 + 32270878789188019814400 # #2^4 #\
3^4 - 3034907126649757422292303872 #2^6 #\
3^4 - 43537287992069341292003328 #2^8 #\
3^4 - 3048372220893668754063261696 #3^6 + 90939810999678739660800 # #\
3^6 - 11381778914420444732185116672 #2^2 #\
3^6 + 24203159091891014860800 # #2^2 #\
3^6 - 3034907126649757422292303872 #2^4 #\
3^6 - 58986003086029430137552896 #2^6 #\
3^6 - 600354216916620229531926528 #3^8 + 16135439394594009907200 # #\
3^8 - 348277650574129650003345408 #2^2 #\
3^8 - 43537287992069341292003328 #2^4 #\
3^8 - 63323209195296300000608256 #3^10 - 16853143738865551467872256 #\
2^2 #3^10 - 1872571526540616829763584 #3^12& }, {1, 3, 2}],
a23 -> Root[{-786971886042052 - 966685788500 # + 1053224375 #^2& ,
2204297 + 425 # + 8020656 #2 + 7260432 #2^2 + 2134656 #\
2^3 + 129472 #2^4& , \
-1018313735738200449659774784 + 5698645395376234941626400 #\
- 11083614190038055995575404032 #2^2 + 1986326192315901090412800 # #\
2^2 - 8185110530032055693037662208 #2^4 + 611388495811547593574400 # #\
2^4 - 3048372220893668754063261696 #2^6 + 90939810999678739660800 # #\
2^6 - 600354216916620229531926528 #2^8 + 16135439394594009907200 # #\
2^8 - 63323209195296300000608256 #2^10 - 1872571526540616829763584 #\
2^12 - 11083614190038055995575404032 #3^2 + 1986326192315901090412800 #\
#3^2 + 4287462015822562049825673216 #2^2 #\
3^2 + 25764211964617179859814400 # #2^2 #\
3^2 - 36816286729444655930532790272 #2^4 #\
3^2 + 6807253648032933916262400 # #2^4 #\
3^2 - 11381778914420444732185116672 #2^6 #\
3^2 + 24203159091891014860800 # #2^6 #\
3^2 - 348277650574129650003345408 #2^8 #\
3^2 - 16853143738865551467872256 #2^10 #\
3^2 - 8185110530032055693037662208 #3^4 + 611388495811547593574400 # #\
3^4 - 36816286729444655930532790272 #2^2 #\
3^4 + 6807253648032933916262400 # #2^2 #\
3^4 + 77912326749562233967540174848 #2^4 #\
3^4 + 32270878789188019814400 # #2^4 #\
3^4 - 3034907126649757422292303872 #2^6 #\
3^4 - 43537287992069341292003328 #2^8 #\
3^4 - 3048372220893668754063261696 #3^6 + 90939810999678739660800 # #\
3^6 - 11381778914420444732185116672 #2^2 #\
3^6 + 24203159091891014860800 # #2^2 #\
3^6 - 3034907126649757422292303872 #2^4 #\
3^6 - 58986003086029430137552896 #2^6 #\
3^6 - 600354216916620229531926528 #3^8 + 16135439394594009907200 # #\
3^8 - 348277650574129650003345408 #2^2 #\
3^8 - 43537287992069341292003328 #2^4 #\
3^8 - 63323209195296300000608256 #3^10 - 16853143738865551467872256 #\
2^2 #3^10 - 1872571526540616829763584 #3^12& , \
-8576 + 25 # - 49056 #2^2 - 2176 #2^4 - 49056 #3^2 - 13056 #2^2 #\
3^2 - 2176 #3^4 - 167424 #2 #3 #4 - 49056 #4^2 - 13056 #2^2 #\
4^2 - 13056 #3^2 #4^2 - 2176 #4^4& }, {1, 3, 2, 2}]}}

Is this indeed the global minimum?

• Welcome to Mathematica StackExchange! You are correct: 343.04 is an approximate input and 34304/100 is an exact one. You can read more about it here or here. Apr 26 at 16:12
• Exact (real or complex) numbers contain only integers, rationals, or Root expressions. The Precision of an exact number is Infinity. Apr 26 at 16:34
• According to the documentation, Minimize gives the global minimum for expressions with exact numbers only. Otherwise, it calls NMinimize`, which does not always find the global minimum. On this basis, your final, lengthy answer is a global minimum. Apr 27 at 4:44
• For exact vs. approximate numbers, see reference.wolfram.com/language/tutorial/Numbers.html May 8 at 17:42