Я бы уменьшил количество строк в итерации с фиксированной точкой с помощью
def FixedPoint(p0,tolerance):
p1 = g(p0)
while abs(p1-p0)>=tolerance:
p0,p1 = p1,g(p1)
print(p0)
return p1
Для этого требуется 29 оценок g
для данного теста
Дельта-квадрат АйткенаПроцесс может быть реализован как
def FixedPointAitken(p0,tolerance):
while True:
p1=g(p0); p2=g(p1);
print(p0,p1,p2)
if abs(p1-p0)<tolerance: break
p0 = p0 - (p1-p0)**2/(p0+p2-2*p1)
return p0
. Для достижения точности цели требуется 5 шагов с 15 оценками g
.