 
В чём ошибка (метод простых итераций) делает одну итерацию 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) 0
        0
         0
        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)
Вот так вот. Одни скобочки поворачивают ответ вспять. Если бы вы написали, что вы хотели сделать, я, может, бы "допер". А так..
 0
                    0
                     0
                    0
                 
            В данном коде возможны две проблемы:
- Условие завершения цикла:
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)))
После внесения этих исправлений, код должен работать правильно для метода простых итераций.
 0
                    0
                     0
                    0
                Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
- 
			Математика 
- 
			Литература 
- 
			Алгебра 
- 
			Русский язык 
- 
			Геометрия 
- 
			Английский язык 
- 
			Химия 
- 
			Физика 
- 
			Биология 
- 
			Другие предметы 
- 
			История 
- 
			Обществознание 
- 
			Окружающий мир 
- 
			География 
- 
			Українська мова 
- 
			Информатика 
- 
			Українська література 
- 
			Қазақ тiлi 
- 
			Экономика 
- 
			Музыка 
- 
			Право 
- 
			Беларуская мова 
- 
			Французский язык 
- 
			Немецкий язык 
- 
			МХК 
- 
			ОБЖ 
- 
			Психология 
- 
			Физкультура и спорт 
- 
			Астрономия 
- 
			Кыргыз тили 
- 
			Оʻzbek tili 
 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			