Re: What is MakeRules (Option of Solve) good for?

*To*: mathgroup at smc.vnet.net*Subject*: [mg28501] Re: [mg28483] What is MakeRules (Option of Solve) good for?*From*: Daniel Lichtblau <danl at wolfram.com>*Date*: Sun, 22 Apr 2001 21:03:18 -0400 (EDT)*References*: <200104220530.BAA01889@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

Adalbert Hanssen wrote: > > Hi, MathGroup, > > looking for a way to find out about the substitutions, that > were carried out during Solve, I found out that Solve > has an option MakeRules, which defaults to False. I could > not find anything on it, neither in THE BOOK nor in the > online-help. > > Is anyone out there, who has used MakeRules? > Has anyone found out a practical way to see the > substitutions, that were made during Solve, e.g. > when solving > > Solve[-(d*x) + (x + xx)*Sqrt[(-1 + n^2)*x^2 + n^2*z^2]==0,x] > > which yields a long solution set with over and over > the same complicated subexpressions (probably from writing > out some substitutions done during the Solve-Process). > > kind regards > > Dipl.-Math. Adalbert Hanszen MakeRules is a legacy option that will disappear eventually. It does nothing along the lines you want. To see how Solve breaks apart equations and variables, you might use Internal`MakePolynomial[eqns, vars, Function->Solve] For example, In[4]:= InputForm[Internal`MakePolynomial[-(d*x) + (x + xx)*Sqrt[(-1 + n^2)*x^2 + n^2*z^2]==0, x]] Out[4]//InputForm= {{-(Solve`ParmVar[n]^2*Solve`ParmVar[z]^2) + Solve`RadVar[Sqrt[Solve`ParmVar[n]^2*Solve`ParmVar[z]^2 + (-1 + Solve`ParmVar[n]^2)*Solve`SolvVar[x]^2]]^2 + Solve`SolvVar[x]^2 - Solve`ParmVar[n]^2*Solve`SolvVar[x]^2 == 0, Solve`ParmVar[xx]*Solve`RadVar[Sqrt[Solve`ParmVar[n]^2*Solve`ParmVar[z]^2 + (-1 + Solve`ParmVar[n]^2)*Solve`SolvVar[x]^2]] - Solve`ParmVar[d]*Solve`SolvVar[x] + Solve`RadVar[Sqrt[Solve`ParmVar[n]^2*Solve`ParmVar[z]^2 + (-1 + Solve`ParmVar[n]^2)*Solve`SolvVar[x]^2]]*Solve`SolvVar[x] == 0}, {Solve`RadVar[Sqrt[Solve`ParmVar[n]^2*Solve`ParmVar[z]^2 + (-1 + Solve`ParmVar[n]^2)*Solve`SolvVar[x]^2]], Solve`SolvVar[x], Solve`ParmVar[xx], Solve`ParmVar[d], Solve`ParmVar[z], Solve`ParmVar[n]}} The first list in the result is the equations in internal form, the second is the variables. Daniel Lichtblau Wolfram Research

**References**:**What is MakeRules (Option of Solve) good for?***From:*Adalbert Hanssen <hanssen@zeiss.de>