Найти тему
Блокнот математика

Про тензоры простым языком

Поступило дельное предложение рассказать про тензоры совсем простым языком. Писать попроще сложнее, а писать посложнее --- проще. Попробую. Итак...

Все мы знаем сущности, выражаемые числами. Если объекты можно делить на части, приходим к числам дробным --- с вещественным (с некоторой натяжкой, потому что просто дробление целых дает рациональные --- но это отдельная тема). Просто надо понимать, что да, заряд кратен заряду электрона и потому целый... но мы можем считать его любым вещественным числом, и это нормально (если речь не идет именно о штучных электронах).

Полем (скалярным) называется числовое значение в каждой точке некоторой области. Пример поля --- температура в комнате. Она, вообще говоря, в разных точках разная. Второй пример поля --- потенциальная энергия, которая тоже разная в разных точках.

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

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

Существуют величины, обладающие направлением (помимо величины). Они называются векторы, и они меняются при смене координат, причем одним из только двух способов.

Давайте рассмотрим простейший пример: одномерный. Возьмем числовую прямую, зададим на ней начало отсчета и единицу длины: 1 метр. Зададим скалярное поле температуры, которая равномерно растет: в нуле она равна нулю, а на каждый метр растет на сто градусов. У нас появилось еще векторное поле темпа роста температуры: в каждой точке постоянное, равное 100 градусов на метр; назовем его "градиент". Еще зададим скорость некоторого газа, которая во всех точках одинакова и равна 1 метр в секунду.

Одномерное пространство.
Одномерное пространство.

В одномерном пространстве разнообразие координат невелико. Однако можно менять единицу измерения длины! Перейдем от метров к сантиметрам, то есть уменьшим единицу в сто раз.

Температура, скалярное поле, никак не отреагирует: в точке "1 метр", она же "100 см", она как была равна 100, так и осталась. Однако градиент температуры изменился: он был равен 100 (градусов на единицу длины), а стал равен 1 (градусу на единицу длины). Численно --- уменьшился в сто раз, как и единица длины. Во всех точках один и тот же. Скорость газа тоже изменилась: она была 1 единица длины в секунду, а стала равна 100 единицам длины: выросла, численно, в сто раз.

В пространстве двумерном, трехмерном и более высокой размерности координаты можно поворачивать, причем каждую ось --- независимо, так что координаты могут быть и непрямоугольными. Но принципы те же: векторы делятся на два класса, ковариантные и контравариантные.

Рассмотрим линейную функцию координат: ax+by. Числа (x,y) образуют вектор, числа (a,b) --- тоже. Но это векторы разного типа. Чтобы вычислить эту функцию в каких-нибудь новых координатах (t,s), нам нужно:

  1. вернуться в старые;
  2. умножить полученные числа x, y на a, b;
  3. сложить результаты.

Либо другой путь: можно

  1. перевести вектор (a,b) в новые координаты;
  2. умножить на соответствующие t, s;
  3. сложить.
Особенно ясно это, если мы пишем программу. У нас есть функции to_new и to_old, и все наглядно.

Давайте проделаем это на примерах Пусть у нас есть обычные декартовы координаты и мы хотим узнать абсциссу точки. То есть икс. Очень просто: нам называют точку (x,y), а мы говорим x. Формально мы умножаем вектор (x,y) скалярно на вектор (1,0).

Пусть координаты повернуты на 90 градусов влево; теперь брать первую координату неправильно: ведь вектор (2,0) стал (0,2), так что брать надо вторую координату --- иными словами, умножать на вектор (0,1). Вот мы и преобразовали ковариантный вектор! Либо можно вектор (0,2) повернуть обратно, вправо на 90 градусов, получить (2,0), и взять первую координату.

Вектор --- это тензор первого ранга. Тензор нулевого ранга --- скаляр. Есть тензоры второго и любого другого, более высокого ранга.

Тензор второго ранга --- это матрица, для двумерного пространства 2х2, для трехмерного 3х3, и так далее. Они тоже преобразуются при смене координат, и тоже одним из нескольких способов: дважды ковариантно, дважды контравариантно, и один раз так, один раз иначе.

Примером смешанного тензора ранга два является линейное преобразование. В матричной записи y=Ax, где x и y --- векторы, а А --- матрица. Ведь при смене координат нам нужно:

  1. Перейти в старые, получить вектор x;
  2. Умножить его на матрицу А;
  3. Результат, тоже вектор, перевести в новые координаты.

Давайте рассмотрим пример. Преобразование будет растяжение: первая координата вектора растянется в два раза, вторая --- в три раза и поменяет знак (ну, "в минус три раза"). Координаты опять повернем на 90 градусов влево. При этом вектор (x,y) перейдет в вектор (-y,x).

Получив вектор в новых координатах, обозначим его (X,Y), мы повернем его вправо, чтобы записать его в старых координатах: получим (Y,-X); совершим растяжение: (2Y,3X); повернем обратно: (-3X,2Y).

Получается, что мы можем забыть про старые координаты и работать в новых, умножая первую новую координату на -3 и вторую новую --- на 2.

В более сложных случаях координаты "перепутываются" и все несколько сложнее. См. заметку про поворот векторов на сфере.

Если кратко, то скорость ветра --- векторное поле; если мы хотим работать в повернутых координатах, чтобы географический полюс оказался на экваторе и с ним не было проблем, то преобразование скорости ветра --- задача не совсем простая. Если вектор дует везде в сторону полюса, то после поворота он должен дуть в сторону той точки, куда перешел полюс! Безхитростное, но интуитивно напрашивающееся сохранение компонент вектора приводит к северному ветру во всех точках: совсем другое поле, ничего общего: грубая ошибка.
Циклон вокруг полюса, перенесенный неправильно (восточный и восточный, безхитростно) перетает быть циклоном , что неправильно.
Циклон вокруг полюса, перенесенный неправильно (восточный и восточный, безхитростно) перетает быть циклоном , что неправильно.

Другой пример тензора второго ранга --- билинейная функция, которая в матричной форме записывается f(x,y) = (Ax)y. Ее результат --- скаляр, который преобразовывать не надо. Надо либо вернуть оба вектора обратно в старые координаты и произвести вычисление, либо два раза умножить А на матрицу перехода в новые координаты, и про старые забыть.

Рассмотрим поле скоростей газа или жидкости. На сей раз --- трехмерное. Выделим небольшой объем в форме шарика и проследим за его преобразованием за малое время. Он сдвинется на некоторое расстояние в соответствии со скоростью потока, растянется вдоль трех осей и повернется. С тензором, который описывает растяжения, мы уже познакомились. Матрица, которая его выражает, симметричная (если строки и столбы поменять местами, матрица не изменится), причем в любых координатах. В прямоугольных она диагональная. Такой тензор называется тензор деформаций.

Шарик жидкости. Видны растяжения и поворот.
Шарик жидкости. Видны растяжения и поворот.

Одна из целей всего этого --- бескоординатные соотношения. Если для тензоров получено некоторое равенство, оно справедливо в любых координатах. Например, уравнение диффузии записывается в тензорных операциях в удобных координатах и потом уже не надо его заново выводить в других, например, в сферических.

К примеру, длина вектора (абсолютная скорость ветра) --- это скаляр, но записать его надо в тензорной форме, как скалярное произведение вектора на себя (и корень квадратный). А если применить теорему Пифагора, возведя компоненты вектора в квадрат и сложив, как естественно поступить в декартовых координатах, то в других --- косоугольных или криволинейных координатах --- это формула вас подведет. Она не тензорная.