[SciPy-user] Using SciPy/NumPy optimization

lechtlr lechtlr at yahoo.com
Wed Mar 14 13:52:08 EDT 2007


Robert:

Thanks for the fmin_tnc example and it's working now. However, I have trouble getting optimal parameters for the model.  I have tied varies options from 'fmin_tnc', and nothing seems to work so far.  I would  appreciate, if you can give some clues to get optimal values.  I have attached my python script.

Thanks,
Lex


from numpy import *
from scipy.optimize import fmin_tnc

class LossFunction(object):
    def __init__(self, x, y):
      self.x = x
      self.y = y

    def __call__(self, abc):
      """ A function suitable for passing to the fmin() minimizers.
      """
      a, b, c = abc
      y = a*(1.0 + b*c*self.x) ** (-1.0/b)
      dy = self.y - y
      return dot(dy,dy)

#Generating y for given set of x
a_true = 100.0
b_true = 1.0 
c_true = 10.0 

T = range(1000, 2500, 10)

data = zeros([len(T), 2], 'd')

for m in range(len(T)):
    error = rand(1)/T[m]
    r = a_true*(1.0 + b_true*c_true*T[m])**(-1.0/b_true) + error
    data[m][0] = T[m]
    data[m][1] = r
    

x = data[:,0]
y = data[:,1]

print 'numer of data points:', len(T)

lf = LossFunction(x, y)
abc0 = [10.0, 1.0, 5.0]  
retcode, nfeval, abc_optimal = fmin_tnc(lf, abc0, bounds=None, approx_grad=True)

print 'retcode:', retcode
print 'nfeval:', nfeval
print 'Optimal Parameters:', abc_optimal


   
 
---------------------------------
Expecting? Get great news right away with email Auto-Check.
Try the Yahoo! Mail Beta.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.scipy.org/pipermail/scipy-user/attachments/20070314/2a45d35e/attachment.html>


More information about the SciPy-User mailing list