コード例 #1
0
ファイル: minimize.py プロジェクト: juhnowski/FishingRod
def run_fsolver():
    mysys = minimize.gsl_function(fn1, None)
    m = 2.0
    a = 0.0
    b = 6.0
    m_expected = numx.pi

    
    minimizer = minimize.brent(mysys)
    #minimizer = minimize.goldensection(mysys)
    minimizer.set(m, a, b)
    
    print "# Using  minimizer ", minimizer.name()
    print "# %5s [%9s %9s]  %9s  %10s %9s" % ("iter", "upper", "lower", "min",
                                              "err", "err(est)")
    for iter in range(100):
        status = minimizer.iterate()
        a      = minimizer.x_lower()
        b      = minimizer.x_upper()
        m      = minimizer.minimum()
        status = minimize.test_interval(a, b, 0.001, 0)
        if status == errno.GSL_SUCCESS:
            print "# Converged: "
        print "  %5d [%.7f %.7f]  %.7f + % .6f % .6f" %(iter, a, b, m,
                                                      m -m_expected, b - a)
        if status == errno.GSL_SUCCESS:
            break
    else:
        raise ValueError, "Number of Iterations exceeded!"
コード例 #2
0
def run_fsolver():
    mysys = minimize.gsl_function(fn1, None)
    m = 2.0
    a = 0.0
    b = 6.0
    m_expected = numx.pi

    minimizer = minimize.brent(mysys)
    #minimizer = minimize.goldensection(mysys)
    minimizer.set(m, a, b)

    print "# Using  minimizer ", minimizer.name()
    print "# %5s [%9s %9s]  %9s  %10s %9s" % ("iter", "upper", "lower", "min",
                                              "err", "err(est)")
    for iter in range(100):
        status = minimizer.iterate()
        a = minimizer.x_lower()
        b = minimizer.x_upper()
        m = minimizer.minimum()
        status = minimize.test_interval(a, b, 0.001, 0)
        if status == errno.GSL_SUCCESS:
            print "# Converged: "
        print "  %5d [%.7f %.7f]  %.7f + % .6f % .6f" % (iter, a, b, m,
                                                         m - m_expected, b - a)
        if status == errno.GSL_SUCCESS:
            break
    else:
        raise ValueError, "Number of Iterations exceeded!"
コード例 #3
0
ファイル: minimize_test.py プロジェクト: pygsl/pygsl
 def setUp(self):
     self.sys = minimize.gsl_function(fn1, None)
コード例 #4
0
ファイル: minimize_test.py プロジェクト: juhnowski/FishingRod
 def setUp(self):
     self.sys = minimize.gsl_function(fn1, None)
コード例 #5
0
    # set the initali parameters if the file exists
    ggdFile = '%s_M-%04d' %(ggdPath,fbinX)
    if os.path.exists(ggdFile):
        print 'read initial parameters from %s' %ggdFile
        cggdEstimator.readParam( ggdFile, zeroMean=True, fixValues=False )
    else:
        print '%f is the initial value of the shape parameter' %initialP

    cggdEstimator = calcVariance( cggdEstimator, fbinX, dataDir, segListFile, M, m, r )

    # seek the shape parameter which provides the ML with the linear search
    for iterX1 in range(nIter1):
        low  = initialLow
        high = initialHigh
 
        mysys = minimize.gsl_function( calcNegLogLikelihood, [cggdEstimator, fbinX, dataDir, segListFile, M, m, r ] )
        mid  = cggdEstimator.getShapePar()
        if  ( mid <  low ) and ( mid > high ):
            mid = 0.7

        print "Start %d : %e %e %e" %(iterX1, low, high, mid)
        #minimizer = minimize.brent(mysys)
        minimizer = minimize.goldensection(mysys)
        minimizer.set(mid, low, high)

        #print "# Using  minimizer ", minimizer.name()
        for iterX2 in range(nIter2):
            try:
                status = minimizer.iterate()
            except:
                print "Unexpected error:"