Используя метод Ньютона, я могу вычислить root нелинейного уравнения. Но теперь я хотел бы рассчитать коэффициент сходимости, используя эту функцию:
def rate(x, x_exact):
e = [abs(x_ - x_exact) for x_ in x]
print (e)
q = [(log(e[n+1]/e[n]))/(log(e[n]/e[n-1])) for n in range(4)]
return q
, где x - это список сходимости решений x. метод Ньютона постепенно добавляет x в список, пока не превратится в x_exact. (поэтому здесь, последний элемент списка должен быть x_exact)
Но я не понимаю формулу, потому что если я добавлю x_exact в список, то x = x_exact в конце и ошибка объединена (деление на 0)
Как мне это сделать? Если бы я набрал sh каждый х в списке, но не последний, тогда скорость сходимости не будет точной.
Есть идеи? Спасибо