MathGroup Archive 2012

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

Search the Archive

Re: Replace each f in f^n to different variables

Hi, all,

I want to replace *each* f in f^n to a different variable, say

f^n -> var1 * var2 * ... * varn

Naively, if I try

f^n /. f:>Unique[],

Mathematica simply returns (a unique variable)^n, instead of the above behaviour.

Is there a simple way to get the f's into different variables?



(1) I know there are ways to transform Power to a list by hand, and then do something in it. For example,

Times[((f^3)[[1]]*Table[1, {(f^3)[[2]]}]) /. f :> Unique[]]

However, eventually I will be dealing with a large expression, with all kinds of terms, instead of a single term. This method quickly becomes very complicated.

(2) I want to do such "strange" things, because a product of functions in position space f(x)^n becomes F(k1)F(k2)...F(k_{n-1})F(-k1-k2...) in momentum space.

Hi, Yi,

Is this:

replaceFun[g_] := If[MatchQ[g, Power[_, _]],
    Times @@ Table[ToExpression["var" <> ToString[i]], {i, 1, g[[2]]}],
     Style["Error: the function \!\(\*SuperscriptBox[\(f\), \(n\)]\) \
has a non-integer exponent n", Red]]
     "Error: the function does not have the form \
\!\(\*SuperscriptBox[\(f\), \(n\)]\)", Red]]


Error: the function f^n has a non-integer exponent n

var1 var2 var3 var4 var5 var6

what you are looking for?

Have fun, Alexei

Alexei BOULBITCH, Dr., habil.
ZAE Weiergewan,
11, rue Edmond Reuter,
L-5326 Contern, LUXEMBOURG

Office phone :  +352-2454-2566
Office fax:       +352-2454-3566
mobile phone:  +49 151 52 40 66 44

e-mail: alexei.boulbitch at

  • Prev by Date: Re: What characters are allowed in mathematica variable names? i.e. how
  • Next by Date: Re: nonlinearmodelfit problem
  • Previous by thread: Re: Replace each f in f^n to different variables
  • Next by thread: Re: Replace each f in f^n to different variables