MathGroup Archive 2004

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

Search the Archive

Re: Simplifying with assumptions

  • To: mathgroup at smc.vnet.net
  • Subject: [mg48988] Re: [mg48949] Simplifying with assumptions
  • From: Daniel Lichtblau <danl at wolfram.com>
  • Date: Fri, 25 Jun 2004 17:52:35 -0400 (EDT)
  • References: <200406250658.CAA12398@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Mietek Bak wrote:
> Hello,
> 
> I'm a complete newcomer to Mathematica, so please excuse this possibly
> silly question.
> 
> I'm trying to determine if a formula will ever give an integer result,
> assuming that all variables used in it are integer.  I've been searching
> through the built-in documentation, but my best guess didn't really do
> anything:
> 
> Simplify[Element[Sqrt[48 - n^2 + 8*x],Integers],Element[{n, x},Integers]]
> 
> It would be best if I could somehow determine the set of combinations of
> variables that would give an integer result -- if there are any.  Is
> there a way to do that in Mathematica?
> 
> Thanks in advance,
> Mietek Bak.


I'm not sure what would be a good way to do this sort of thing in 
general. For relatively simple examples you can make progress if you 
assign integer values to one parameter, as below.

In[7]:= InputForm[Table[
   Reduce[{48-n^2+8*x==k^2, Element[{x,k},Integers]}, {x,k}], {n,10}]]

Out[7]//InputForm=
{False, (C[1] \[Element] Integers && x == -5 + 4*C[1] + 8*C[1]^2 &&
    k == 2 + 8*C[1]) || (C[1] \[Element] Integers &&
    x == -1 + 12*C[1] + 8*C[1]^2 && k == 6 + 8*C[1]), False,
  (C[1] \[Element] Integers && x == -4 + 8*C[1]^2 && k == 8*C[1]) ||
   (C[1] \[Element] Integers && x == -2 + 8*C[1] + 8*C[1]^2 &&
    k == 4 + 8*C[1]), False, (C[1] \[Element] Integers &&
    x == -1 + 4*C[1] + 8*C[1]^2 && k == 2 + 8*C[1]) ||
   (C[1] \[Element] Integers && x == 3 + 12*C[1] + 8*C[1]^2 &&
    k == 6 + 8*C[1]), False, (C[1] \[Element] Integers && x == 2 + 
8*C[1]^2 &&
    k == 8*C[1]) || (C[1] \[Element] Integers && x == 4 + 8*C[1] + 
8*C[1]^2 &&
    k == 4 + 8*C[1]), False, (C[1] \[Element] Integers &&
    x == 7 + 4*C[1] + 8*C[1]^2 && k == 2 + 8*C[1]) ||
   (C[1] \[Element] Integers && x == 11 + 12*C[1] + 8*C[1]^2 &&
    k == 6 + 8*C[1])}

We see that for n odd we do not get solutions, and for n even we do. It 
is not hard to show that there are no solutions in the odd case. Putting 
n^2+k^2 on the right hand side, we have a value divisible by 8 on the 
left, and a sum of squares on the right. If one of {k,n} is even and the 
other odd, the sum of squares is odd. If both of {k,n} are odd, the sum 
of squares is divisible by 2 but not by 4. So the only possible way to 
get solutions has both of {n,k} even.


Daniel Lichtblau
Wolfram Research





  • Prev by Date: RE: Simplifying with assumptions
  • Next by Date: Re: Simplifying with assumptions
  • Previous by thread: Re: Simplifying with assumptions
  • Next by thread: Re: Simplifying with assumptions