# Convolve application

How to define the function $$f_m(s)=\begin{cases} s^m, \quad s\in[0,n]\\ 0, \quad otherwise \end{cases}$$

And to get its value of discrete self-convolution in $$s=n$$ by means of Convolve function ? My try:

Let be function f[m_, s_, n_] defined as follows:

f[m_, s_, n_] := 0
f[m_, s_, n_] := s^m /; 0 <= s <= n
s = n; Sum[f[2, s - k, n]*f[2, k, n], {k, -Infinity, +Infinity}]


and result is always zero, which is not supposed to be

• I don't understand your definitions; the first one pretty much makes the function identically zero everywhere. What did you mean by it? Are there conditions on the values of $m$, $s$, $n$? – MarcoB Mar 7 '19 at 19:44
• Thats the point, i need to present the expression $\sum_{k=0}^{n}k^m(n-k)^m$ in terms of convolution of power function defined on finite interval [0,n] – PKK Mar 7 '19 at 19:48

It appears to be straightforward if you use Piecewise to define f:

f[s_, n_, m_] := Piecewise[{{s^m, 0 < s < n}, {0, True}}]
Convolve[f[s, 3, 2], f[s, 3, 2], s , t]


This returns a plausible Piecewise expression.

• I think you are doing a continuous convolution, while the question specified a discrete convolution. – mikado Mar 7 '19 at 20:04
• Yes, exactly, im sorry that haven't noticed that it should be discrete convolution – PKK Mar 7 '19 at 20:12
• by the way, now the entry s = n = 4; Sum[f[2, s - k, n]*f[2, k, n], {k, -Infinity, +Infinity}] gives correct result 34, but still let's try to make it more beautiful using native method Convole :) – PKK Mar 7 '19 at 20:15

The right function to use is DiscreteConvolve[]; in addition, use UnitStep[] to impose your finite conditions:

DiscreteConvolve[UnitStep[k] k^m, UnitStep[k] k^m, k, s]