Re: Simplifying complicated expressions

*To*: mathgroup at smc.vnet.net*Subject*: [mg110423] Re: Simplifying complicated expressions*From*: Richard Fateman <fateman at cs.berkeley.edu>*Date*: Thu, 17 Jun 2010 02:05:05 -0400 (EDT)*Organization*: Aioe.org NNTP Server*References*: <hudci1$d68$1@smc.vnet.net>

S. B. Gray 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 > > say you want to replace expression E1 by f where it occurs, even if it occurs in powers etc, in big expression B. First, simplify B to a single fraction N/D. divide N by E1, with remainder, to get Q and R. that is N= Q*E1+R. replace N with Q*f+R. Same with denominator D. Actually, you might want to divide N by E1^s for some power s, if you think that occurs too. This idea may not be a single command in Mathematica, though it has been described and used at least since 1971, called ratsubst. RJF