Re: Replace expressions

*To*: mathgroup at smc.vnet.net*Subject*: [mg7688] Re: Replace expressions*From*: Stephen P Luttrell <luttrell at signal.dra.hmg.gb>*Date*: Sun, 29 Jun 1997 22:17:23 -0400 (EDT)*Organization*: Defence Research Agency*Sender*: owner-wri-mathgroup at wolfram.com

Hans Steffani wrote: > > hans.steffani at e-technik.tu-chemnitz.de (Hans Steffani) writes: > > >I want to replace all expressions > >Dot[a, xx] > >Dot[xx, a] > >for certain as by > >Times[a,xx]. > > To say it in other words > I have a list certainas, which contains a number of symbols. > > This symbols are scalars and therefore I am allowed to substitute > Dot[a,b] by Times[a,b] if a or b is in the list certainas. > > How can this be done. > Here is an example of how to solve this problem: (1) Define a pair of assignments for simplifying expressions of the form Dot[a_,xx] and Dot[xx,a_], provided that a is a member of the list certainas (^:= is used rather than := in order to associate the assignment with xx rather than Dot; this is a matter of taste): Dot[a_,xx]^:=a xx/;MemberQ[certainas,a]; Dot[xx,a_]^:=a xx/;MemberQ[certainas,a]; (2) Define an example list to work with: certainas={a1,a2,a3}; (3) See whether the substitutions are made correctly in some specific cases. The following input: Dot[a1,xx] Dot[xx,a2] Dot[b,xx] Dot[xx,b] produces the following output: a1 xx a2 xx b.xx xx.b which is what was expected, given the chosen elements of certainas. ===================================================================== Dr Stephen P Luttrell luttrell at signal.dra.hmg.gb Adaptive Systems Theory 01684-894046 (phone) Room EX21, Defence Research Agency 01684-894384 (fax) Malvern, Worcs, WR14 3PS, U.K. http://www.dra.hmg.gb/cis5pip/Welcome.html