It seems that sympy cannot properly break apart functions for integration.
Python 2.7.6 |Anaconda 1.9.1 (x86_64)| (default, Jan 10 2014, 11:23:15)
Type "copyright", "credits" or "license" for more information.
IPython 2.0.0 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object', use 'object??' for extra details.
%guiref -> A brief reference about the graphical user interface.
In [1]: from sympy import *
In [2]: init_session()
IPython console for SymPy 0.7.5 (Python 2.7.6-64-bit) (ground types: python)
These commands were executed:
>>> from __future__ import division
>>> from sympy import *
>>> x, y, z, t = symbols('x y z t')
>>> k, m, n = symbols('k m n', integer=True)
>>> f, g, h = symbols('f g h', cls=Function)
Documentation can be found at
http://www.sympy.orgWARNING: Hook shutdown_hook is deprecated. Use the atexit module instead.
In [5]: print integrate(expand((x-2)/sqrt(x)),(x,1,4))
2/3
In [6]: print integrate((x-2)/sqrt(x),(x,1,4))
-6
The former is correct based on other calculations.
Also:
print integrate(expand((x-2)/sqrt(x)),x)
2*x**(3/2)/3 - 4*sqrt(x)
print integrate((x-2)/sqrt(x),x)
2*sqrt(1 + 2/(x - 2))*(x - 2)**(7/2)/(6*x + 3*(x - 2)**2 - 12) - 4*sqrt(1 + 2/(x - 2))*(x - 2)**(5/2)/(6*x + 3*(x - 2)**2 - 12) - 16*sqrt(1 + 2/(x - 2))*(x - 2)**(3/2)/(6*x + 3*(x - 2)**2 - 12) + 8*sqrt(2)*(x - 2)**2/(6*x + 3*(x - 2)**2 - 12) + 16*sqrt(2)*(x - 2)/(6*x + 3*(x - 2)**2 - 12)
Again, the former is correct.
Thoughts?