Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2006
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2006

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

Search the Archive

Re: Vector algebra

  • To: mathgroup at smc.vnet.net
  • Subject: [mg65496] Re: Vector algebra
  • From: "Valeri Astanoff" <astanoff at yahoo.fr>
  • Date: Wed, 5 Apr 2006 06:55:39 -0400 (EDT)
  • References: <e0r0nm$pn$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Here is a DIY way to do what you want :

In[1]:=unDistribute[ex_Plus /;
MatchQ[ex[[All,1]], _Integer*_] &&
MatchQ[ex[[All,2]], _ + __]] :=
  ex[[All,1]][[2]] ~ex[[1,0]]~ ex[[All,2]];
  unDistribute[ex_Plus /;
MatchQ[ex[[All,2]], _Integer*_] &&
MatchQ[ex[[All,1]], _ + __]] :=
  ex[[All,1]] ~ex[[1,0]]~ ex[[All,2]][[2]] ;

In[3]:=x.a+x.b+x.c//unDistribute

Out[3]=x.(a+b+c)

In[4]:=%//Distribute

Out[4]=x.a+x.b+x.c

In[5]:=a.x+b.x+c.x//unDistribute

Out[5]=(a+b+c).x

In[6]:=%//Distribute

Out[6]=a.x+b.x+c.x


hth (and hoping someone will post something simpler!)


V.Astanoff


  • Prev by Date: Finding k-clique
  • Next by Date: Return, behaviour of
  • Previous by thread: Vector algebra
  • Next by thread: Re: Vector algebra