MathGroup Archive 2007

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

Search the Archive

Re: Change multiplication operations into convolution operations

  • To: mathgroup at smc.vnet.net
  • Subject: [mg73612] Re: Change multiplication operations into convolution operations
  • From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
  • Date: Fri, 23 Feb 2007 04:30:36 -0500 (EST)
  • Organization: The Open University, Milton Keynes, UK
  • References: <erjp4f$pt3$1@smc.vnet.net>

Zhao, Liang wrote:
> If I want to change the multiplication operations  into convolution
> operations in an arbitrary function such as
> C1 F1[t] F2[t] + C2 F3[t] F4[t] F1[t],
> where Fi(t) represents functions of t and Ci represents constant, into
> C1 F1[t] * F2[t] + C2 F3[t] * F4[t] * F1[t], where "*" indicate
> convolution.
> 
> any good elegant way to do it? High appreciations!
> 
> Liang

In[1]:=
expr = C1*F1[t]*Z6*F2[t]*A1 + C2*F3[t]*F4[t]*F1[t]
expr /. Times -> conv //.
   conv[c_ /; FreeQ[c, t], r__] -> c*conv[r]

Out[1]=
A1*C1*Z6*F1[t]*F2[t] + C2*F1[t]*F3[t]*F4[t]

Out[2]=
A1*C1*Z6*conv[F1[t], F2[t]] +
   C2*conv[F1[t], F3[t], F4[t]]

Say that we have an expression called "expr" that consists of the sum of 
products (denoted by *, Mathematica usual symbol for multiplication) of 
functions in t by constant coefficients (that is, they are independent 
of the variable t).

We want an expression that is the sum of products of the convolution 
(denoted by the symbol "conv") of the functions in t by the constant 
coefficients.

To do so, we first apply a transformation rule that converts any product 
into a convolution, then we apply repeatedly a second transformation 
rule that extract the constant coefficient from the convolutions and 
multiply the latter by the former.

Regards,
Jean-Marc


  • Prev by Date: Re: Showing that ArcSinh[2]/ArcCsch[2] is 3?
  • Next by Date: Re: ArcCosh[x] (1)
  • Previous by thread: Change multiplication operations into convolution operations (result & follow up question)
  • Next by thread: mouse wheel with Mathematica on Linux