Re: Solving equations and inequalities with Reduce - how?

*To*: mathgroup at smc.vnet.net*Subject*: [mg87697] Re: Solving equations and inequalities with Reduce - how?*From*: Szabolcs Horvát <szhorvat at gmail.com>*Date*: Tue, 15 Apr 2008 06:51:30 -0400 (EDT)*Organization*: University of Bergen*References*: <fu1tuf$ogc$1@smc.vnet.net>

Marc Heusser wrote: > I tried to solve equations with Reduce and somehow did not quite > formulate it right, so Reduce complains with > "Reduce::ivar: 1 is not a valid variable". > One of the variables that you used in the equation already had a value. Try it again in a fresh kernel. > This is what I tried: > > Wanted: A six digit number satisfying the following conditions: > The first digit is not zero. > If you take the first two digits and move them to the end of the number, > the resulting number must be twice the original number. > > In[23]:=Reduce[200000a +20000 b +2000 c+200 d+20 e + 2 f > \[Equal]100000c +10000 d +1000 e+100 f+10 a + b , {a,b,c,d,e,f}, > Modulus\[Rule]9] Here Modulus does not do what you expect (restrict the digits to 0..9). But here's a way to solve the problem with Reduce: We need to tell reduce that all of a, b, ..., f are integer digits, i.e. 0 <= ... < 10, and also that a is not 0: In[1]:= Reduce[ a != 0 && 200000 a + 20000 b + 2000 c + 200 d + 20 e + 2 f == 100000 c + 10000 d + 1000 e + 100 f + 10 a + b && And @@ Thread[0 <= {a, b, c, d, e, f} < 10], {a, b, c, d, e, f}, Integers] Out[1]= (a == 1 && b == 4 && c == 2 && d == 8 && e == 5 && f == 7) || (a == 2 && b == 8 && c == 5 && d == 7 && e == 1 && f == 4) || (a == 4 && b == 2 && c == 8 && d == 5 && e == 7 && f == 1) In[2]:= {ToRules[%]} Out[2]= {{a -> 1, b -> 4, c -> 2, d -> 8, e -> 5, f -> 7}, {a -> 2, b -> 8, c -> 5, d -> 7, e -> 1, f -> 4}, {a -> 4, b -> 2, c -> 8, d -> 5, e -> 7, f -> 1}} In[3]:= FromDigits[{a, b, c, d, e, f}] /. % Out[3]= {142857, 285714, 428571}