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 $$ (\psi \star f)(x) := \int\limits_{\mathbb{R}} \psi(x-y) f(y) {d y} $$
of two functions $ f, \psi: \mathbb{R} \to \mathbb{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, \psi : \mathbb{R} \times \mathbb{R} \to \mathbb{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")