Hi, these simple steps used to work in Sage 8.0. They now give an error in 8.9. I tried in CoCalc, same problem. Do I need to change anything? If this is a Sage regression, how can I work around it? Thanks.
Sage 8.0 behavior:
sage: var('x t') (x, t) sage: psi = function('psi')(x, t) sage: integrate(conjugate(psi) * diff(psi, x), x) integrate(conjugate(psi(x, t))*diff(psi(x, t), x), x)
In 8.9 it gives:
┌────────────────────────────────────────────────────────────────────┐ │ SageMath version 8.9, Release Date: 2019-09-29 │ │ Using Python 2.7.15. Type "help()" for help. │ └────────────────────────────────────────────────────────────────────┘ sage: var('x t') (x, t) sage: psi = function('psi')(x, t) sage: integrate(conjugate(psi) * diff(psi, x), x) --------------------------------------------------------------------------- ... ValueError: No differentiation variable specified.
Posting the complete trace below:
sage: var('x t') (x, t) sage: psi = function('psi')(x, t) sage: integrate(conjugate(psi) * diff(psi, x), x) --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-3-13afb3c477cd> in <module>() ----> 1 integrate(conjugate(psi) * diff(psi, x), x) /home/bryanso/sage-8.9/local/lib/python2.7/site-packages/sage/misc/functional.pyc in integral (x, *args, **kwds) 751 """ 752 if hasattr(x, 'integral'): --> 753 return x.integral(*args, **kwds) 754 else: 755 from sage.symbolic.ring import SR /home/bryanso/sage-8.9/local/lib/python2.7/site-packages/sage/symbolic/expression.pyx in sage .symbolic.expression.Expression.integral (build/cythonized/sage/symbolic/expression.cpp:64036 )() 12360 R = ring.SR 12361 return R(integral(f, v, a, b, **kwds)) > 12362 return integral(self, *args, **kwds) 12363 12364 integrate = integral /home/bryanso/sage-8.9/local/lib/python2.7/site-packages/sage/symbolic/integration/integral.p yc in integrate(expression, v, a, b, algorithm, hold) 912 return integrator(expression, v, a, b) 913 if a is None: --> 914 return indefinite_integral(expression, v, hold=hold) 915 else: 916 return definite_integral(expression, v, a, b, hold=hold) /home/bryanso/sage-8.9/local/lib/python2.7/site-packages/sage/symbolic/function.pyx in sage.s ymbolic.function.BuiltinFunction.__call__ (build/cythonized/sage/symbolic/function.cpp:11847) () 996 res = self._evalf_try_(*args) 997 if res is None: --> 998 res = super(BuiltinFunction, self).__call__( 999 *args, coerce=coerce, hold=hold) 1000 /home/bryanso/sage-8.9/local/lib/python2.7/site-packages/sage/symbolic/function.pyx in sage.s ymbolic.function.Function.__call__ (build/cythonized/sage/symbolic/function.cpp:6927)() 490 (<Expression>args[0])._gobj, hold) 491 elif self._nargs == 2: --> 492 res = g_function_eval2(self._serial, (<Expression>args[0])._gobj, 493 (<Expression>args[1])._gobj, hold) 494 elif self._nargs == 3: /home/bryanso/sage-8.9/local/lib/python2.7/site-packages/sage/symbolic/integration/integral.p yc in _eval_(self, f, x) 92 for integrator in self.integrators: 93 try: ---> 94 A = integrator(f, x) 95 except (NotImplementedError, TypeError): 96 pass /home/bryanso/sage-8.9/local/lib/python2.7/site-packages/sage/symbolic/integration/external.p yc in sympy_integrator(expression, v, a, b) 66 else: 67 result = sympy.integrate(ex, (v, a._sympy_(), b._sympy_())) ---> 68 return result._sage_() 69 70 def mma_free_integrator(expression, v, a=None, b=None): /home/bryanso/sage-8.9/local/lib/python2.7/site-packages/sage/interfaces/sympy.pyc in _sympys age_integral(self) 307 """ 308 from sage.misc.functional import integral --> 309 f, limits = self.function._sage_(), list(self.limits) 310 for limit in limits: 311 if len(limit) == 1: /home/bryanso/sage-8.9/local/lib/python2.7/site-packages/sage/interfaces/sympy.pyc in _sympys age_mul(self) 204 s = 1 205 for x in self.args: --> 206 s *= x._sage_() 207 return s 208 /home/bryanso/sage-8.9/local/lib/python2.7/site-packages/sage/interfaces/sympy.pyc in _sympys age_derivative(self) 333 f = self.args[0]._sage_() 334 args = [[a._sage_() for a in arg] if isinstance(arg,tuple) else arg._sage_() for arg in self.args[2:]] --> 335 return derivative(f, *args) 336 337 def _sympysage_order(self): /home/bryanso/sage-8.9/local/lib/python2.7/site-packages/sage/calculus/functional.pyc in deri vative(f, *args, **kwds) 129 """ 130 try: --> 131 return f.derivative(*args, **kwds) 132 except AttributeError: 133 pass /home/bryanso/sage-8.9/local/lib/python2.7/site-packages/sage/symbolic/expression.pyx in sage .symbolic.expression.Expression.derivative (build/cythonized/sage/symbolic/expression.cpp:255 45)() 4172 ValueError: No differentiation variable specified. 4173 """ -> 4174 return multi_derivative(self, args) 4175 4176 diff = differentiate = derivative /home/bryanso/sage-8.9/local/lib/python2.7/site-packages/sage/misc/derivative.pyx in sage.mis c.derivative.multi_derivative (build/cythonized/sage/misc/derivative.c:3016)() 217 if not args: 218 # fast version where no arguments supplied --> 219 return F._derivative() 220 221 for arg in derivative_parse(args): /home/bryanso/sage-8.9/local/lib/python2.7/site-packages/sage/symbolic/expression.pyx in sage .symbolic.expression.Expression._derivative (build/cythonized/sage/symbolic/expression.cpp:25 887)() 4234 return self.gradient() 4235 else: -> 4236 raise ValueError("No differentiation variable specified.") 4237 if not isinstance(deg, (int, long, sage.rings.integer.Integer)) \ 4238 or deg < 1: ValueError: No differentiation variable specified.