It's not a mistake. The problem is that you turned bound_error to False and filled these values ββwith zeros. If you set bound_error to True in the source code, you will see that you exceed the boundaries of your interpolation and thus insert zeros into the integration (and thus get a different value than if you evaluated the function at these points out of range, as for lambda for x_1 ).
Try the following and you will see that everything is working correctly. Basically, I just expanded t to cover a range of values ββlarge enough to cover the range in which you use interpolation.
from scipy import * from scipy.integrate import odeint from scipy.interpolate import interp1d from pylab import *
source share