Services & Resources / Wolfram Forums
MathGroup Archive
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2001

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

Search the Archive

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

  • To: mathgroup at
  • Subject: [mg28501] Re: [mg28483] What is MakeRules (Option of Solve) good for?
  • From: Daniel Lichtblau <danl at>
  • Date: Sun, 22 Apr 2001 21:03:18 -0400 (EDT)
  • References: <>
  • Sender: owner-wri-mathgroup at

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]]

{{-(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, 
        (-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],

The first list in the result is the equations in internal form, the
second is the variables.

Daniel Lichtblau
Wolfram Research

  • Prev by Date: Re: Frequent crashing problem
  • Next by Date: Re: help to plot..please
  • Previous by thread: What is MakeRules (Option of Solve) good for?
  • Next by thread: Re: Font Problem: Mathematica 4.01 + Xfree86 4.02