Отправляет email-рассылки с помощью сервиса Sendsay

Теория Относительности

  Все выпуски  

Теория Относительности


Информационный Канал Subscribe.Ru

Теория Относительности | http://www.relativity.ru | editor@relativity.ru

Но 15. Что такое матрица?

[кадр с Морфеем из к/ф Матрица]

Содержание

Колонка редактора

Здравствуйте, уважаемые читатели!

Тут у нас в форуме один товарищ по имени Centurion выдал такую записку (по поводу парадокса карандаша и пенала)

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

что я очень расстроился! Я уже боюсь показаться занудным, повторяя, что "свет не виноват" и что эффекты теории относительности - не иллюзорны. А тут - такое.

Прямо руки опускаются!

Сачала я подумал, что я все-таки плохо объясняю. Но потом решил, что это верно лишь отчасти. Ведь всем известно, что когда читаешь книгу, обычно видишь там именно то, что хочешь увидеть, а вовсе не то, что хотел сказать автор. Это называется "смотрю в книгу - вижу фигу". Поэтому книга (или просто текст) сама по себе является несовершенным инструментом обучения. Требуется кое-что ещё!

Что именно? Конечно же общение! Я никого не упрашиваю, я просто уверяю вас, что если вы не будете общаться, то так и останетесь в плену собственных желанных заблуждений.

Короче, все на форум, господа и товарищи! :-)

Введение

Теперь про матрицы, раз обещал.

Напоминаю, что мы движемся к выводу преобразований Лоренца. Поэтому толчём все эти координаты, потому, что преобразования Лоренца - это преобразования координат.

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

Инкапсуляция в программировании

В программировании есть такой термин - инкапсуляция. Это действие, при котором ненужные подробности программы прячутся (инкапсулируются) в программный модуль или класс (чёрный ящик).

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

Второй способ является примером инкапсуляции и он удобнее. Дело в том, что чем больше всяких действий и буквочек в программах и формулах, тем больше нагрузка на человеческие мозги, тем выше вероятность ошибки. Поэтому, если мы вместо трёх элементарных действий будем выполнять одно составное, да ещё именованное, то мозгам будет легче.

Два линейных преобразования подряд

Помните в прошлом выпуске мы посмотрели с вами линейные преобразования координат?

Мы выяснили, что одно преобразование требует четырёх чисел, четырёх умножений и двух сложений.

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

А что представлять, давайте всё распишем, чтобы ужаснуться.

Итак, первое преобразование управляется первой четвёркой параметров:

A1, B1, C1, D1.

Для координат x и y они дают

x' = A1 * x + B1 * y

y' = C1 * x + D1 * y.

Это у нас что? Это просто формулы в которые мы подставляем первые координаты (справа) и получаем, чему должны быть равны вторые координаты (слева).

Теперь применим второе преобразование. Оно управляется второй четвёркой чисел:

A2, B2, C2, D2.

Для координат x' и y' они дают

x'' = A2 * x' + B2 * y'

y'' = C2 * x' + D2 * y'.

А это у нас что? Это просто формулы в которые мы подставляем вторые координаты (справа) и получаем, чему должны быть равны третьи координаты (слева).

Теперь, если мы хотим получить итог, нам нужно подставить в последнюю пару формул значения координат со штрихами из первой пары. Получим

x'' = A2 * ( A1 * x + B1 * y ) + B2 * ( C1 * x + D1 * y )

y'' = C2 * ( A1 * x + B1 * y ) + D2 * ( C1 * x + D1 * y ).

Ну а это что? Это просто формулы в которые мы подставляем первые координаты (справа) и получаем, чему должны быть равны третьи координаты (слева).

Ну как, видите? Формулы лавиннобразно разрастаются! Никто не хочет раскрыть скобочки? Ладно, я раскрою:

x'' = A2 * A1 * x + A2 * B1 * y + B2 * C1 * x + B2 * D1 * y

y'' = C2 * A1 * x + C2 * B1 * y + D2 * C1 * x + D2 * D1 * y.

Я использовал распределительный (дистрибутивный) закон умножения, который все проходили в школе.

Теперь в этих формулах что плохо? Что исходные координаты встречаются в них по многу раз. Всегда удобно, когда исходные данные встречаются поменьше раз, потому что тогда их легко подставлять.

Чтобы улучшить формулы, соберем подобные члены (тоже школьное действие).

x'' = (A2 * A1 + B2 * C1) * x + (A2 * B1 + B2 * D1) * y

y'' = (C2 * A1 + D2 * C1) * x + (C2 * B1 + D2 * D1) * y.

Ну вот, теперь мы получили формулы, которые дают третьи координаты, если знаешь первые.

Ничего они вам не напоминают? Правильно - линейное преобразование! То, что стоит в этих формулах в скобках - это просто комбинации из постоянных чисел, характеризующих два преобразования, которые мы применили последовательно. Зная эти два преобразования, мы можем заранее рассчитать четыре числа

A3 = A2 * A1 + B2 * C1

B3 = A2 * B1 + B2 * D1

C3 = C2 * A1 + D2 * C1

D3 = C2 * B1 + D2 * D1

и по формулам

x'' = A3 * x + B3 * y

y'' = C3 * x + D3 * y.

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

Ну вот. Мы видели, что формулы все были простые, со школьной математикой, но громоздкие. А если вспомнить, что нам придётся иметь дело с трех- и даже четырёхмерным пространством, то представьте, сколько будет членов, координат и скобок!

