2
$\begingroup$

Take the following set of inequalities:

Reduce[
  {
    ys < Power[xs^a + ys^a - x^a, 1/a],
    0 < xs < 10000,
    0 < ys < 12000,
    0 < x <10000,
    xs < x,
    0 < a < 1
  },
  {xs, ys, x, a},
  Reals
]

When I run it, I get the following error:

This system cannot be solved with the methods available to Reduce.

But why? How can I make it solvable via Reduce?

I read this other thread: Can Reduce really not solve for x here?, and I understood that if you provide a specific domain, as I did, the system should become solvable even if it involves transcendental functions.

$\endgroup$
11
  • 2
    $\begingroup$ How is Pow defined? $\endgroup$
    – user49048
    May 20, 2021 at 10:50
  • 2
    $\begingroup$ I think you overstate the ability of Reduce/Solve over a compact domain. This blog post indicates that for a single-variable holomorphic function, an equation can be solved over a compact domain. The situation for multivariate functions or ones that are not holomorphic is less clear to me. My experience is that some of them cannot be solved, so maybe not yours. The function z^a, with a a real variable and z a real or complex variable, is a common obstruction. $\endgroup$
    – Michael E2
    May 20, 2021 at 11:51
  • $\begingroup$ @DiSp0sablE_H3r0 Whoops, I thought that that is the standard Power function. Yet, even after replacing Pow with Power, I am getting the same error. $\endgroup$ May 20, 2021 at 16:34
  • $\begingroup$ Thanks for the heads-up, @MichaelE2. $\endgroup$ May 20, 2021 at 16:44
  • 1
    $\begingroup$ Something can be done:NMinimize[{a, ys < Power[xs^a + ys^a - x^a, 1/a], 0 < xs < 10000, 0 < ys < 12000, 0 < x < 10000, xs < x, 0 < a < 1}, {xs, ys, x, a}] produces {0.00912988, {xs -> 2426.64, ys -> 0.022711, x -> 5341.51, a -> 0.00912988}} and NMaximize[...] produces 0.32545, {xs -> 0.5, ys -> 0.5, x -> 0.5, a -> 0.32545}}. Unfortunately, then FindInstance[ ys < Power[xs^a + ys^a - x^a, 1/a] && 0 < xs && 0 < ys < 12000 && 0 < x < 10000 && xs < x /. a -> 1/5, {xs, ys, x}, Reals] is running for ages. $\endgroup$
    – user64494
    May 20, 2021 at 19:08

1 Answer 1

1
$\begingroup$

If you change to non-powered variables {xs1,ys1,x1}, you get solutions for at least rational a of the form a = 1/( 2 b) with b being positive integers.

First get conditions for changed variables and then test your inequation.

{a = 1/Pi, 
red = List @@ 
Reduce[{xs^a == xs1, ys^a == ys1, x^a == x1, 0 < xs <  10000, 
  0 < ys < 12000, 0 < x < 10000, xs < x}, {xs, ys, x}, Reals] // 
 PowerExpand}

(*   {1/\[Pi], {0 < ys1 < 2^(5/\[Pi]) 3^(1/\[Pi]) 5^(3/\[Pi]), 
0 < x1 < 10^(4/\[Pi]), 0 < xs1 < x1, xs == xs1^\[Pi], 
ys == ys1^\[Pi], x == x1^\[Pi]}}   *)

Reduce[ys1^(1/a) < Power[xs1 + ys1 - x1, 1/a] && 
   And @@ red[[1 ;; 3]], {xs1, ys1, x1}, Reals]

(*   Reduce::nsmet: This system cannot be solved with the methods available to Reduce. >>   *)

With a = 3/10 you get "False". And so on. Let make a test function.

test := {a = Rationalize[RandomReal[{.06, .94}], 1/20], 
  red = List @@ 
Reduce[{xs^a == xs1, ys^a == ys1, x^a == x1, 0 < xs < 10000, 
  0 < ys < 12000, 0 < x < 10000, xs < x}, {xs, ys, x}, Reals]; 
Reduce[ys1^(1/a) < Power[xs1 + ys1 - x1, 1/a] && 
And @@ red[[1 ;; 3]], {xs1, ys1, x1}, Reals]}

Table[test, {20}] // TableForm

Result ( not shown here) indicates there are only solutions for a = 1/ (2 b) with b beeing positive integers. I leave it to you to prove this.

Graphics says the same.

Clear[a]; Manipulate[
RegionPlot3D[
ys < Power[xs^a + ys^a - x^a, 1/a] && xs < x, {xs, 0, 10000}, {ys, 
0, 12000}, {x, 0, 10000}] // 
Quiet, {a, {1/2, 1/E, 1/Pi, 1/3, 2/3, 1/4, 1/6, 1/8, 1/10, 1/12, 
1/14, 1/16, 1/18}}]
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.