Информатика, вопрос задал zzzPhenomenalOnezzz , 8 лет назад

В чём ошибка (метод простых итераций) делает одну итерацию
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)

Ответы на вопрос

Ответил Dehenerat
0

Где задается функция:

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)

Вот так вот. Одни скобочки поворачивают ответ вспять. Если бы вы написали, что вы хотели сделать, я, может, бы "допер". А так..

Новые вопросы