MathGroup Archive 2012

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Help with Reduce and ForAll

  • To: mathgroup at smc.vnet.net
  • Subject: [mg127381] Re: Help with Reduce and ForAll
  • From: Andrzej Kozlowski <akozlowski at gmail.com>
  • Date: Fri, 20 Jul 2012 23:39:59 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • Delivered-to: mathgroup-newout@smc.vnet.net
  • Delivered-to: mathgroup-newsend@smc.vnet.net
  • References: <20120720074952.853A06872@smc.vnet.net>

On 20 Jul 2012, at 09:49, Adam Clark wrote:

> I have a fairly complicated set of inequalities in 6 variables.  One 
of the variables is a speed parameter.  I need to know the constraints 
on the other 5 variables that satisfy the system of inequalities for any 
value of the speed between +1 and -1.  Is there a way I can use ForAll 
(or some other command) to have Mathematica do this for me?
>
> Simply using Reduce on the system of inequalities produces 8 pages of 
output that frequently uses Root and AlgebraicNumber as part of the 
output. 
>

It's hard to tell without knowing the equations, but I would say your 
only hope is to try to use ForAll with Resolve. To illustrate the 
difference between the working of Reduce and Resolve in such cases, here 
is a very artificial example I just cooked up:

 Reduce[
 ForAll[t, -1 < t < 1, x^3 + t x^2 - x^4 + x^3 - x^24 + 1 > 0]]


Root[#1^23+#1^22+#1^21+#1^20+#1^19+#1^18+#1^17+#1^16+#1^15+#1^14+#1^13+#1^12+#1^11+#1^10+#1^9+#1^8+#1^7+#1^6+#1^5+#1^4+2 #1^3+#1+1&,1]<=x<=1

Now with Resolve:

Resolve[ForAll[t, -1 < t < 1, x^3 + t*x^2 - x^4 + x^3 - x^24 + 1 > 0]]
Element[x, Reals] && ((x^2 == 0 && x^24 + x^4 - 2*x^3 - 1 < 0 &&
    x^24 + x^4 - 2*x^3 - x^2 - 1 < 0) ||
   (x^2 < 0 && x^24 + x^4 - 2*x^3 - x^2 - 1 <= 0) ||
   (-x^2 < 0 && x^24 + x^4 - 2*x^3 - x^2 - 1 < 0 &&
    x^24 + x^4 - 2*x^3 + x^2 - 1 <= 0))

As you can see, Resolve eliminates the parameter t but does not attempt to solve the resulting equations or inequalities, which makes it more efficient. For some purposes (yours?) this kind of solution may be sufficient.

Andrzej Kozlowski






  • Prev by Date: Re: can one make local symbol in a pure function?
  • Next by Date: Re: FindCurvePath has a problem
  • Previous by thread: Help with Reduce and ForAll
  • Next by thread: FindCurvePath has a problem