Поступило дельное предложение рассказать про тензоры совсем простым языком. Писать попроще сложнее, а писать посложнее --- проще. Попробую. Итак...
Все мы знаем сущности, выражаемые числами. Если объекты можно делить на части, приходим к числам дробным --- с вещественным (с некоторой натяжкой, потому что просто дробление целых дает рациональные --- но это отдельная тема). Просто надо понимать, что да, заряд кратен заряду электрона и потому целый... но мы можем считать его любым вещественным числом, и это нормально (если речь не идет именно о штучных электронах).
Полем (скалярным) называется числовое значение в каждой точке некоторой области. Пример поля --- температура в комнате. Она, вообще говоря, в разных точках разная. Второй пример поля --- потенциальная энергия, которая тоже разная в разных точках.
Заметим, что скалярное поле не зависит от выбора координат --- способа задавать точки числами. Например, температура воздуха в городе --- это поле, в данном случае --- двумерное. Или трехмерное, если учитывается еще высота над землей. Мы можем описывать точки --- места --- географическими координатами: долготой и широтой (плюс высота). А можем --- улицами, если планировка регулярная (плюс указание этажа). А если нерегулярная, то можно указать улицу и номер дома. Еще можно ввести полярные координаты, отсчитывая их от центральной площади и указывая направление и расстояние от площади.
Но в любом случае температура на вашем балконе будет такая, какая она есть, как ни обозначай балкон: долготой, широтой и высотой, пересечением улиц и этажом, или направлением от центральной площади и расстоянием до нее.
Существуют величины, обладающие направлением (помимо величины). Они называются векторы, и они меняются при смене координат, причем одним из только двух способов.
Давайте рассмотрим простейший пример: одномерный. Возьмем числовую прямую, зададим на ней начало отсчета и единицу длины: 1 метр. Зададим скалярное поле температуры, которая равномерно растет: в нуле она равна нулю, а на каждый метр растет на сто градусов. У нас появилось еще векторное поле темпа роста температуры: в каждой точке постоянное, равное 100 градусов на метр; назовем его "градиент". Еще зададим скорость некоторого газа, которая во всех точках одинакова и равна 1 метр в секунду.
В одномерном пространстве разнообразие координат невелико. Однако можно менять единицу измерения длины! Перейдем от метров к сантиметрам, то есть уменьшим единицу в сто раз.
Температура, скалярное поле, никак не отреагирует: в точке "1 метр", она же "100 см", она как была равна 100, так и осталась. Однако градиент температуры изменился: он был равен 100 (градусов на единицу длины), а стал равен 1 (градусу на единицу длины). Численно --- уменьшился в сто раз, как и единица длины. Во всех точках один и тот же. Скорость газа тоже изменилась: она была 1 единица длины в секунду, а стала равна 100 единицам длины: выросла, численно, в сто раз.
В пространстве двумерном, трехмерном и более высокой размерности координаты можно поворачивать, причем каждую ось --- независимо, так что координаты могут быть и непрямоугольными. Но принципы те же: векторы делятся на два класса, ковариантные и контравариантные.
Рассмотрим линейную функцию координат: ax+by. Числа (x,y) образуют вектор, числа (a,b) --- тоже. Но это векторы разного типа. Чтобы вычислить эту функцию в каких-нибудь новых координатах (t,s), нам нужно:
- вернуться в старые;
- умножить полученные числа x, y на a, b;
- сложить результаты.
Либо другой путь: можно
- перевести вектор (a,b) в новые координаты;
- умножить на соответствующие t, s;
- сложить.
Особенно ясно это, если мы пишем программу. У нас есть функции 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 --- векторы, а А --- матрица. Ведь при смене координат нам нужно:
- Перейти в старые, получить вектор x;
- Умножить его на матрицу А;
- Результат, тоже вектор, перевести в новые координаты.
Давайте рассмотрим пример. Преобразование будет растяжение: первая координата вектора растянется в два раза, вторая --- в три раза и поменяет знак (ну, "в минус три раза"). Координаты опять повернем на 90 градусов влево. При этом вектор (x,y) перейдет в вектор (-y,x).
Получив вектор в новых координатах, обозначим его (X,Y), мы повернем его вправо, чтобы записать его в старых координатах: получим (Y,-X); совершим растяжение: (2Y,3X); повернем обратно: (-3X,2Y).
Получается, что мы можем забыть про старые координаты и работать в новых, умножая первую новую координату на -3 и вторую новую --- на 2.
В более сложных случаях координаты "перепутываются" и все несколько сложнее. См. заметку про поворот векторов на сфере.
Если кратко, то скорость ветра --- векторное поле; если мы хотим работать в повернутых координатах, чтобы географический полюс оказался на экваторе и с ним не было проблем, то преобразование скорости ветра --- задача не совсем простая. Если вектор дует везде в сторону полюса, то после поворота он должен дуть в сторону той точки, куда перешел полюс! Безхитростное, но интуитивно напрашивающееся сохранение компонент вектора приводит к северному ветру во всех точках: совсем другое поле, ничего общего: грубая ошибка.
Другой пример тензора второго ранга --- билинейная функция, которая в матричной форме записывается f(x,y) = (Ax)y. Ее результат --- скаляр, который преобразовывать не надо. Надо либо вернуть оба вектора обратно в старые координаты и произвести вычисление, либо два раза умножить А на матрицу перехода в новые координаты, и про старые забыть.
Рассмотрим поле скоростей газа или жидкости. На сей раз --- трехмерное. Выделим небольшой объем в форме шарика и проследим за его преобразованием за малое время. Он сдвинется на некоторое расстояние в соответствии со скоростью потока, растянется вдоль трех осей и повернется. С тензором, который описывает растяжения, мы уже познакомились. Матрица, которая его выражает, симметричная (если строки и столбы поменять местами, матрица не изменится), причем в любых координатах. В прямоугольных она диагональная. Такой тензор называется тензор деформаций.
Одна из целей всего этого --- бескоординатные соотношения. Если для тензоров получено некоторое равенство, оно справедливо в любых координатах. Например, уравнение диффузии записывается в тензорных операциях в удобных координатах и потом уже не надо его заново выводить в других, например, в сферических.
К примеру, длина вектора (абсолютная скорость ветра) --- это скаляр, но записать его надо в тензорной форме, как скалярное произведение вектора на себя (и корень квадратный). А если применить теорему Пифагора, возведя компоненты вектора в квадрат и сложив, как естественно поступить в декартовых координатах, то в других --- косоугольных или криволинейных координатах --- это формула вас подведет. Она не тензорная.