. Линейная алгебра: пробный заезд
Линейная алгебра: пробный заезд

Линейная алгебра: пробный заезд

Аналит, линейка, линал — эти слова ассоциируются скорее с фразой «сдать и забыть», а не с тем, для чего на самом деле нужен замечательный раздел математики под названием линейная алгебра. Давайте попробуем посмотреть на него с разных сторон и разберемся, что же в нем хорошего и почему он так полезен в приложениях.

Часто первое знакомство с линейной алгеброй выглядит как-то так:

Не очень вдохновляет, правда? Сразу возникает два вопроса: откуда это все взялось и зачем оно нужно.

Начнем с практики

Когда я занимался вычислительной гидродинамикой (CFD), один из коллег говорил: «Мы не решаем уравнения Навье-Стокса. Мы обращаем матрицы.» И действительно, линейная алгебра — «рабочая лошадка» вычислительной математики:

Попробую проиллюстрировать эту связь на более простом примере, чем гидродинамика.

Пусть у нас есть тонкий металлический стержень с закрепленными концами, температура которых поддерживается равной нулю. Начнем греть стержень с помощью распределенного источника тепла, выделяющего q(x) Джоулей в секунду на единицу длины стержня в окрестности точки x. Какая температура t=t(x) установится? Сделаем очень грубый набросок модели. Когда установится равновесие, для каждого отрезка [x-h, x+h] нашего стержня приток тепла от источника должен быть равен сумме потоков тепла через границы отрезка. Если h достаточно мало, то с точностью до констант (в которые войдет h, да простят мне это читатели) это равенство можно записать так:

где Qx-h — поток тепла через левую границу, а Qx+h — через правую. Согласно закону Фурье тепловой поток пропорционален разности температур (ведь если нырнуть в бассейн, то в первые секунды будет холоднее всего). Поэтому (с точностью до констант, содержащих h)

Пусть h=1/N. Рассмотрим точки вида xi = i · h, где i=0, 1, 2, . N. Они называются сеткой. Тогда переменные ti=t(xi) будут удовлетворять уравнениям

где мы уже учли граничные условия, а qi=q(xi). Ну вот мы и получили систему линейных уравнений:

  • записать систему в короткой форме A · y = b (вот откуда взялось умножение матриц!);
  • понять, имеет ли она решение и единственно ли оно;
  • (в данном примере) найти его с помощью простой формулы y = A -1 b, как будто A — число;
  • (перетекая в вычислительную математику) построить эффективные численные методы решения систем линейных уравнений.

В качестве еще одного примера приведу известную задачу о ссылочном ранжировании страниц одного сайта (или интернета в целом). Есть N страниц, каждая из которых может содержать ссылки на другие страницы. Требуется определить, какие страницы являются наиболее важными. Как именно измерять «важность» — часть задачи. Мы будем представлять ее количественно в виде неотрицательного числа (веса). Начнем с естественного предположения: чем больше ссылок на данную страницу, тем больше ее вес. В этом подходе есть следующий недостаток: мы не учитываем вес ссылающихся страниц. Логично, что ссылка со страницы, имеющий больший вес, должна иметь большее значение. Эти рассуждения приводят нас к такой модели:

где aij — количество ссылок на i-ую страницу с j-ой, разделенное на общее количество ссылок с j-й страницы. Эту формулу можно читать так: вес i-й страницы равен сумме произведений веса j-й страницы на долю ссылок с j-й страницы на i-ую. Таким образом, мы свели нашу задачу к системе линейных уравнений. Более того, вектор весов p оказывается собственным вектором матрицы A, отвечающим собственному значению 1:

Существование этого вектора (строго говоря, для немного модифицированной матрицы A) гарантируется теоремой Фробениуса-Перрона. А найти его можно методом простых итераций.

Итак, линейная алгебра — это очень универсальный набор идей и инструментов, которые можно применять в самых разных областях. Но бесплатен только сыр в мышеловке, и за универсальность приходится платить: некоторые определения и теоремы могут показаться излишне абстрактными и запутанными. Но это не так: на самом деле, многие абстракции призваны упрощать жизнь, а не усложнять ее. «Если это выглядит как утка, плавает как утка и крякает как утка, то, вероятно, это утка» — по сути абстракция, причем весьма удобная, если к ней привыкнуть. То же самое с линейной алгеброй. Чтобы проиллюстрировать этот момент немного конкретнее, давайте дополним наш «внешний осмотр» кратким обсуждением того, что внутри.

Теперь немного теории

Линейная алгебра изучает векторные пространства и функции, которые отображают одно векторное пространство в другое. В основном рассматриваются линейные функции (удовлетворяющие соотношению f(α · x + β · y) = α · f(x) + β · f(y) для любых чисел α и β и любых векторов x и y). Бывают и нелинейные (например, квадратичные формы). Но прежде всего нужно понимать что такое вектор (и векторное пространство). И это не так тривиально, как могло бы показаться.

В учебниках и курсах обычно приводится абстрактное определение из 8 пунктов. Еще иногда говорят, что векторное пространство — это аддитивно записанная абелева группа в которой определено умножение на скаляры, удовлетворяющее 4 аксиомам. Но тем, кто впервые изучает линейную алгебру, это вряд ли поможет разобраться. Гораздо проще рассмотреть несколько конкретных примеров, и увидеть в них аналогию. А определение из 8 пунктов — всего лишь формализация этой аналогии. Поэтому перейдем сразу к примерам.

