0

My goal is to compute the n-fold self-convolution of a function rho(eta) where eta > 0, using MuPAD. (The background are energy densities of systems composed of many identical subsystems.) I tried to start with a simple case, but I'm already getting stuck there:

I define rho(eta) to be constantly 1 for eta > 0, so it is a Heaviside function:

rho := eta -> heaviside(eta)

and I implement the 2-fold self-convolution using a double integral and a Dirac delta function:

int(int(rho(etaA) * rho(etaB) * dirac(etaA + etaB - energy), etaB = 0..infinity), etaA=0..infinity)

with the result

so MuPAD wasn't even able to simplify the integral over a delta function and obtain a normal convolution expression; no idea what's going on with the limit here.

If I just directly enter the normal convolution expression of the function with itself

int(rho(etaA) *  rho(energy - etaA), etaA = 0..infinity)

I get

again with a limit (which could be simplified to 0, or couldn't it?). The second term comes actually close to the correct answer, the heaviside just accounts for the possibility that energy may be negative. Ok, so I tell MuPAD that energy is positive:

int(rho(etaA) *  rho(energy - etaA), etaA = 0..infinity) assuming energy > 0

and now MuPAD just gives me back the original unchanged integral:

Well, maybe using heaviside is the problem, and it is not strictly necessary anyway since I implement the constraint to eta > 0 through the integration limits. So I redefine

rho := eta -> 1

and use the formula with the delta function, plus the information that energy is positive:

int(int(rho(etaA) * rho(etaB) * dirac(etaA + etaB - energy), etaB = 0..infinity), etaA=0..infinity) assuming energy > 0

Guess what? Now MuPAD returns a heaviside by itself:

which is correct – but why doesn't it evaluate this integral? It's not that hard, is it?

So please anyone tell me: Why is all this happening? And how can I make it work?

A. Donda
  • 8,381
  • 2
  • 20
  • 49
  • Looks like the n-fold convolution of a step function is a piecewise polynomial of degree n. I think we could work it out by hand if that was important, but I am guessing you are really interested in some other functions. What is the function that you really want to compute the n-fold convolution of, if it is not a step function? – Robert Dodier Jan 08 '15 at 00:15
  • @RobertDodier, yes, I can compute this convolution myself by hand, but what I want is to be able to easily play with different functions rho(eta). So this question is really not about this particular self-convolution (for that I would have asked on math.SE), or about the self-convolution of a small set of given functions, but about forcing MuPAD to do this for me in general, so I can focus on other things than the technicalities of integration. – A. Donda Jan 09 '15 at 14:23
  • I seldomly need computer algebra, and every time I try and use it I end up in frustration. I was hoping here to get some pointers from some more experienced users. – Thinking about it, maybe I should rename my question... – A. Donda Jan 09 '15 at 14:25

0 Answers0