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: <email@example.com>
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
> any good elegant way to do it? High appreciations!
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]
A1*C1*Z6*F1[t]*F2[t] + C2*F1[t]*F3[t]*F4[t]
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
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.
Prev by Date:
Re: Showing that ArcSinh/ArcCsch 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