# Integrate expression involving a formal function

I am trying to integrate expressions involving a formal function $f(x)$:

sage: var('x')
sage: function('f')


It works in some simple cases:

sage: integrate(cos(f(x)) * f(x).diff(), x)
sin(f(x))


However, a slightly more complicated expression is left unchanged:

sage: integrate(x * f(x).diff() + f(x), x)
integrate(x*diff(f(x), x) + f(x), x)


instead of simplifying to $x\ f(x)$.

Is it possible to integrate such expressions in Sage? I tried to use other algorithms (e.g. algorithm='mathematica_free'), but I got this traceback:

.local/opt/sage-8.0/local/lib/python2.7/site-packages/sage/symbolic/expression_conversions.pyc in derivative(self, ex, operator)
588         from sage.symbolic.ring import is_SymbolicVariable
589         if self.name_init != "_maxima_init_":
--> 590             raise NotImplementedError
591         args = ex.operands()
592         if (not all(is_SymbolicVariable(v) for v in args) or


so it looks like only Maxima algorithm can be used because the derivative operation cannot be converted to anything else.

edit retag close merge delete