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

Ответы 1

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

    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)

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

    • Автор:

      gavinajag
    • 6 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years