# Can't we find the range of values for this formula?

This algebraic expression is as follows:

s=a/(a + b + c) + b/(b + c + d) + c/(a + c + d) + d/(
a + b + d)


where the parameters a, b, c, and d are all greater than 0, find the range of s values.

I am trying to use the functionrange function, which cannot calculate its value range

Clear[a, b, c, d]
FunctionRange[{a/(a + b + c) + b/(b + c + d) + c/(a + c + d) + d/(
a + b + d), {a, b, c, d} > 0}, {a, b, c, d}, s] // FullSimplify


Can't we find the range of values for this formula?

• You should know by now that just dumping a one-liner here will be received badly. I suggest you edit your question to bring it to a reasonably good standard. Sep 12, 2023 at 8:37
• The issue has been modified and should meet the standards Sep 12, 2023 at 9:19

The results of

NMinimize[{a/(a + b + c) + b/(b + c + d) + c/(a + c + d) + d/(
a + b + d), {a, b, c, d} > 0}, {a, b, c, d}]


{1., {a -> 237.428, b -> 0., c -> 538.538, d -> 0.}}

and

NMaximize[{a/(a + b + c) + b/(b + c + d) + c/(a + c + d) + d/(
a + b + d), {a, b, c, d} > 0}, {a, b, c, d}]


{2., {a -> 211.604, b -> 3.2656*10^-7, c -> 0., d -> 0.}}

suggest that the range is $$(1,2)$$ or $$[1,2]$$. Now we consider

Simplify[a/(a + b + c) + b/(b + c + d) + c/(a + c + d) +
d/( a + b + d) /. {b -> 1/a, c -> 1/a^2, d -> 1/a^3}]


a^2/(1 + a + a^2) + a^3/(1 + a + a^3) + a/(1 + a + a^4) + 1/( 1 + a^2 + a^4)

and

Resolve[ForAll[s, s > 1 && s < 2,  Exists[a, a > 0,
a^2/(1 + a + a^2) + a^3/(1 + a + a^3) + a/(1 + a + a^4) + 1/(
1 + a^2 + a^4) == s]], Reals]}}


True

and

FindInstance[ a/(a + b + c) + b/(b + c + d) + c/(a + c + d) + d/(a + b + d) == s &&
{a, b, c, d} > 0 && s <= 1, {a, b, c, d, s}]


{}

FindInstance[a/(a + b + c) + b/(b + c + d) + c/(a + c + d) + d/(a + b + d) ==
s && {a, b, c, d} > 0 && s >= 2, {a, b, c, d, s}]


{}

Therefore, we may draw the conclusion that the range under consideration is s>1&&s<2.

Using "FunctionRange" seems to take forever. But we can try a "MonteCarlo" Method.

We choose a,b,c,d at random between 0 and max a number of times: n times and calculate the minimum and maximum of:

ex = a/(a + b + c) + b/(b + c + d) + c/(a + c + d) + d/(a + b + d);


E.g with n=10,10^2,..10^6, max=10^3:

max= 10^3;
Table[
MinMax[ex /. Thread[{a, b, c, d} -> #] & /@ RandomReal[{0, max}, {10^i, 4}]] // N
, {i, 6}]

{{1.22242, 1.41345}, {1.17833, 1.52696}, {1.03095, 1.66393}, {1.00372,
1.81999}, {1.00436, 1.89882}, {1.00292, 1.85486}}


Does the result depend on max? We can test this by:

max=10;
Table[
MinMax[ex /. Thread[{a, b, c, d} -> #] & /@
RandomReal[{0, max}, {10^i, 4}]] // N
, {i, 6}]

{{1.24452, 1.36043}, {1.13932, 1.50128}, {1.05304, 1.66018}, {1.01424,
1.78151}, {1.00717, 1.88096}, {1.00228, 1.87861}}

max=10^6;
Table[
MinMax[ex /. Thread[{a, b, c, d} -> #] & /@
RandomReal[{0, max}, {10^i, 4}]] // N
, {i, 6}]

{{1.26016, 1.39843}, {1.16286, 1.5431}, {1.07997, 1.54604}, {1.01473,
1.69708}, {1.00482, 1.84456}, {1.00082, 1.86085}}


Therefore, we can conclude that range is approx.: 1< y <1.86

For more accurate results, you may increase n.