Re: Eliminating Annoying Minus Signs
- To: mathgroup at smc.vnet.net
- Subject: [mg58777] Re: Eliminating Annoying Minus Signs
- From: Peter Pein <petsie at dordos.net>
- Date: Mon, 18 Jul 2005 03:21:16 -0400 (EDT)
- References: <dbd12i$2tc$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
David Park schrieb: > Here is an expression that has annoying minus signs in it. > > test = {-((2*x)/(-1 + z)), -((2*y)/(-1 + z)), -1}; > > We can get rid of them with the following operation. > > MapAt[Minus, test, {{1, 1}, {1, 3, 1}, {2, 1}, {2, 3, 1}}] > {(2*x)/(1 - z), (2*y)/(1 - z), -1} > > But it involves ferreting out the two positions at which we want to change signs and so is a little tedious and error prone. > > Does someone have a simpler method for simplifying such expressions, which occur quite often with Mathematica? > > David Park > djmp at earthlink.net > http://home.earthlink.net/~djmp/ > Hi David, Try setting $Post appropriate: In[1]:= $Post = InputForm; (* just for copying to email *) In[2]:= test = {-((2*x)/(-1 + z)), -((2*y)/(-1 + z)), -1} Out[2]//InputForm= {(-2*x)/(-1 + z), (-2*y)/(-1 + z), -1} In[3]:= oldPost = If[ValueQ[$Post], $Post, Identity]; $Post = Simplify[oldPost[#1], ComplexityFunction -> (Count[#1, x_ /; x < 0, Infinity] & )] & ; In[5]:= test Out[5]//InputForm= {(2*x)/(1 - z), (2*y)/(1 - z), -1} hope this helps a bit, Peter -- Peter Pein Berlin http://people.freenet.de/Peter_Berlin/