Re: Non Commutative Multiply
- To: mathgroup at smc.vnet.net
- Subject: [mg128613] Re: Non Commutative Multiply
- From: Bob Hanlon <hanlonr357 at gmail.com>
- Date: Thu, 8 Nov 2012 19:03:51 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
- References: <20121108070906.3772668D2@smc.vnet.net>
Use Inner A = {{e, f}, {g, h}}; B = {{a, b}, {c, d}}; Inner[NonCommutativeMultiply, A, B] {{e ** a + f ** c, e ** b + f ** d}, {g ** a + h ** c, g ** b + h ** d}} (% /. NonCommutativeMultiply -> Times) == A.B True Bob Hanlon On Thu, Nov 8, 2012 at 2:09 AM, Rodrigo AP <digorna at gmail.com> wrote: > > Dear group, > > I want to multiply two matrices, for example, > > A = {{e, f}, {g, h}} > B = {{a, b}, {c, d}} > > Using A.B, Mathematica returns > > {{a e + b g, a f + b h}, {c e + d g, c f + d h}} > > I would like to get, however, the following result: > > {{e a + f c, e b + f d}, {g a + h c, g b + h d}} > > since, for me, the entries {a,b,c,d,e,f,g,h} are operators, i.e., they > are non-commutative. > > I could solve this problem clearing the attribute "Orderless" in the > built-in function Times: > > ClearAttributes[Times, Orderless] > > I know, however, this can be dangerous. I tried to define a function > Times2[a_,b_]:=Times[a,b] > and then use ClearAttributes[Times2, Orderless] but it doesn't work. > > How could I solve this problem? > > Thanks in advance > > Rodrigo > >
- References:
- Non Commutative Multiply
- From: Rodrigo AP <digorna@gmail.com>
- Non Commutative Multiply