def fvals_sqrt(x):
"""
Return f(x) and f'(x) for applying Newton to find a square root.
"""
f = x**2 - 4.
fp = 2.*x
return f, fp
def solve(fvals_sqrt, x0, debug_solve = False):
"""
Solves the sqrt function, using newtons methon.
"""
iters = 0
f, fp = 0.
while f > 10**-14 | -f < 10**-14:
f, fp = fvals_sqrt(x0)
x0 = x0 - (f/fp)
iters = iters+1
print + " x = %22.15e in %i iterations " % (x0, iters)
return x0, iters
print "we're done"
Я хочу, чтобы этот цикл while один раз был менее 10^-14, но я не уверен, как изменить аргумент, чтобы сделать цикл итеративным, любую помощь?в то время как блок не работает так, как ожидалось
Существует также проблема, что вы инициализация 'е = 0.' вне цикла – wim
На самом деле,' е, Fp = 0.' является Синтаксическая ошибка не так ли ??? – wim
@wim - Я не уверен в синтаксической ошибке, но 'TypeError' по крайней мере ... – mgilson