Системы уравнений и их геометрия
Решить систему уравнений — значит найти точку, где пересекаются несколько прямых или плоскостей.
Система линейных уравнений — набор уравнений первой степени с общими неизвестными; в матричной форме записывается как $A\vec{x} = \vec{b}$.
За каждым уравнением вида $a x + b y = c$ стоит прямая на плоскости. Решить систему из двух таких уравнений — найти точку их пересечения. Этот геометрический образ объясняет, почему у системы бывает одно решение, бесконечно много или ни одного.
Матричная запись
Систему
$$\begin{cases} 2x + y = 5 \\ x - y = 1 \end{cases}$$
удобно записать компактно через матрицу коэффициентов $A$, вектор неизвестных $\vec{x}$ и вектор правых частей $\vec{b}$:
$$\begin{bmatrix} 2 & 1 \\ 1 & -1 \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} = \begin{bmatrix} 5 \\ 1 \end{bmatrix}$$
Теперь «решить систему» = «найти вектор $\vec{x}$ такой, что $A\vec{x} = \vec{b}$». Это связывает системы с матрицами-преобразованиями: мы ищем, какой вектор преобразование $A$ переводит в заданный $\vec{b}$.
Три исхода
Геометрически возможны ровно три случая. Прямые пересекаются в одной точке — единственное решение. Прямые совпадают — бесконечно много решений. Прямые параллельны и не совпадают — решений нет (система несовместна).
def matvec(A, v):
return [sum(A[i][j] * v[j] for j in range(len(v)))
for i in range(len(A))]
A = [[2, 1], [1, -1]]
x = [2, 1] # предполагаемое решение
print("A*x =", matvec(A, x), "(должно быть [5, 1])")Вывод:
A*x = [5, 1] (должно быть [5, 1])
Проверка решения
Мы подставили $\vec{x} = (2, 1)$ и получили ровно правую часть $(5, 1)$ — значит это и есть решение. Проверять решение подстановкой всегда легко: умножаем $A$ на найденный $\vec{x}$ и сравниваем с $\vec{b}$.
Как работает под капотом
Уравнение $A\vec{x} = \vec{b}$ можно прочитать ещё одним способом: $\vec{b}$ — это линейная комбинация столбцов $A$ с коэффициентами $x, y$. Тогда «решение существует» означает «$\vec{b}$ лежит в линейной оболочке столбцов $A$». Если столбцы независимы и покрывают всё пространство (определитель $A$ не ноль), то любой $\vec{b}$ достижим единственным образом — отсюда единственное решение. Если столбцы зависимы, появляются либо бесконечность решений, либо несовместность — в зависимости от того, попал ли $\vec{b}$ в их оболочку.
Частые ошибки
- Считать, что у системы всегда есть решение. Параллельные непересекающиеся прямые дают несовместную систему.
- Путать «нет решений» и «бесконечно много решений». Первое — параллельные прямые, второе — совпавшие.
- Забывать проверять найденное решение подстановкой — это самый дешёвый способ поймать арифметическую ошибку.
Итог
- Линейное уравнение — это прямая (или плоскость), система — их пересечение.
- Матричная форма $A\vec{x} = \vec{b}$ объединяет систему в одно равенство.
- Решений бывает одно, бесконечно много или ни одного.
- $\vec{b}$ достижим, если лежит в линейной оболочке столбцов $A$.