# Is it possible to find a closed solution for this problem?

I need to find the global minimum of the following function:

eq=(sig1tr/Sqrt[3] + sig2tr/Sqrt[3] + sig3tr/Sqrt[3] - xi)^2/(
3 K) + ((Sqrt[2/3] sig1tr - sig2tr/Sqrt[6] - sig3tr/Sqrt[6] -
Sqrt[2] (A - C E^(Sqrt[3] B xi)) Cos[beta])^2 + (sig2tr/Sqrt[2] -
sig3tr/Sqrt[2] - Sqrt[2] (A - C E^(Sqrt[3] B xi)) Sin[beta])^2)/(
2 G)


Where G>0, K>0, A>0,C>0,B>0, sigtr1,sigtr2 and sigtr3 are real constants. Aditionaly sigtr1>sigtr2>sigtr3. I need to find the variables values ofxi and beta that minimizes eq.

In this question a previous discussion about a simular issue was made.

I tried this:

Minimize[eq, {xi, beta}]


and this:

dfunc = {D[eq, xi], D[eq, beta]};
Solve[dfunc == 0, {xi, beta}]


but I got no luck.

Any ideas? Is it possible to solve this analyticaly?

If we substitute numerical values to the constants and plot the funtion we get:

subst = {A -> 0.25, B -> 0.67, C -> 0.18, G -> 40, K -> 66.6667,
sig1tr -> -0, sig2tr -> -0.1, sig3tr -> -0.3};
pl = eq //. subst
Plot3D[pl, {xi, -0.5, 0.1}, {beta, 0, 2 Pi}]


• For numeric values of parameters, Minimize[eq /. {A -> 0.25, B -> 0.67, C -> 0.18, G -> 40, K -> 66.6667, sig1tr -> -0, sig2tr -> -0.1, sig3tr -> -0.3}, {xi, beta}] or Minimize[{eq, -Pi < beta <= Pi} /. {A -> 0.25, B -> 0.67, C -> 0.18, G -> 40, K -> 66.6667, sig1tr -> -0, sig2tr -> -0.1, sig3tr -> -0.3}, {xi, beta}] – Bob Hanlon Dec 22 '18 at 19:12

This is an extended comment rather than a symbolic solution. As noted in the question,

Minimize[eq, {xi, beta}]


returns unevaluated. Consider, instead, the simpler problem of minimizing eq over beta only. Then the first term in eq is a constant and can be ignored. Unfortunately,

Minimize[eq // Last, beta]


also returns unevaluated. Next, note that eq // Last is equivalent to

eq1 = c ((c1 + Cos[beta])^2 + (c2 + Sin[beta])^2);


if the constants c, c1, and c2 are appropriately defined. But, Minimize[eq1, beta] again returns unevaluated. eq1 can, however, be minimized by using the Weierstrass substitution, suggested in the link provided in the question.

eq2 = eq1 /. beta -> 2 ArcTan[u] // TrigExpand // FullSimplify
(* c ((-1 + c1)^2 + c2^2 + (4 (c1 + c2 u))/(1 + u^2)) *)
Simplify[Minimize[eq2, u], c != 0 && c1 != 0 && c2 != 0]
(* {-2 Sqrt[c^2 (c1^2 + c2^2)] + c (1 + c1^2 + c2^2),
{u -> (c c2)/(c c1 - Sqrt[c^2 (c1^2 + c2^2)])}} *)


It is natural to ask, therefore, whether the Weierstrass substitution would allow eq // Last to be minimized directly. Surprisingly, it does not. So, consider the expression,

eq5 = c ((c1 + (A - E^xi) Cos[beta])^2 + (c2 + (A - E^xi) Sin[beta])^2);
eq6 = eq5 /. beta -> 2 ArcTan[u] // TrigExpand // FullSimplify
(* c (c1^2 + c2^2 + E^(2 xi) + (A (A + 2 c1 + 4 c2 u + (A - 2 c1) u^2) -
2 E^xi (A + c1 + 2 c2 u + (A - c1) u^2))/(1 + u^2)) *)
Simplify[Minimize[eq6, u], c != 0 && c1 != 0 && c2 != 0]


It returns unevaluated, even though eq5 is equivalent to eq1 with constants appropriately defined. Moreover, Minimize[eq6, u] returns unevaluated instantly. All this suggests to me that Minimize will not even try to obtain a solution, if the expression to be minimized contains many parameters. In any case, the constants in the expression for u obtained for eq2 can be transformed algebraically to the original set of constants in eq, which we then could attempt to minimize over xi. It seems unlikely that doing so would be successful, though, because the resulting expression for eq would be complicated, transcendental, and contain very many parameters.

Using numeric values

\$Version

(* "11.3.0 for Mac OS X x86 (64-bit) (March 7, 2018)" *)

assume = -Pi < beta <= Pi;

Manipulate[
eq = (sig1tr/Sqrt[3] + sig2tr/Sqrt[3] + sig3tr/Sqrt[3] -
xi)^2/(3 K) + ((Sqrt[2/3] sig1tr - sig2tr/Sqrt[6] -
sig3tr/Sqrt[6] -
Sqrt[2] (A - C E^(Sqrt[3] B xi)) Cos[beta])^2 + (sig2tr/
Sqrt[2] - sig3tr/Sqrt[2] -
Sqrt[2] (A - C E^(Sqrt[3] B xi)) Sin[beta])^2)/(2 G) //
Simplify[#, assume] &;
{val, param} = NMinimize[{eq, assume}, {xi, beta}];
Column[{
StringForm["minimum = 1\nparameters: 2",
ScientificForm[val, 6], param],
Show[
Plot3D[eq, {xi, -2, 2}, {beta, -Pi, Pi},
PlotStyle -> Opacity[0.75],
ClippingStyle -> None,
AxesLabel -> (Style[#, 14, Bold] & /@ {"xi", "beta", "eq "})],
Graphics3D[{Blue, AbsolutePointSize[8],
Point[{xi, beta, val} /. param]}],
ImageSize -> 396]}],
Grid[{
{Control[{{A, 0.25}, 10^-3, 2, Appearance -> "Labeled"}],
Control[{{B, 0.67}, 10^-3, 2, Appearance -> "Labeled"}]},
{Control[{{C, 0.18}, 10^-3, 2, Appearance -> "Labeled"}],
Control[{{G, 40}, 10^-6, 50, Appearance -> "Labeled"}]},
{Control[{{K, 66.6667}, 10^-6, 100, Appearance -> "Labeled"}],
SpanFromLeft},
{Control[{{sig1tr, 0}, -5, 5, Appearance -> "Labeled"}],
Control[{{sig2tr, -0.1}, -5, 5, Appearance -> "Labeled"}]},
{Control[{{sig3tr, -0.3}, -5, 5, Appearance -> "Labeled"}],
SpanFromLeft}},
Alignment -> Left],
ControlPlacement -> Top]