Перейти к содержимому
Метод обратной подстановки ступенчатой матрицы

Метод обратной подстановки ступенчатой матрицы

Метод обратной подстановки (back substitution) — это метод решения системы линейных уравнений (СЛАУ), представленной в ступенчатом или приведенном ступенчатом виде. Он используется после того, как матрица системы уравнений приведена к такому виду с помощью метода Гаусса или других методов приведения к ступенчатой форме.

Суть метода обратной подстановки:

  1. Использование ступенчатой формы: Метод использует упрощенную структуру ступенчатой (или приведенной ступенчатой) матрицы, чтобы последовательно находить значения неизвестных переменных, начиная с конца системы уравнений.
  2. Решение последнего уравнения: Из последнего уравнения (которое содержит только одну переменную в ступенчатой форме) находят значение этой переменной.
  3. Подстановка вверх: Полученное значение переменной подставляют в предпоследнее уравнение, из которого находят значение следующей переменной.
  4. Повторение: Продолжают подстановку значений найденных переменных в уравнения, расположенные выше, пока не будут найдены значения всех переменных.

Пример:

Рассмотрим систему линейных уравнений, представленную в ступенчатом виде:

\(2x + y + z = 8\)  \((1)\)

\(y + 2z = 7\)  \((2)\)

\(z = 3\)  \((3)\)

Соответствующая матрица (расширенная матрица коэффициентов) в ступенчатом виде:

\(\begin{bmatrix}  2 &  1 &  1 & | 8 \\ 0 &  1 &  2 & | 7 \\ 0 &  0 &  1 & | 3 \\ \end{bmatrix}\)

Применим метод обратной подстановки:

  1. Из уравнения (3) находим z: \(z = 3​\)
  2. Подставляем ​z = 3​​ в уравнение (2) и находим y​​ : \(y + 2(3) = 7​\); \(y + 6 = 7\);​ \( y = 1\)​
  3. Подставляем z = 3​​ и ​y = 1​​ в уравнение (1) и находим x​​ : \(2x + 1 + 3 = 8​\);  \(2x + 4 = 8​\);  \(2x = 4​\); \(x = 2​\)

Таким образом, решение системы уравнений: \(x = 2\)​, \(y = 1​\), \(z = 3\)​.

Преимущества метода обратной подстановки:

  • Простота реализации: Метод прост в реализации и понимании.
  • Эффективность: После приведения матрицы к ступенчатому виду, обратная подстановка выполняется быстро.

Пример с использованием SymPy (для иллюстрации процесса):

from sympy import symbols, Matrix, solve

x, y, z = symbols('x y z')

# Система уравнений (в уже приведенном виде!)
eq1 = 2*x + y + z - 8
eq2 = y + 2*z - 7
eq3 = z - 3

# Решаем систему уравнений
solution = solve([eq1, eq2, eq3], (x, y, z))
print(solution) # Output: {x: 2, y: 1, z: 3} 

В этом примере, мы предполагаем, что система уравнений уже приведена к ступенчатому виду (или соответствующая матрица уже находится в ступенчатой форме). Функция solve​ из SymPy упрощает процесс решения, но важно понимать, что за ней стоит метод обратной подстановки (или его эквивалент).

Реализация обратной подстановки “вручную” (для демонстрации логики):

def back_substitution(matrix, variables):
    """
    Решает систему линейных уравнений методом обратной подстановки.

    Args:
        matrix: Матрица коэффициентов и свободных членов в ступенчатом виде (тип Matrix из sympy).
        variables: Список символьных переменных (тип symbols из sympy).

    Returns:
        Словарь, содержащий решение для каждой переменной.
    """
    n = len(variables)
    solution = {}

    for i in range(n - 1, -1, -1): # Итерируемся по строкам снизу вверх
        row = matrix[i, :] # берем i-тую строку
        known_sum = matrix[i, -1] #последний элемент i-той строки
        for j in range(i + 1, n):# Идем по известным переменным в строке (они справа)
            known_sum -= row[j] * solution[variables[j]] # Вычитаем известные переменные с коэфф.
        solution[variables[i]] = known_sum / row[i]  # Вычисляем значение текущей переменной

    return solution

from sympy import Matrix, symbols
x, y, z = symbols('x y z')
matrix = Matrix([
    [2, 1, 1, 8],
    [0, 1, 2, 7],
    [0, 0, 1, 3]
])
variables = [x, y, z]
solution = back_substitution(matrix, variables)
print(solution)

Этот код демонстрирует логику обратной подстановки, но в реальных задачах удобнее использовать встроенные функции SymPy (например, solve()​ или linsolve()​), которые автоматизируют этот процесс.

Важность:

Метод обратной подстановки - это важный элемент при решении систем линейных уравнений. Он позволяет эффективно находить решения после того, как система уравнений была упрощена с помощью приведения матрицы к ступенчатой или приведенной ступенчатой форме.

Метод обратной подстановки ступенчатой матрицы