Welcome, guest | Sign In | My Account | Store | Cart
# Halley's method for solving f(x)=0
# http://en.wikipedia.org/wiki/Halley%27s_method
# FB - 201011265
global h
h = 0.00000001
eps = 0.000001

# f(x) to solve
def f(x):
    return x * x - 2.0

def fp(x):
    global h
    return (f(x + h) - f(x)) / h

def fpp(x):
    global h
    return (fp(x + h) - fp(x)) / h

# main
x = 2.0 # initial value

while True:
    fx = f(x)
    fpx = fp(x)
    xnew = x - (2.0 * fx * fpx) / (2.0 * fpx * fpx - fx * fpp(x))
    print xnew
    if abs(xnew - x) <= eps: break
    x = xnew

History