Инкапсуляция в математике

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

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

Итак, больше уже нет смысла таить.

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

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

Матрицы и умножение матриц

Итак, матрица - это таблица чисел. Говоря о линейных преобразованиях координат на плоскости, мы имели дело с матрицами размером 2х2.

Вот, как можно записать первую четвёрку чисел:

A1 B1
C1 D1

Умножение матриц даёт в результате тоже матрицу, формулу элементов которой мы уже получили:

A2 B2
C2 D2
*
A1 B1
C1 D1
=
A3 B3
C3 D3
=
A2*A1 + B2*C1 A2*B1 + B2*D1
C2*A1 + D2*C1 C2*B1 + D2*D1

Как видите, математики решили, что наложение двух линейных преобразований соответствует умножению второй матрицы на первую. Как вы понимаете, поскольку операция умножения матриц была ими изобретена, то это не имеет значения. Главное - знать, о чём речь.

Если присмотреться и перерисовать исходные и результирующую матрицы иначе, а именно, вот так

    A1 B1
    C1 D1
A2 B2 A2*A1 + B2*C1 A2*B1 + B2*D1
C2 D2 C2*A1 + D2*C1 C2*B1 + D2*D1

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

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

Обратите внимание, что это правило мы с вами сами вывели вверху, когда получали множители итогового преобразования!

Оказывается, это правило позволяет нам записать и отдельное линейное преобразование!

Вспомним, оно выглядит вот так:

x' = A1 * x + B1 * y

y' = C1 * x + D1 * y.

Если записать отдельно координаты и отдельно числа, описывающие преобразование и расположить их так, как мы только что расположили матрицы 2х2, то получится

    x
    y
A1 B1 A1 * x + B1 * y
C1 D1 C1 * x + D1 * y

та же самая ситуация - на пересечаниях строк и столбцов будут стоять формулы, содержащие только буквы из них.

Иными словами, пара координат x и y - это тоже матрица, только размер у неё 2х1, такая матрица называется матрица-столбец. Но умножать её можно по тем же правилам - строку на столбец!

Итак, сейчас мы увидим всю силищу инкапусляции в математике!

1) Любое линейное преобразование можно записать в виде

X' = M * X,

где X - это матрица-столбец из начальных координат, M - это матрица, в которой расставлены числа, управляющие преобразованием, X' - это матрица-столбец из конечных координат, а "*" - это произведение по правилам матриц..

2) Любые два последовательных линейных преобразования, описываемых матрицами M1 и M2 дадут в итоге линейное преобразование, описываемое матрицей

M3 = M2 * M1,

причём "*" - это произведение по правилам матриц.

3) Эти два факта, которые мы с вами, можно сказать, сами изобрели (точнее говоря, так было изобретено умножение матриц, что выполняются эти два факта) превращаются в проявление всего-навсего сочетательного (ассоциативного) закона для умножения матриц:

M2 * (M1 * X) = (M2 * M1) * X

Круто? Как видите, умножение матриц все-таки похоже на умножение чисел - оно тоже обладает сочетательным свойством.

Законы алгебры матриц

А вот переместительным свойством умножение матриц не обладает. То есть, в общем случае

M1 * M2 ≠ M2 * M1

Из-за отсутствия такого "родного" для умножения чисел закона, как переместительный, сразу становится очевидно, что умножение матриц - это совсем другая операция.

Хотя... Если считать числа матрицами размером 1х1, то правило "строка на столбец" даёт как раз простое произведение и тогда можно считать, что "обычное" умножение - это частный случай умножения матриц, когда их размер составляет 1х1.

Ну вот. Приведём ещё некоторые свойства из алгебры матриц.

Матрицы можно не только умножать, но и складывать. Сложение матриц делается гораздо проще, чем умножение - просто складываются соответствующие элементы двух матриц.

Матрицу можно умножать на обычное число - в этом случае каждый её элемент просто умножается на это число.

Ещё одно очень важное свойство: есть так называемая нулевая матрица O. У неё во всех клетках стоят нули, вот так:

0 0
0 0

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

Ещё есть единичная матрица I, которая является аналогом числа 1 в мире матриц, при умножении на которую результат не меняется. Как думаете, во всех клетках этой матрицы стоят единицы? А вот и нет! У единичной матрицы единицы стоят только по диагонали, вот так:

1 0
0 1

Вспоминаете мультик из прошлой рассылки? Да-да! Единичная матрица - это та самая матрица, которая обозначает линейное преобразование, которое ничего не меняет!

Ещё могу вам сообщить, что есть вычитание матриц, но нет деления. От деления удалось придумать только возможность нахождения обратной матрицы W = 1/M, такой, что при умножении её на матрицу M получается единичная матрица

W * M = I.

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

Выводы

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

Ответ на задание из прошлого выпуска.

Чтобы получить преобразование, поворачивающее сетку на 90 градусов, нужно установить матрицу поворота на 90 градусов, равную

0 -1
1 0

Чтобы повернуть сетку на 45 градусов, нужно установить чсила вот так

0,7 -0,7
0,7 0,7

0,7 - это приблизительное значение косинуса и синуса угла в 45 градусов.

Обсуждение данного выпуска >>


Внимание! В рассылке могут использоваться рисунки и формулы. Если Вы их не видите, то просмотрите письмо, подключившись к интернету on-line, либо проследуйте на сайт в архив рассылок.


Теория Относительности | http://www.relativity.ru | editor@relativity.ru

http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: science.natural.relativity
Отписаться

В избранное