Solved: Why does integrate(psi(y)*f(y),y) return an error but integrate(psi(t,y)*f(t,y),y) works?
Hi there,
I am trying get an symbolic expression for the convolution (ψ⋆f)(x):=∫Rψ(x−y)f(y)dy
of two functions f,ψ:R→R as follows:
var('y')
psi = function('psi')(y)
f = function('f')(y)
integrate(psi(x-y)*f(y),y)
upon which I get the error message
RuntimeError: ECL says: Error executing code in Maxima:
If I add an extra argument to the two functions and define them as f,ψ:R×R→R as follows:
var('t')
psi = function('psi')(t,y)
f = function('f')(t,y)
integrate(psi(t,x-y)*f(t,y),y)
there is a surprise, it suddenly works! I get the desired symbolic expression on which I can run diff(..,x) and all the other built-in functions.
TL;DR
Why does integrate(psi(y)*f(y),y)
return an error?
Solution
Use sympy backend for symbolic integration as in
integrate(psi(x-y)*f(y),y, algorithm="sympy")