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/