Метод обратной подстановки ступенчатой матрицы
Метод обратной подстановки (back substitution) — это метод решения системы линейных уравнений (СЛАУ), представленной в ступенчатом или приведенном ступенчатом виде. Он используется после того, как матрица системы уравнений приведена к такому виду с помощью метода Гаусса или других методов приведения к ступенчатой форме.
Суть метода обратной подстановки:
- Использование ступенчатой формы: Метод использует упрощенную структуру ступенчатой (или приведенной ступенчатой) матрицы, чтобы последовательно находить значения неизвестных переменных, начиная с конца системы уравнений.
- Решение последнего уравнения: Из последнего уравнения (которое содержит только одну переменную в ступенчатой форме) находят значение этой переменной.
- Подстановка вверх: Полученное значение переменной подставляют в предпоследнее уравнение, из которого находят значение следующей переменной.
- Повторение: Продолжают подстановку значений найденных переменных в уравнения, расположенные выше, пока не будут найдены значения всех переменных.
Пример:
Рассмотрим систему линейных уравнений, представленную в ступенчатом виде:
\(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}\)
Применим метод обратной подстановки:
- Из уравнения (3) находим z: \(z = 3\)
- Подставляем z = 3 в уравнение (2) и находим y : \(y + 2(3) = 7\); \(y + 6 = 7\); \( y = 1\)
- Подставляем 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()), которые автоматизируют этот процесс.
Важность:
Метод обратной подстановки - это важный элемент при решении систем линейных уравнений. Он позволяет эффективно находить решения после того, как система уравнений была упрощена с помощью приведения матрицы к ступенчатой или приведенной ступенчатой форме.