Знакомые всем со школы направленные отрезки конечно же являются векторами. Множество направленных отрезков — пример векторного пространства. Теперь рассмотрим многочлены. Их можно складывать друг с другом и умножать на числа. Обратите внимание: с точки зрения алгебры эти операции сложения многочленов и умножения многочлена на число работают точно по тем же правилам, что и для направленных отрезков. Например, равенство x+y = y+x (коммутативность) выполняется как для направленных отрезков, так и для многочленов. Поэтому множество многочленов является векторным пространством, а многочлены — векторами.

Раз многочлены похожи на направленные отрезки, то у них тоже должны быть координаты. Но как их искать и сколько координат у многочлена? Всем хорошо известно что на плоскости каждый вектор имеет ровно две координаты, а в пространстве — три. Почему это так? И что такое размерность вообще? Линейная алгебра дает ответ на данный вопрос: размерность — это максимальное число линейно независимых векторов. Что значит линейно независимых? Векторы x1, x2, . xn называются линейно зависимыми если найдутся числа α1, α2, . αn, хотя бы одно из которых отлично от нуля, такие что

Если векторы не являются линейно зависимыми, то они называются линейно независимыми. (Понятие линейной зависимости обобщает понятия параллельных и компланарных векторов: два вектора линейно зависимы тогда и только тогда, когда они параллельны. Три вектора линейно зависимы тогда и только тогда, когда они компланарны.)

Размерность пространства может быть как конечной (пространство многочленов степени не выше N), так и бесконечной (пространство всех многочленов). Оба случая встречаются на практике, но давайте ограничимся конечномерными. Пусть векторы x1, x2, . xn линейно независимы и n — размерность пространства. Тогда любой другой вектор x можно записать в виде линейной комбинации x1, x2, . xn, причем единственным образом. Коэффициенты соответствующей линейной комбинации и называются координатами.

Теперь у нас есть строгое определение координат. Но смысл не только в этом: по пути мы столкнулись с более фундаментальными (и менее заметными) понятиями линейной комбинации и линейной зависимости. А еще мы узнали что в n-мерном линейном пространстве не может быть больше, чем n линейно независимых векторов. Этот факт — один из краеугольных камней линейной алгебры.

Казалось бы, мы все еще знаем слишком мало, чтобы извлечь из этого хоть какую-то пользу. Однако уже сейчас мы можем решать задачи, на первый взгляд не имеющие отношения к линейной алгебре. Например, такую: даны многочлены p и q; существует ли многочлен от двух переменных R=R(x,y) такой, что R(p(t), q(t))=0 при всех t?

Тем временем наш «пробный заезд» подходит к концу. Но остается еще коротко обсудить различные способы изучения линейной алгебры. Ограничусь здесь небольшим обзором своего собственного опыта и попробую дать на основе него пару советов.

Википедия Книга — лучший источник знаний

Мое знакомство с линейной алгеброй началось с самостоятельного изучения книги О.В. Мантурова и Н.М. Матвеева «Курс высшей математики», когда я учился в школе. Эта книга — далеко не лучший (но и не худший) источник знаний в данной области. Просто она стала первым учебником по высшей математике, попавшим в мои руки, и ее содержание показалась мне более интересным, чем школьная программа. Хотя сейчас можно с уверенностью сказать: есть куча других книг, которые школьникам стоит (и будет не менее интересно) изучить в первую очередь. Например, «Как решают нестандартные задачи» (Канель-Белов А.Я., Ковальджи А.К.) или «Ленинградские математические кружки» (Генкин С.А., Итенберг И.В., Фомин Д.В.). Если же Вы возьметесь изучать линейную алгебру по книгам, то стоит запастись терпением: для достижения желаемого результата может потребоваться больше времени, чем кажется.

Своими основными знаниями линейной алгебры (и многих других разделов математики) я все же обязан Л.И. Коваленко — легендарному преподавателю МФТИ, семинары и консультации которой всегда собирали аншлаг. Сложно переоценить то внимание, которое она оказывала каждому студенту, до позднего вечера принимая задания и так называемые «карточки» — индивидуальные задачи. А еще во время этих сдач мы активно общались друг с другом. Все это позволяло не только быстрее освоить то, что написано в учебниках, но и то, чего там нет — интуицию, хитрые приемы и прочее.

Живое общение студентов с преподавателями (и друг с другом) ничто не заменит, и в этом преимущество традиционных курсов. Но когда я сам работал ассистентом и вел семинары, часто возникало желание некоторые вещи автоматизировать, чтобы на содержательное общение оставалось больше времени. Нужно ли студенту ждать встречи с преподавателем, чтобы получить стандартный ответ на стандартный вопрос? Или узнать правильно ли решена такая-то стандартная задача? Впрочем, не нужно недооценивать студентов: по большей части, они сами хорошо чувствуют когда делают «почти бессмысленную работу», и их это тоже демотивирует. Проверка доказательства или метода решения — это одно, но вот, скажем, проверку решения системы линейных уравнений можно практически полностью доверить компьютеру. Более того, во многих случаях можно автоматизировать не только проверку ответа, но и часть самого решения — например, элементарные преобразования матриц.

📎📎📎📎📎📎📎📎📎📎