On Wed, Sep 14, 2011 at 2:17 PM, Raymond Hawkins <rhawk...@earthlink.net>wrote:
> I'm getting odd behavior when I try to use fmin and pylab in the same > program. The issue is illustrated in the code snippet below. As written, > fmin won't work: the "print xopt" simply returns the contents of x0 as > assigned in the line before fmin. If the "from pylab import *" line is > commented out, however, then fmin runs as expected. > > I'm running python 2.7.2 on a MacBook Pro with a recent install & upgrade > of scipy and matplotlib via macports. Any suggestions would be appreciated. > > ------------------------------------- > > #!/opt/local/bin/python > > from scipy import * > from scipy.optimize import fmin > import matplotlib > matplotlib.use('MacOSX') > from pylab import * > > def rosen(x): # The Rosenbrock function > return sum(100.0*(x[1:]-x[:-1]**2.0)**2.0 + (1-x[:-1])**2.0) > > x0 = [1.3, 0.7, 0.8, 1.9, 1.2] > > xopt = fmin(rosen, x0) > > print xopt > Because pylab brings the numpy namespace into the current namespace, numpy's fmin is imported and replaces the previously def'ed fmin from scipy.optimize. Numpy's fmin function is completely different from scipy's fmin. Try putting the "from scipy.optimize import fmin" after the pylab import line. Or, do something like "from scipy.optimize import fmin as fminimize" to avoid name collision. I hope that helps. Ben Root
------------------------------------------------------------------------------ BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA Learn about the latest advances in developing for the BlackBerry® mobile platform with sessions, labs & more. See new tools and technologies. Register for BlackBerry® DevCon today! http://p.sf.net/sfu/rim-devcon-copy1
_______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users