Глава 49. Линейные уравнения

Общие сведения
Идеи реализации
Линейные уравнения и
Объектная модель капсулы
Упрощение линейных выражений
Исключение неизвестной
Класс Capsule
Разработка
Приготовления
Методы known и value
Метод simplify
Метод equation
Готовая программа

Рассмотрим такую задачу из планиметрии: дан треугольник A B C со сторонами B C = a , C A = b , A B = c . Нужно найти отрезки, на которые стороны треугольника делятся точками касания со вписанной окружностью.

Здесь не помешала бы картинка.

Заметим, что A Q = A R = p , B R = B P = q , C P = C Q = r (как касательные к окружности, проведённые из одной точки). Три неизвестных отрезка p, q, r удовлетворяют системе уравнений p + q c = 0 , q + r a = 0 , r + p b = 0 , решая которую, находим p = 1 2 b + c a , q = 1 2 c + a b , r = 1 2 a + b c .

Эта система уравнений даёт типичный пример системы линейных алгебраических уравнений. Слова «линейных» и «алгебраических» означают, что в левой части уравнения (после переноса всего, что только можно, из правой части в левую) находятся линейные многочлены от неизвестных.

Очень многие важные задачи математики так или иначе сводятся к решению систем линейных алгебраических уравнений. В некоторых случаях требуется решение сотен тысяч уравнений относительно сотен тысяч неизвестных.

Существует множество алгоритмов, посвящённых решению таких систем. Задача осложняется тем, что системы линейных уравнений не всегда имеют решение, и, кроме того, решений может быть бесконечно много.

В общем случае система линейных уравнений имеет следующий вид: a 1 1 x 1 + a 1 2 x 2 + + a 1 n x n + b 1 = 0 a 2 1 x 1 + a 2 2 x 2 + + a 2 n x n + b 2 = 0 a k 1 x 1 + a k 2 x 2 + + a k n x n + b k = 0 Она задаётся двумя наборами чисел a i j и b i ( i = 1 , , k , j = 1 , , n ). Многие алгоритмы, предназначенные для решения систем линейных уравнений, получают сразу оба набора чисел, то есть изначально знают все уравнения системы. Таковы методы Гаусса и Крамера.

Мы же реализуем другой алгоритм, в котором уравнения системы обрабатываются постепенно (индуктивно), по мере их появления. Переменные, упомянутые в уравнениях, постепенно уточняются, выражаясь через другие переменные. Некоторые из них получают при этом конкретные числовые значения, в то время как другие остаются полностью неизвестными или выраженными через неизвестные. Такие неизвестные переменные ждут своего часа в надежде на то, что очередное уравнение позволит их найти. Такой подход к линейным уравнениям применён в языках программирования и .

Информатика-54© А. Н. Швец