MathGroup Archive 2010

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

Search the Archive

Re: Simplifying complicated expressions

  • To: mathgroup at smc.vnet.net
  • Subject: [mg110193] Re: Simplifying complicated expressions
  • From: Bob Hanlon <hanlonr at cox.net>
  • Date: Mon, 7 Jun 2010 08:07:17 -0400 (EDT)

Make the LHS of the rule as simple as possible

expr = Total[(x^2 + y^3 - x^2 y^2 + Sqrt[z3 + y2])^Range[-2, 2]];

While straight replacement isn't very effective

expr /. (x^2 + y^3 - x^2 y^2 + Sqrt[z3 + y2]) -> f1xyz

f1xyz + (-(x^2*y^2) + x^2 + y^3 + Sqrt[y2 + z3])^2 + 
   1/(-(x^2*y^2) + x^2 + y^3 + Sqrt[y2 + z3]) + 
   1/(-(x^2*y^2) + x^2 + y^3 + Sqrt[y2 + z3])^2 + 1

Using a simple LHS pattern that doesn't change in the various components of the FullForm representation works well

repl = Sqrt[z3 + y2] -> f1xyz - (x^2 + y^3 - x^2 y^2);

expr2 = expr /. repl

f1xyz^2+1/f1xyz^2+f1xyz+1/f1xyz+1

val = {x -> 3, y -> 1, y2 -> 6, z3 -> 10};

repl2 = Solve[Equal @@ repl, f1xyz][[1]] /. val

{f1xyz->5}

expr2 /. repl2

781/25

% == (expr /. val)

True


Bob Hanlon

---- "S. B. Gray" <stevebg at ROADRUNNER.COM> wrote: 

=============
Suppose I  have a long complex expression in which terms like
(x^2+y^3-x^2y^2+Sqrt[z3+y2]) (for a simple example) appear many times 
along with various powers and the reciprocals of it, etc. To make the 
expression comprehensible and to make the computation faster, I would 
like to substitute say "f1xyz" for it everywhere it appears. The normal 
/. and -> substitutions and patterns are not adequate for this. Of 
course at evaluation time I want to compute f1xyz only once and not have 
the final formula revert to the original variables. How do I prevent that?

Also a welcome addition to Mathematica would be the ability to find these 
repeated expressions automatically and put them in, because doing it 
manually is very error-prone and slow.

Tips will be appreciated!

Steve Gray




  • Prev by Date: FullSimplify and negative radicands
  • Next by Date: Re: Big memory needed
  • Previous by thread: Re: Simplifying complicated expressions
  • Next by thread: Re: Simplifying complicated expressions