Возможно ли в линейной алгебре получение новых результатов? Почему в университетах этот курс учат неправильно? Какое матричное разложение является самым важным? Об умножении матрицы на вектор, быстрых алгоритмах и сингулярном разложении. рассказывает доктор физико-математических наук Иван Оселедец.
Линейная алгебра — это основа вычислительной науки. Как матанализ — основа математики в каком-то смысле, то вычислительная линейная алгебра — это основа вычислительной науки. Может показаться, что это что-то простое. Что такое вообще линейная алгебра? Это наука о векторных пространствах. Мы можем складывать векторы, есть матрицы или операторы, мы можем умножать матрицу на вектор, решать линейные системы. Выглядит просто.
В университетах линейная алгебра и аналитическая геометрия обычно преподаются на первом курсе. Какие-нибудь эллипсоиды рисовать. Выглядит просто. Сложно понять, что нового там можно сделать. Кажется, что это что-то уже устоявшееся, никаких новых результатов тут получить уже нельзя. На самом деле это не так. Это красивая область, которую можно отнести к фундаментальной науке. Это фундаментальная наука, но на этой фундаментальной науке основано большое количество совершенно прекрасных математических алгоритмов.
Могу рассказать о собственном опыте. Когда я слушал курс вычислительной математики и курс по линейной алгебре, у меня выработалось стойкое отвращение к этому курсу, потому что казалось, что этим занимаются роботы: аппроксимация, устойчивость, сходимость, аппроксимация, устойчивость, сходимость — кто знает, тот поймет. И кажется, что ничего нового тут быть не может, никакой красоты тут быть не может. Когда люди занимаются наукой, одна из основных мотиваций, особенно в науке без каких-то приложений, без какой-то экспериментальной части, — это как раз красота и возможность сделать что-то новое. И кажется, что в линейной алгебре получить новые результаты очень сложно. Но это не так. Существует большое количество журналов, существует большое количество специализированных сообществ.
Чем занимается вычислительная линейная алгебра? Опять же история из моей жизни. Когда я был на третьем курсе, встретил своего будущего научного руководителя, он мне пытался рассказать, чем занимается. Он говорит: «Я занимаюсь умножением матрицы на вектор». В этот момент мой энтузиазм упал до нуля, потому что это какой-то идиотизм — умножать матрицу на вектор. Это мы умеем. То есть решать линейные системы — просто, умножать матрицу на вектор — тоже вроде тривиально: строчка на столбец, строчка на столбец. Что тут может быть сложного?
Но есть одна небольшая проблемка: эти матрицы очень большие, это матрицы миллион на миллион, миллиард на миллиард. Если прикинуть, сколько нужно операций, чтобы это сделать, это очень много операций. Вы даже эту матрицу целиком не сможете сохранить в памяти компьютера. Если это матрица миллион на миллион, то у вас получается 1012 элементов, каждый элемент занимает в двойной точности 8 байт, 8 на 1012. Сейчас есть параллельные компьютеры, большие диски, вы можете это сохранить. Но вы хотите это делать на обычном компьютере, на ноутбуке, в своей обычной жизни решать системы такими матрицами. Это нормальная задача. Если вы рассмотрите, скажем, двумерную поверхность, разобьете ее здесь на тысячу частей, здесь на тысячу частей — у вас как раз получится миллион элементов, и матрица будет иметь порядок 106.
Здесь собака зарыта: как умножать матрицу на вектор, если матрица большая и, не дай бог, еще и неразреженная.
Разреженная матрица — это когда у вас матрица с большим количеством нулей, то есть все дифференциальные операторы связаны с разрядами, а если у вас оператор является интегральным, то есть матрица плотная, все элементы не нули, все их надо вроде как считать, — эта задача кажется неподъемной. Такого рода задачи научились решать не так давно, где-то в конце 80-х годов.
Есть список лучших достижений XX века. В области вычислительных методов, в области линейной алгебры это быстрый мультипольный метод Грингарда и Рохлина. Грингард сейчас директор Курантовского института в Нью-Йорке, активный ученый, Рохлин тоже активный ученый. Они придумали метод, как можно то, что делается за n2 операций, где n — это число элементов в векторе, тот самый миллион, сделать за О(n*log n). Это был прорыв. Единственное отличие, что теперь мы вычисляем матрично-векторные произведения не точно, а с какой-то заданной точностью, мы задаем некоторый порог точности. Скажем, мы хотим три знака после запятой и получаем ответ с точностью три знака после запятой. Потом мы говорим: хотим пять знаков после запятой. И нам надо посчитать уже подольше. Тем не менее это все равно О(n*log n), умноженный на какой-то множитель, который зависит от точности.
Это смена парадигмы, что нужно те операции, к которым мы привыкли, которым учат в университете, которые выполняются точно, с точностью до машинной погрешности, выполнять приближенно с некоторой точностью, которая нужна в приложении. Часто, например, в приложении не нужно 16 знаков после запятой, достаточно иметь 2–3 знака, и это хорошо.
Какая математика зашита за этими быстрыми алгоритмами? Если вернуться к университетскому курсу — и это беда не только российских университетов, это беда многих мировых университетов, — линейную алгебру учат неправильно. Например, там встречается такое замечательное понятие, как «определитель». Определитель учат, но определитель в линейной алгебре не используется нигде и никогда, это чисто теоретическое понятие. Жуткая неустойчивость с вычислительной точки зрения, когда мы хотим что-то сделать устойчивым. Что значит устойчивость? У вас есть какое-то вычисление, вы выполняете его на компьютере в конечной точности и хотите получить результат с гарантированной погрешностью. Если алгоритм неустойчив, вы этот результат получите неправильно. У вас алгоритм работает правильно в точной арифметике, а на компьютере в условиях машинной погрешности он работает неточно. Решать ту же линейную систему по правилу Крамера, если 2*2, значит, нужно составить определитель, составить так называемые миноры, — это делать не надо.
Есть несколько замечательных разложений. Все сводится к матрице (матрица — это квадратная таблица или представление некоторого оператора) и к некоторым матричным разложениям. Линейная алгебра сводится к матричному анализу.
Для матриц существуют различные разложения. Исходная матрица, в которой n2 параметров, представляется в некотором более простом виде, например в виде произведения трех матриц, которые имеют специальную структуру. То есть из матриц общего вида возникает матрица общей структуры.
Когда зарождалась вычислительная линейная алгебра, когда людям действительно надо было решать линейные системы на компьютере, им пришлось придумать новые подходы. Возникла так называемая ортогональная линейная алгебра, возникло понятие ортогональных матриц, понятие вычислительной устойчивости, возник анализ ошибок округления, который активно развивался как у нас, так и за рубежом. Было получено очень много интересных результатов, и зарождались новые алгоритмы.
Одним из самых замечательных разложений, на котором, собственно, алгоритм Грингарда и Рохлина был основан, — когда я студентам читаю лекции, всегда им практически с первой лекции говорю, что если они откроют книжку по матричному анализу Голуб — Ван Лоун, классическую книжку, то она не начнется ни с определителей, ни с чего другого, а начнется она с сингулярного разложения.
Есть замечательное матричное разложение — сингулярное разложение. Это самое важное матричное разложение, на нем основано практически все.
Оно позволяет заданную матрицу, которая определяется n2 параметров, во многих случаях приближать так называемыми матрицами малого ранга. То есть матрицы малого ранга определяются небольшим количеством параметров. Есть некий параметр, который называется рангом, и мы хотим, чтобы этот ранг был небольшим. В исходной матрице, если она квадратная, n2 чисел, это понятно. Малоранговая матрица определяется 2*n*r параметров. Если ранг у вас маленький, вы можете существенно уменьшить количество параметров.
Другое дело, если вы рассмотрите все пространство квадратных матриц, оно большое, матрицы малого ранга образуют в этом пространстве очень маленькое многообразие, и вероятность попасть в это многообразие очень мала. Фактически вы берете случайную матрицу из каких-то элементов, и у вас получается, что матрица не будет малого ранга. Но на практике эти матрицы встречаются повсеместно. Не сама матрица имеет малый ранг, может быть, ее какая-то небольшая часть. Но, комбинируя некоторым образом это сингулярное разложение, которое связано с идеей разделения переменных, можно получить такие малопараметрические представления.
Если возвращаться к теореме, что матриц малого ранга не бывает, если вы возьмете случайную матрицу, она будет не матрицей малого ранга, тут можно ответить: если вы берете случайную матрицу, она с вероятностью 1 будет плотной, то есть все элементы не 0, и с вероятностью 1 она будет почти ортогональной, то есть она хорошо вращается. На практике, если вы берете практически любую задачу, матрица будет разреженная и плохо обусловленная. Практические задачи и случайные матрицы не имеют ничего между собой общего в этом смысле. Можно на философском уровне объяснить, почему матрицы малого ранга возникают во многих приложениях, то есть они возникают и в факторном анализе, они возникают и в различных приложениях, связанных с решением дифференциальных интегральных уравнений, и во многих-многих других. В некотором смысле сингулярное разложение идеально с обеих точек зрения. У вас бывают алгоритмы быстрые, которые задачи решают быстро, но неустойчивые, неточные, а бывают алгоритмы точные, но при этом медленные. Сингулярное разложение — оно и быстрое, и точное.
Линейная алгебра в последние годы, где-то, наверное, в 80-х, переживает второе рождение, связанное как раз с малоранговыми матрицами, с матрицами, которые имеют специальную структуру. Например, такая вещь, как тёплицева матрица. Это означает, что элементы матриц находятся вдоль диагонали — диагональная матрица. Структура матриц обусловлена приложениями. Если это тёплицева матрица, значит, у вас какая-то величина зависит только от расстояния между двумя объектами — например, взаимодействие, которое зависит только от радиуса.
Матрицы малого ранга связаны с некоторыми свойствами геометрического разделения. Это приводит к новым задачам, к новым теоремам и к новой науке.
Замечательно, что в линейной алгебре можно заниматься вещами, которые на первый взгляд не имеют прямого приложения. Можно заниматься фундаментальной наукой, разрабатывать какие-то базовые алгоритмы, решения базовых задач линейной алгебры вроде умножения матрицы на вектор. Но совершенно точно это найдет применение. Если вы сможете улучшить какой-нибудь базовый алгоритм — этот базовый алгоритм входит в большое количество пакетов, в большое количество программ, — то будет большая выгода.
Есть классическая задача при умножении матриц: строчка на столбец. Есть большое количество пакетов, которые нацелены на то, чтобы сделать это наиболее эффективно на современных компьютерах. В большом проекте, который долго развивался, в ATLAS’е, — там один из лидеров был Джек Донгарра, — пытались настроить какие-то параметры алгоритма на архитектуры. Его много лет развивали, и где-то в 2003 году один человек, японец по фамилии Гото, предложил новый алгоритм. Обычно говорят, что не надо писать свой алгоритм для базовых задач умножения матриц, это уже всегда сделано в пакетах, не пытайтесь даже. Но если у вас есть идея, как это улучшить, это иногда стоит попробовать. Один человек написал пакет, и он оказался быстрее на 20–30%, чем пакеты, которые разрабатывались большими коммерческими компаниями, большими консорциумами. У него была одна маленькая идея, связанная с программистскими вещами, с алгеброй, он смог это сделать. Даже те алгоритмы, которые, кажется, уже в бронзе отлиты, — это далеко не так. Если у вас есть идея, вы можете попробовать. А если нет, то берите готовое.
Иван Оселедец, доктор физико-математических наук, associate professor at Skolkovo Institute of Science and Technology, старший научный сотрудник Института вычислительной математики РАН.
Рассмотрим сумму двух эрмитовых матриц A и B. Это снова будет эрмитова матрица. В 1912 году Герман Вейль задался таким вопросом: что можно сказать о ее собственных значениях, если известны собственные значения матриц A и В? Во-первых, ясно, что след A+B будет равен сумме следов исходных матриц; во-вторых, наибольшее собственное значение A+B не превосходит суммы наибольших собственных значений A и B. А какие еще есть ограничения? В 1962 году Альфред Хорн выписал ряд неравенств на собственные значения матриц A, B и A+B и сформулировал гипотезу о том, что это полный набор условий. В 1999 году А.А.Клячко свел эту гипотезу к так называемой гипотезе о насыщении. Они же предложили описание неравенств Хорна при помощи диаграмм или «сот», которые имеют самое прямое отношение к теории представлений полной линейной группы GL(n).
Общая постановка такова. Пусть P(x_1,…,x_n) — некоммутативный многочлен от матриц порядка n. Каким может быть множество его значений? И. Капланский и И. В. Львов поставили вопрос о том, что множество значений полилинейного многочлена есть векторное пространство (в этом случае оно совпадает либо с нулем, либо с пространством всех матриц, либо с пространством бесследовых матриц, либо со скалярными матрицами). Решение проблемы Капланского для матриц второго порядка над квадратично замкнутым полем оказалось весьма нетривиальным и глубоким. Вопросы, связанные с уравнениями в матрицах, помимо прикладного значения имеют отношение к конструкции алгебраически замкнутого тела, к теореме о свободе: если добавить новую некоммутативную переменную и соотношение, где та участвует, то это не приведет к появлению новых соотношений. Имеется ряд глубоких проблем, относящихся к множеству значений слов в группе — в частности, в матрицах второго порядка.
Если что и даёт ясное представление о высшей математике, так это линейная алгебра. Барьер повседневности здесь преодолевается легко и просто. При этом оказывается, что удивительные вещи находятся не в туманной дали, а совсем рядом. В этом курсе: линейные задачи и векторы, линейные преобразования и матрицы, элементарные преобразования, теория определителей, системы уравнений, замена координат, собственные значения и собственные векторы, операторы на комплексной плоскости, спектральная теория, квадратичные формы, сопряжённое пространство, триангуляция Шура, функции от матриц, матричные ряды.
В этом курсе изучается такой замечательный и вполне элементарный объект, как конечномерные коммутативные ассоциативные алгебры над комплексными числами. Здесь достаточно легко доказать первые структурные результаты, но получить полную классификацию едва ли возможно. Мы обсудим различные техники работы с конечномерными алгебрами (максимальные идеалы и локальные алгебры, фильтрации и градуировки, последовательность Гильберта-Самюэля и цоколь) и получим явное описание алгебр малых размерностей. Оказывается, конечномерные алгебры тесно связаны с действиями с открытой орбитой коммутативных групп матриц на аффинных и проективных пространствах. Мы объясним эту связь. В процессе объяснения естественно возникнут такие понятия как экспонента линейного оператора, представление группы и циклический модуль, алгебра Ли и ее универсальная обертывающая.
Курс посвящён обобщению понятия вращения евклидова пространства. Оказывается, что с каждым евклидовым пространством можно связать новое пространство, объекты которого называются спинорами. Между исходным пространством и пространством спиноров имеется замечательная связь: всякому вращению исходного пространства можно сопоставить преобразование пространства спиноров, определённое однозначно с точностью до знака. Получаемые таким образом преобразования пространства спиноров образуют группу, называемую спинорной группой.
Матрица. Вектор. Сложение векторов и свойства сложения векторов. Геометрическая интерпретация вектора и сложения векторов. Умножение вектора на скаляр и его свойства. Однородная линейная функция вещественных чисел. Геометрическая интерпретация умножения вектора на скаляр. Умножение вектора на матрицу. Зачем нам нужны векторы? Сравнение свойств сложения и умножения вещественных чисел и векторов. Умножение на нулевой вектор. Дистрибутивность. Транспонирование матрицы. Система линейных уравнений. Метод исключения Гаусса-Джордана. Умножение матрицы на матрицу. Обратная матрица. Определитель квадратной матрицы.
Сколько вещественных корней имеет заданный полином с вещественными коэффициентами? Замечательная теорема Штурма дает исчерпывающее решение этой задачи. “Теорема, имя которой я имею честь носить”, – так говорил об этом результате Штурм, который считал его главным достижением своей жизни. Совместна ли заданная система полиномиальных уравнений и неравенств от нескольких вещественных переменных? Теорема Зайденберга–Тарского, отвечающая на этот вопрос, является грандиозным многомерным обобщением теоремы Штурма. В лекциях будет рассказано новое наглядное решение задачи Штурма. Оно несложно переносится на многомерный случай и приводит к доказательству теоремы Зайденберга–Тарского.
Как грамотно вычислить значение полинома от многих переменных? Можно, конечно, посчитать по отдельности каждый входящий в него моном и результаты сложить, но нельзя ли придумать способ сэкономить на числе используемых операций хотя бы для некоторых наиболее важных и часто встречающихся полиномов? Изучением таких вопросов как раз и занимается теория алгебраической сложности вычислений. Оказывается, что для некоторых классов полиномов ответ отрицателен, для других он положителен, а в подавляющем большинстве случаев ответ неизвестен. Соответствующие вопросы, открытые в течении нескольких десятилетий, по праву числятся среди наиболее важных, интересных и трудных проблем современной теории сложности.
Как математически были классифицированы симметрии явлений? Как соотносятся полупростые группы Ли и физика элементарных частиц? Что явилось математической предпосылкой существования кварков? О полупростых группах Ли, классификации элементарных частиц и математических моделях в природе рассказывает Алексей Михайлович Семихатов, доктор физико-математических наук, главный научный сотрудник Физического института им. Лебедева РАН.
Представьте себе, что на стол высыпана кучка совершенно одинаковых по виду монет, но вам сказали, что одна из этих монет — фальшивая. Она отличается от остальных монет по весу, но вам не сообщили, легче она или тяжелее. В вашем распоряжении имеются чашечные весы без гирь. Как нужно действовать, чтобы выделить эту монету и выяснить её тип (то есть узнать, легче она или тяжелее) за минимальное число взвешиваний?