Beispiel #1
0
def run_fsolver():
    a = 1.0
    b = 0.0
    c = -5.0
    mysys = roots.gsl_function(quadratic, (a, b, c))
    solver = roots.brent(mysys)
    #solver = roots.bisection(mysys)
    #solver = roots.falsepos(mysys)

    solver.set(0.0, 5.0)
    iter = 0
    r_expected = numx.sqrt(5.0)
    print "# Using solver ", solver.name()
    print "# %5s [%9s %9s]  %9s  %10s %9s" % ("iter", "upper", "lower", "root",
                                              "err", "err(est)")
    for iter in range(100):
        status = solver.iterate()
        x_lo = solver.x_lower()
        x_up = solver.x_upper()
        status = roots.test_interval(x_lo, x_up, 0, 0.001)
        r = solver.root()
        if status == errno.GSL_SUCCESS:
            print "#  Convereged :"
        print "  %5d [%.7f %.7f]  %.7f  % .6f % .6f" % (
            iter, x_lo, x_up, r, r - r_expected, x_up - x_lo)
        if status == errno.GSL_SUCCESS:
            break
    else:
        raise ValueError, "Exeeded maximum number of iterations!"
Beispiel #2
0
def run_fsolver():
    a = 1.0
    b = 0.0
    c = -5.0
    mysys = roots.gsl_function(quadratic, (a,b,c))
    solver = roots.brent(mysys)
    #solver = roots.bisection(mysys)
    #solver = roots.falsepos(mysys)
    
    solver.set(0.0, 5.0)
    iter = 0
    r_expected = numx.sqrt(5.0)
    print "# Using solver ", solver.name() 
    print "# %5s [%9s %9s]  %9s  %10s %9s" % ("iter", "upper", "lower", "root",
                                              "err", "err(est)")
    for iter in range(100):           
        status = solver.iterate()
        x_lo = solver.x_lower()
        x_up = solver.x_upper()
        status = roots.test_interval(x_lo, x_up, 0, 0.001)
        r = solver.root()
        if status == errno.GSL_SUCCESS:
            print "#  Convereged :"
        print "  %5d [%.7f %.7f]  %.7f  % .6f % .6f" %(iter, x_lo, x_up, r,
                                                       r -r_expected,
                                                       x_up - x_lo)
        if status == errno.GSL_SUCCESS:
            break
    else:
        raise ValueError, "Exeeded maximum number of iterations!"
Beispiel #3
0
 def setUp(self):
     a = 1.0
     b = 0.0
     c = -5.0
     quadratic(0, (a, b, c))
     self.sys = roots.gsl_function(quadratic, (a, b, c))
Beispiel #4
0
 def setUp(self):
     a = 1.0
     b = 0.0
     c = -5.0
     quadratic(0, (a,b,c))
     self.sys = roots.gsl_function(quadratic, (a,b,c))