Вчём ошибка (метод простых итераций) делает одну итерацию import math def fun(x): return (2-0.4*x**2)**0.5+math.cos(x) x1=float(input("введите приближенное значение х=")) e=float(input("введите точность e=")) a=float(input("a=")) b=float(input("b=")) a=abs((fun(a+0.0001)-fun(a))/0.0001) b=abs((fun(b+0.0001)-fun(b))/0.0001) q=max(a,b) q=(1-q)/q iters=0 x0=x1 x1=fun(x0) while abs(x1-x0) < = abs(q*e): iters+=1 x0=x1 x1=fun(x0) print('точное значение корня: ',2.0926) print('вычисленное значение корня: ',x1) print('число итераций: ',iters)
Где задается функция:
def fun(x):
return ((2-0.4)*x**2**0.5)+math.cos(x)
Поставьте в скобочки.
Кстати, возможно, что вы хотели возвести (0.4*x) во вторую степень, а не 1.6:
return (2-(0.4*x)**2**0.5)+math.cos(x)
Вот так вот. Одни скобочки поворачивают ответ вспять. Если бы вы написали, что вы хотели сделать, я, может, бы "допер". А так..