from typing import List def gauss_method(coefficients: List[List[float]], free_members: List[float]) -> List[float]: """ Реализация метода Гаусса для квадратной системы уравнений Ax = b. Алгоритм: 1. Формируем расширенную матрицу [A|b]. 2. Для каждого столбца: - Ищем pivot: первый ненулевой элемент в текущем столбце от текущей строки вниз. - Если pivot ≠ текущая строка, меняем строки местами. 3. Обнуляем все элементы под pivot: - Для каждой строки ниже: factor = current / pivot - Текущая строка -= factor * строка с pivot 4. После приведения к ступенчатой форме выполняем обратную подстановку: - Проходим снизу вверх - Для каждой переменной: x[i] = (свободный член - сумма(коэффициентов[i][j] * x[j] для j>i)) / pivot 5. Возвращаем список решений x. Входные данные: - coefficients: квадратная матрица коэффициентов A - free_members: вектор свободных членов b Выход: - Список решений x """ n = len(coefficients) for i in range(n): coefficients[i].append(free_members[i]) for i in range(n): pivot_row = None for r in range(i, n): if coefficients[r][i] != 0: pivot_row = r break if pivot_row is None: raise ValueError("Система несовместна или вырождена") if pivot_row != i: coefficients[i], coefficients[pivot_row] = coefficients[pivot_row], coefficients[i] pivot = coefficients[i][i] for r in range(i + 1, n): factor = coefficients[r][i] / pivot for c in range(i, n + 1): coefficients[r][c] -= factor * coefficients[i][c] x = [0] * n for i in range(n - 1, -1, -1): sum_ax = sum(coefficients[i][j] * x[j] for j in range(i + 1, n)) x[i] = (coefficients[i][n] - sum_ax) / coefficients[i][i] return x