Написать программу программу в Python для решения системы линейных алгебраических уравнений методом Зейделя без импорта библиотек
С данными
a = [[2.32, 5.7, -0.8],[3.5, 2.7, 5.3],[1.7, 2.3, -1.8]]
b = [6.49, 19.90, 5.09]
python
a = [[2.32, 5.7, -0.8], [3.5, 2.7, 5.3], [1.7, 2.3, -1.8]]
b = [6.49, 19.90, 5.09]
n = len(a)
# Инициализация начального значения вектора x
x = [0] * n
# Установка условия сходимости
tolerance = 1e-10
# Создание цикла для итераций метода Зейделя
while True:
# Создание копии предыдущих значений переменных x
x_prev = x.copy()
# Обновление переменных x на каждой итерации
for i in range(n):
sum1 = sum(a[i][j] * x[j] for j in range(i))
sum2 = sum(a[i][j] * x_prev[j] for j in range(i + 1, n))
x[i] = (b[i] - sum1 - sum2) / a[i][i]
# Проверка условия сходимости
if max(abs(x[i] - x_prev[i]) for i in range(n)) < tolerance:
break
# Вывод результата
for i in range(n):
print(f'x{i+1} = {x[i]}')
В результате выполнения кода мы получим решение системы линейных уравнений в виде значений переменных x[i]. Например:
x1 = 1.5227452433807432
x2 = 2.5084021714771673
x3 = -2.0791415393908065
Эти значения представляют собой решение системы линейных уравнений методом Зейделя.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет