Re: Diophantic equations
- To: mathgroup at smc.vnet.net
- Subject: [mg32785] Re: [mg32746] Diophantic equations
- From: BobHanlon at aol.com
- Date: Sat, 9 Feb 2002 23:39:30 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
This is an improvement to my earlier post. This looks for a lower bound in addition to an upper bound prior to using brute force. Bob Hanlon Chantilly, VA USA _______________________________ Needs["Algebra`InequalitySolve`"]; eqn={a+b+10 c==100, 5 a+2 b+c==100}; var = Union[Cases[eqn, _Symbol?(!NumericQ[#]&), Infinity]]; upper = (InequalitySolve[ (eqn /. Equal -> LessEqual) /. Thread[ Rest[#]->1], First[#]] /. x_?NumberQ -> Floor[x])& /@ NestList[RotateLeft[#,1]& , var, Length[var]-1] {a <= 19, b <= 47, c <= 9} lower = (InequalitySolve[ (eqn /. Equal -> GreaterEqual) /. Rest[#], #[[1,1]]] /. x_?NumberQ -> Max[1,Ceiling[x]])& /@ NestList[RotateLeft[#,1]& , upper /. LessEqual -> Rule, Length[var]-1] {a >= 1, b >= 1, c >= 4} Off[Thread::tdlen]; rng = Thread[Range[Last /@ lower, Last /@ upper]]; soln = Thread[var->#]& /@ Select[Flatten[Outer[List,Sequence@@rng], 2], And@@(eqn /. Thread[var->#])&] {{a -> 11, b -> 19, c -> 7}}