Системы уравнений и их геометрия

Решить систему уравнений — значит найти точку, где пересекаются несколько прямых или плоскостей.

Система линейных уравнений — набор уравнений первой степени с общими неизвестными; в матричной форме записывается как $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$.
Проверьте себя
1. Что геометрически означает решение системы из двух уравнений с двумя неизвестными?
Aдлину вектора
Bточку пересечения двух прямых
Cплощадь треугольника
Dугол между прямыми
2. Когда система двух уравнений не имеет решений?
Aкогда прямые пересекаются
Bкогда прямые совпадают
Cкогда прямые параллельны и не совпадают
Dрешения есть всегда
3. Запись Ax = b означает, что b — это:
Aсумма строк A
Bлинейная комбинация столбцов A с коэффициентами из x
Cопределитель A
Dобратная матрица