
В чём ошибка (метод простых итераций) делает одну итерацию 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)
Вот так вот. Одни скобочки поворачивают ответ вспять. Если бы вы написали, что вы хотели сделать, я, может, бы "допер". А так..



В данном коде возможны две проблемы:
- Условие завершения цикла:
pythonwhile abs(x1-x0) <= abs(q*e):
Это условие не совсем верное для метода простых итераций. В методе простых итераций обычно проверяется не разница между текущим и предыдущим значением икса, а разница между текущим и следующим значением икса с учетом функции простой итерации.
Исправим условие, чтобы оно учитывало правильное вычисление следующего значения икса:
pythonwhile abs(fun(x1) - x1) >= e:
- Вычисление коэффициента q:
pythona=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
Здесь q вычисляется как обратное значение максимальной производной функции fun(x) на отрезке [a, b]. В методе простых итераций условие сходимости требует, чтобы |f'(x)| была меньше единицы на всем интервале.
Исправим вычисление коэффициента q следующим образом:
pythonq = max(abs(1 - 0.4 * x ** 2 * (2 - 0.4 * x ** 2) ** (-0.5)), abs(-math.sin(x)))
После внесения этих исправлений, код должен работать правильно для метода простых итераций.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili