Умножение матриц

Содержание

Случай прямоугольных матриц

А ничего — всё то же самое, что и с квадратными.


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

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

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

Но на этом история не заканчивается. Переходим к частным случаям умножения.:)

Вектор-строки и вектор-столбцы

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

На самом деле мы уже встречались с этими объектами. Например, обычный трёхмерный вектор из стереометрии $\overrightarrow{a}=\left( x;y;z \right)$ — это не что иное как вектор-строка. С точки зрения теории разницы между строками и столбцами почти нет. Внимательными надо быть разве что при согласовании с окружающими матрицами-множителями.

Как видите, при умножении вектор-строки и вектор-столбца на квадратную матрицу на выходе мы всегда получаем строку или столбец того же размера. Этот факт имеет множество приложений — от решения линейных уравнений до всевозможных преобразований координат (которые в итоге тоже сводятся к системам уравнений, но давайте не будем о грустном).

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

3.3. Пример макроса

Второй способ опирается на рекуррентное соотношение, связывающее два соседних члена в ряду  

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

Рис.42 Вычисление функции E1(x) итерационным способом

Один шаг итерации – это переход от значений в области J2:J4 к значениям в области L2:L4. Для того, чтобы сделать следующую итерацию, нужно скопировать значения, получившиеся в области L2:L4 и вставить их в область J2:J4. При этом вставлять нужно только величины, без формул. Величины в области H2:H4 дают исходные значения для начала итерации .Повторяя многократно операцию Copy-Paste Special, можно получить в ячейке L4 искомое значение. Однако копирование – это скучное занятие и его было бы неплохо автоматизировать. Для этого можно написать макрос.

Проще всего начать создание макроса через запись команд, выполняемых на листе. Для этого идем в раздел меню Tools–Macro–Record New Macro. Появляется окно (Рис. 43), в котором можно указать имя макроса и где он будет расположен.  

Рис.43 Запись макро

После нажатия OK начинается запись всех действий, выполняемых на листе. Когда все, что нужно сохранено в макросе, запись надо остановить командой Tools–Macro–Stop Recording. Результат можно увидеть, зайдя в .   

 

Рис.44 Редактор Visual Basic

На Рис. 44 показан записанный макрос, который мы подвергли небольшому редактированию – добавили цикл для повтора операции Copy-Paste в числе nIter раз. Величина nIter берется со страницы из ячейки J6, имеющей локальное имя n. Завершает автоматизацию кнопка Repeat, к которой привязан макрос Iteration.  

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

3.6. Установка надстроек

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

В первой фазе файлы, входящие в пакет надстройки размещают на компьютере. В некоторых пакетах имеется программа Setup.exe, которая выполняет это автоматически. В других файлы нужно размещать самостоятельно. Объясним, как это нужно сделать. В состав пакета обязательно входит файл с расширением XLA и несколько вспомогательных файлов с расширениями DLL, HLP и др. Все вспомогательные файлы должны  размещаться в следующих директориях: C:\Windows, или  C:\Windows\System или C:\Windows\System32. Основной файл (с расширением XLA) может, в принципе, находится в любом месте, но две директории являются предпочтительными.

Microsoft рекомендует размещать файлы XLA в директории C:\Documents and Settings\User\Application Data\Microsoft\AddIns, где User – это имя, под которым происходит вход в систему. Тогда этот файл можно быстро загрузить на второй фазе установки. Однако, если рабочие книги используются на нескольких компьютерах, с разными именами User, то, при смене компьютера, связи с основным файлом надстройки теряются и их приходится обновлять.

Поэтому мы предлагаем поместить файл Chemometrics.xla в директорию, которая имеет одно и то же имя на разных компьютерах, например C:\Program Files\Chemometrics. Автоматическая установка надстройки Chemometrics Add-In описана здесь.

Вторая фаза проводится из открытой книги Excel. В версии 2003 нужно выполнить последовательность команд Tools-Add-Ins, а в версии 2007 последовательность: Office Button-Excel Options-Add-Ins-Go. В появившемся окне (см Рис. 45) нужно нажать Browse и найти в компьютере нужный файл XLA.  

 

Рис.45 Установка надстройки

После того, как надстройка установлена, ее можно активировать и деактивировать устанавливая отметку напротив имени. Для удаления надстройки нужно снять галочку против ее имени в окне Add-Ins, закрыть Excel и удалить все ранее установленные файлы с компьютера.  

Заключение

Мы рассмотрели основные приемы работы с матрицами в системе Excel

За рамками пособия осталось еще много всего важного. Частично заполнить эти пробелы поможет пособие Проекционные методы в системе Excel

Шаги

Часть 1 из 3: Транспонирование матрицы

  1. 1

    Возьмите любую матрицу. Можно транспонировать любую матрицу, независимо от количества строк и столбцов. Наиболее часто приходится транспонировать квадратные матрицы, которые имеют одинаковое количество строк и столбцов, поэтому для простоты рассмотрим в качестве примера такую матрицу: X Источник информации

    матрица A =1  2  34  5  67  8  9

  2. 2

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

    • транспонированная матрица = AT
    • первый столбец матрицы AT:123
  3. 3

    Проделайте то же самое с остальными строками.

    AT =1  4  72  5  83  6  9

    Вторая строка исходной матрицы станет вторым столбцом транспонированной матрицы. Переведите все строки в столбцы:

  4. 4

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

    • матрица Z =4  7  2  13  9  8  6
    • матрица ZT =4  37  92  81  6
  5. 5

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

    • Предположим, дана матрица B, состоящая из m x n элементов (m строк и n столбцов), тогда транспонированная матрица BT представляет собой набор из n x m элементов (n строк и m столбцов). X Источник информации

    • Для каждого элемента bxy (строка x и столбец y) матрицы B в матрице BT существует эквивалентный ему элемент byx (строка y и столбец x).

Часть 2 из 3: Свойства транспонирования

  1. 1

    (MT)T = M. После двойного транспонирования получается исходная матрица. X Источник информации

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

  2. 2

    Зеркально отобразите матрицу относительно главной диагонали. Квадратные матрицы можно «переворачивать» относительно главной диагонали. При этом элементы вдоль главной диагонали (от a11

    Если вам сложно представить данный метод, возьмите лист бумаги и нарисуйте матрицу 4×4. Затем переставьте ее боковые элементы относительно главной диагонали. Проследите при этом за элементами a14 и a41. При транспонировании они должны поменяться местами, как и другие пары боковых элементов.

    до нижнего правого угла матрицы) остаются на месте, а остальные элементы перемещаются по другую сторону этой диагонали и остаются на том же расстоянии от нее.

  3. 3

    Транспонируйте симметричную матрицу. Элементы такой матрицы симметричны относительно главной диагонали. Если проделать описанную выше операцию и «перевернуть» симметричную матрицу, она не изменится. Все элементы поменяются на аналогичные. X Источник информации

    Фактически, это стандартный способ определить, симметрична ли та или иная матрица. Если выполняется равенство A = AT, значит, матрица A симметрична.

Часть 3 из 3: Эрмитово-сопряженная матрица с комплексными элементами

  1. 1

    Рассмотрим комплексную матрицу. Элементы комплексной матрицы состоят из действительной и мнимой части. Такую матрицу также можно транспонировать, хотя в большинстве практических применений используют сопряженно-транспонированные, или эрмитово-сопряженные матрицы. X Источник информации

    Пусть дана матрица C =2+i     3-2i0+i     5+0i

  2. 2


    Заменим элементы комплексно-сопряженными числами.

    найдем комплексно-сопряженную матрицу C* =2-i     3+2i0-i     5-0i

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

  3. 3

    Транспонируем полученную матрицу.

    сопряженно-транспонированная матрица CH =2-i        0-i3+2i     5-0i

    Возьмем найденную комплексно-сопряженную матрицу и просто транспонируем ее. В результате у нас получится сопряженно-транспонированная (эрмитово-сопряженная) матрица.

  • В данной статье транспонированная матрица относительно матрицы А обозначается как AT. Встречается также обозначение A’ или Ã. X Источник информации

  • В данной статье эрмитово-сопряженная матрица относительно матрицы А обозначается как AH — это общепринятое обозначение в линейной алгебре. В квантовой механике часто используют обозначение A†. Иногда эрмитово-сопряженную матрицу записывают в виде A*, однако такого обозначения лучше избегать, так как оно используется также для записи комплексно-сопряженной матрицы. X Источник информации

2.9. Виртуальный массив

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

Рис.38 Пример использования виртуального массива

Предположим, что задана матрица A, а нужно вычислить детерминант матрицы AtA . На Рис. 38 показаны два способа вычисления. Первый – через последовательность промежуточных массивов, отмеченных красными стрелками. Второй – с помощью одной формулы, показанной зеленой стрелкой. Оба пути ведут к одному и тому же результату, но красный путь занимает на листе много места, а зеленый последовательно использует несколько промежуточных виртуальных массивов. Все они, по сути, совпадают с реальными массивами красного пути, но на лист не выводятся.

Первый массив –  это транспонированная матрица At, получаемая как результат функции (A).

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

И, наконец, к этому, второму виртуальному массиву применяется функция .

Виртуальные массивы очень полезны при вычислении всяческих вспомогательных характеристик в анализе многомерных данных: остатков, собственных значений, и т.п. Подробно об этом рассказывается в пособии Расширение возможностей Chemometrics Add-In.

Методы вычисления определителя матрицы

Правило:Для матрицы первого порядка значение определителя равно значению элемента этой матрицы:

∆ = |11| = 11

Вычисление определителя матрицы 2×2

Правило: Для матрицы 2×2 значение определителя равно разности произведений элементов главной и побочной диагоналей:

∆ = 
11 12
21 22
 = 11·2212·21

Пример 1. Найти определитель матрицы A

A = 
5 7
-4 1

Решение:

det(A) = 
5 7
-4 1
 = 5·1 — 7·(-4) = 5 + 28 = 33

Вычисление определителя матрицы 3×3

Правило треугольника для вычисления определителя матрицы 3-тего порядка

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

+
∆ = 
11 12 13
21 22 23
31 32 33
 =

11·22·33 + 12·23·31 + 13·21·3213·22·3111·23·3212·21·33

Правило Саррюса для вычисления определителя матрицы 3-тего порядка

Правило: Справа от определителя дописывают первых два столбца и произведения элементов на главной диагонали и на диагоналях, ей параллельных, берут со знаком «плюс»; а произведения элементов побочной диагонали и диагоналей, ей параллельных, со знаком «минус»:

∆ = 
11 12 13 11 12
21 22 23 21 22
31 32 33 31 32
 =

11·22·33 + 12·23·31 + 13·21·3213·22·3111·23·3212·21·33

Пример 2. Найти определитель матрицы A = 571-4123

Решение:

det(A) = 571-4123 = 5·1·3 + 7·0·2 + 1·(-4)·0 — 1·1·2 — 5·0·0 — 7·(-4)·3 = 15 + 0 + 0 — 2 — 0 + 84 = 97

Вычисление определителя матрицы произвольного размера

Разложение определителя по строке или столбцу

Правило: Определитель матрицы равен сумме произведений элементов строки определителя на их :

det(A) =  Σ ·A — разложение по -той строке
 = 1

Правило: Определитель матрицы равен сумме произведений элементов столбца определителя на их алгебраические дополнения:

det(A) =  Σ ·A — разложение по -тому столбцу
 = 1

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

Пример 3. Найти определитель матрицы A

A = 
2 4 1
2 1
2 1 1

Решение: Вычислим определитель матрицы разложив его по первому столбцу:

det(A) = 
2 4 1
2 1
2 1 1
 =

= 2·(-1)1+1· 2111 + 0·(-1)2+1· 4111 + 2·(-1)3+1· 4121 =

= 2·(2·1 — 1·1) + 2·(4·1 — 2·1) = 2·(2 — 1) + 2·(4 — 2) = 2·1 + 2·2 = 2 + 4 = 6

Пример 4. Найти определитель матрицы A A = 241122113423

Решение: Вычислим определитель матрицы, разложив его по второй строке (в ней больше всего нулей):

det(A) = 241122113423 =

— 0· 41111323

+ 2· 211213423

— 0· 24121343

+ 0· 24121142 =

= 2·(2·1·3 + 1·3·4 + 1·2·2 — 1·1·4 — 2·3·2 — 1·2·3) = 2·(6 +12 + 4 — 4 — 12 — 6) = 2·0 = 0

Приведение определителя к треугольному виду

Правило: Используя свойства определителя для элементарных преобразований над строками и столбцами 8 — 11, определитель приводится к треугольному виду, и тогда его значение будет равно произведению элементов стоящих на главной диагонали.

Пример 5. Найти определитель матрицы A приведением его к треугольному виду A = 2411212113423

Решение:

det(A) = 2411212113423

Сначала получим нули в первом столбце под главной диагональю. Для этого отнимем от 3-тей строки 1-ую строку, а от 4-той строки 1-ую строку, умноженную на 2:

det(A) = 2411212 — 21 — 41 — 13 — 14 — 2·20 — 4·22 — 1·23 — 1·2 = 241121-32-81

Получим нули во втором столбце под главной диагональю. Для этого поменяем местами 2-ой и 3-тий столбцы (при этом детерминант сменит знак на противоположный):

det(A) = — 214112-32-81


Получим нули в третьем столбце под главной диагональю. Для этого к 3-ему столбцу добавим 4-тий столбец, умноженный на 8:

— 21121121321 = -2·1·13·1 = -26

Теорема Лапласа

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

Онлайн калькуляторы с матрицами. Упражнения с матрицами.

Матрицы. вступление и оглавлениеМатрицы: определение и основные понятия.Сведение системы линейных уравнений к матрице.Виды матрицУмножение матрицы на число.Сложение и вычитание матриц.Умножение матриц.Транспонирование матрицы.Элементарные преобразования матрицы.Определитель матрицы.Минор и алгебраическое дополнение матрицы.Обратная матрица.Линейно зависимые и независимые строки.Ранг матрицы.

Векторизуем внутренний цикл (2-й шаг)

  1. Компиляторы нынче умные пошли (не все!), и вполне справляются с задачей автовекторизации простых циклов. Уже в 1-м варианте компилятор фактически задействовал инструкции AVX2/FMA, потому ручная оптимизация не дала нам практически никаких преимуществ.
  2. Скорость расчетов в данном случае упирается не в вычислителные возможности процессора, а в скорость загрузки и выгрузки данных. В данном случае процессору для задействования 2 256-bit FMA блоков требуется загрузить 4 и выгрузить 2 256-bit вектора за такт. Это в два раза превышает даже пропускную способность L1 кеша процессора (512/256 bit), не говоря уже о пропускной способности памяти, которая еще на порядок меньше (64-bit на канал)).

Произведение двух матриц.

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

Произведением матрицы $A_{m\times n}=(a_{ij})$ на матрицу $B_{n\times k}=(b_{ij})$ называется матрица $C_{m\times k}=(c_{ij})$, для которой каждый элемент $c_{ij}$ равен сумме произведений соответствующих элементов i-й строки матрицы $A$ на элементы j-го столбца матрицы $B$:

$$c_{ij}=\sum\limits_{p=1}^{n}a_{ip}b_{pj}, \;\; i=\overline{1,m}, j=\overline{1,n}.$$

Пошагово умножение матриц разберем на примере

Однако сразу стоит обратить внимание, что перемножать можно не все матрицы. Если мы хотим умножить матрицу $A$ на матрицу $B$, то сперва нужно убедиться, что количество столбцов матрицы $A$ равно количеству строк матрицы $B$ (такие матрицы часто называют согласованными)

Например, матрицу $A_{5\times 4}$ (матрица содержит 5 строк и 4 столбца), нельзя умножать на матрицу $F_{9\times 8}$ (9 строк и 8 столбцов), так как количество столбцов матрицы $A$ не равно количеству строк матрицы $F$, т.е. $4\neq 9$. А вот умножить матрицу $A_{5\times 4}$ на матрицу $B_{4\times 9}$ можно, так как количество столбцов матрицы $A$ равно количеству строк матрицы $B$. При этом результатом умножения матриц $A_{5\times 4}$ и $B_{4\times 9}$ будет матрица $C_{5\times 9}$, содержащая 5 строк и 9 столбцов:

Пример №3

Заданы матрицы: $ A=\left(\begin{array} {cccc} -1 & 2 & -3 & 0 \\ 5 & 4 & -2 & 1 \\ -8 & 11 & -10 & -5 \end{array} \right)$ и

$ B=\left(\begin{array} {cc} -9 & 3 \\ 6 & 20 \\ 7 & 0 \\ 12 & -4 \end{array} \right)$. Найти матрицу $C=A\cdot B$.

Решение

Для начала сразу определим размер матрицы $C$. Так как матрица $A$ имеет размер $3\times 4$, а матрица $B$ имеет размер $4\times 2$, то размер матрицы $C$ таков: $3\times 2$:

Итак, в результате произведения матриц $A$ и $B$ мы должны получить матрицу $C$, состоящую из трёх строк и двух столбцов:

$ C=\left(\begin{array} {cc} c_{11} & c_{12} \\ c_{21} & c_{22} \\ c_{31} & c_{32} \end{array} \right)$. Если обозначения элементов вызывают вопросы, то можно глянуть предыдущую тему: «Матрицы. Виды матриц. Основные термины», в начале которой поясняется обозначение элементов матрицы. Наша цель: найти значения всех элементов матрицы $C$.

Начнем с элемента $c_{11}$. Чтобы получить элемент $c_{11}$ нужно найти сумму произведений элементов первой строки матрицы $A$ и первого столбца матрицы $B$:

Чтобы найти сам элемент $c_{11}$ нужно перемножить элементы первой строки матрицы $A$ на соответствующие элементы первого столбца матрицы $B$, т.е. первый элемент на первый, второй на второй, третий на третий, четвертый на четвертый. Полученные результаты суммируем:

Продолжим решение и найдем $c_{12}$. Для этого придётся перемножить элементы первой строки матрицы $A$ и второго столбца матрицы $B$:

Аналогично предыдущему, имеем:

Все элементы первой строки матрицы $C$ найдены. Переходим ко второй строке, которую начинает элемент $c_{21}$. Чтобы его найти придётся перемножить элементы второй строки матрицы $A$ и первого столбца матрицы $B$:

Следующий элемент $c_{22}$ находим, перемножая элементы второй строки матрицы $A$ на соответствующие элементы второго столбца матрицы $B$:

Чтобы найти $c_{31}$ перемножим элементы третьей строки матрицы $A$ на элементы первого столбца матрицы $B$:

И, наконец, для нахождения элемента $c_{32}$ придется перемножить элементы третьей строки матрицы $A$ на соответствующие элементы второго столбца матрицы $B$:

Все элементы матрицы $C$ найдены, осталось лишь записать, что $C=\left(\begin{array} {cc} 0 & 37 \\ -23 & 91 \\ 8 & 216 \end{array} \right)$. Или, если уж писать полностью:

Ответ: $C=\left(\begin{array} {cc} 0 & 37 \\ -23 & 91 \\ 8 & 216 \end{array} \right)$.

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

Стоит также обратить внимание, что умножение матриц некоммутативно. Это означает, что в общем случае $A\cdot B\neq B\cdot A$

Лишь для некоторых типов матриц, которые именуют перестановочными (или коммутирующими), верно равенство $A\cdot B=B\cdot A$. Именно исходя из некоммутативности умножения, требуется указывать как именно мы домножаем выражение на ту или иную матрицу: справа или слева. Например, фраза «домножим обе части равенства $3E-F=Y$ на матрицу $A$ справа» означает, что требуется получить такое равенство: $(3E-F)\cdot A=Y\cdot A$.

3.4. Пример пользовательской функции

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

Рис.45 Функция IntExp

На Рис. 45 приведен и пример обращения к ней.  

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

VBA – это довольно медленный язык и он плохо подходит для больших вычислений. Например, не стоит писать на этом языке процедуру для PCA декомпозиции – на больших массивах она будет считать очень долго. Правильнее рассматривать Excel и VBA как интерфейс (front end) для ввода и вывода данных, которые затем передаются в динамическую библиотеку (DLL), написанную на быстром языке, таком как C++ (back end). Именно эта концепция и была реализована в надстройках Fitter и Chemometrics.

Подробнее об использовании пользовательских функций для расширения возможностей надстройки Chemometrics можно прочитать .  

Визуализация матриц

Матрицы с достаточно большим количеством нулей называются разреженными. Часто необходимо знать, где расположены ненулевые элементы, т.е. получить так называемый шаблон матрицы. Для этого в MatLab служит функция spy. Посмотрим шаблон матрицы G .

» spy(G)

После выполнения команды spy на экране появляется графическое окно Figure No. 1. На вертикальной и горизонтальной осях отложены номера строк и столбцов. Ненулевые элементы обозначены маркерами, внизу графического окна указано число ненулевых элементов (nz = 19). Наглядную информацию о соотношении величин элементов матрицы дает функция imagesc, которая интерпретирует матрицу как прямоугольное изображение. Каждый элемент матрицы представляется в виде квадратика, цвет которого соответствует величине элемента. Для того чтобы узнать соответствие цвета и величины элемента следует использовать команду colorbar, выводящую рядом с изображением матрицы шкалу цвета (Insert (в графическом окне Figure  No.  1), colorbar). Наконец, для печати на монохромном принтере удобно получить изображение в оттенках серого цвета, используя команду colormap(gray) (Edit (в графическом окне Figure No. 1), Colormap, Colormap Editor, Tools, gray). Мы будем работать с матрицей G. Набирайте команды, указанные ниже, и следите за состоянием графического окна:

» imagesc(G) » colorbar » colormap(gray)

В результате получается наглядное представление матрицы.

Основные свойства матричного произведения

В двух словах. Умножение матриц:

  1. Некоммутативно: $A\cdot B\ne B\cdot A$ в общем случае. Бывают, конечно, особые матрицы, для которых равенство $A\cdot B=B\cdot A$ (например, если $B=E$ — единичной матрице), но в абсолютном большинстве случаев это не работает;
  2. Ассоциативно: $\left( A\cdot B \right)\cdot C=A\cdot \left( B\cdot C \right)$. Тут без вариантов: стоящие рядом матрицы можно перемножать, не переживая за то, что стоит левее и правее этих двух матриц.
  3. Дистрибутивно: $A\cdot \left( B+C \right)=A\cdot B+A\cdot C$ и $\left( A+B \right)\cdot C=A\cdot C+B\cdot C$ (в силу некоммутативности произведения приходится отдельно прописывать дистрибутивность справа и слева.

А теперь — всё то же самое, но более подробно.

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


Рассмотрим ещё раз матрицы из задачи 1. Прямое их произведение мы уже знаем:

\\cdot \left=\left\]

Но если поменять матрицы местами, то получим совсем другой результат:

\\cdot \left=\left\]

Получается, что $A\cdot B\ne B\cdot A$. Кроме того, операция умножения определена только для согласованных матриц $A=\left$ и $B=\left$, но никто не гарантировал, что они останутся согласованными, если их поменять местами. Например, матрицы $\left$ и $\left$ вполне себе согласованы в указанном порядке, но те же матрицы $\left$ и $\left$, записанные в обратном порядке, уже не согласованы. Печаль.:(

Тем не менее, умножение матриц ассоциативно:

\

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

В реальных задачах чаще всего приходится перемножать квадратные матрицы размера $\left$. Множество всех таких матриц обозначается ${{M}^{n}}$ (т.е. записи $A=\left$ и \ означают одно и то же), и в нём обязательно найдётся матрица $E$, которую называют единичной.

Идём далее. Помимо ассоциативности умножение матриц ещё и дистрибутивно:

\

Другими словами, если нужно умножить одну матрицу на сумму двух других, то можно умножить её на каждую из этих «двух других», а затем результаты сложить. На практике обычно приходится выполнять обратную операцию: замечаем одинаковую матрицу, выносим её за скобку, выполняем сложение и тем самым упрощаем себе жизнь.:)

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

Ладно, всё это были сказки о квадратных матрицах. А что насчёт прямоугольных?

Формулы массива

Построение матрицы средствами Excel в большинстве случаев требует использование формулы массива. Основное их отличие – результатом становится не одно значение, а массив данных (диапазон чисел).

Порядок применения формулы массива:

  1. Выделить диапазон, где должен появиться результат действия формулы.
  2. Ввести формулу (как и положено, со знака «=»).
  3. Нажать сочетание кнопок Ctrl + Shift + Ввод.

В строке формул отобразится формула массива в фигурных скобках.

Чтобы изменить или удалить формулу массива, нужно выделить весь диапазон и выполнить соответствующие действия. Для введения изменений применяется та же комбинация (Ctrl + Shift + Enter). Часть массива изменить невозможно.

Виды матриц в зависимости от значений их элементов.

Если все элементы матрицы $A_{m\times n}$ равны нулю, то такая матрица называется нулевой и обозначается обычно буквой $O$. Например, $\left( \begin{array} {cc} 0 & 0 \\ 0 & 0 \\ 0 & 0 \end{array} \right)$, $\left( \begin{array} {ccc} 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \end{array} \right)$ – нулевые матрицы.

Рассмотрим некоторую ненулевую строку матрицы $A$, т.е. такую строку, в которой есть хоть один элемент, отличный от нуля. Ведущим элементом ненулевой строки назовём её первый (считая слева направо) ненулевой элемент. Для примера рассмотрим такую матрицу:

Во второй строке ведущим будет четвёртый элемент, т.е. $w_{24}=12$, а в третьей строке ведущим будет второй элемент, т.е. $w_{32}=-9$.

Матрица $A_{m\times n}=\left(a_{ij}\right)$ называется ступенчатой, если она удовлетворяет двум условиям:

  1. Нулевые строки, если они есть, расположены ниже всех ненулевых строк.
  2. Номера ведущих элементов ненулевых строк образуют строго возрастающую последовательность, т.е. если $a_{1k_1}$, $a_{2k_2}$, …, $a_{rk_r}$ – ведущие элементы ненулевых строк матрицы $A$, то $k_1\lt{k_2}\lt\ldots\lt{k_r}$.

Примеры ступенчатых матриц:

Для сравнения: матрица $Q=\left(\begin{array}{ccccc} 2 & -2 & 0 & 1 & 9\\0 & 0 & 0 & 7 & 9\\0 & -5 & 0 & 10 & 6\end{array}\right)$ не является ступенчатой, так как нарушено второе условие в определении ступенчатой матрицы. Ведущие элементы во второй и третьей строках $q_{24}=7$ и $q_{32}=10$ имеют номера $k_2=4$ и $k_3=2$. Для ступенчатой матрицы должно быть выполнено условие $k_2\lt{k_3}$, которое в данном случае нарушено. Отмечу, что если поменять местами вторую и третью строки, то получим ступенчатую матрицу: $\left(\begin{array}{ccccc} 2 & -2 & 0 & 1 & 9\\0 & -5 & 0 & 10 & 6 \\0 & 0 & 0 & 7 & 9\end{array}\right)$.

Ступенчатую матрицу называют трапециевидной или трапецеидальной, если для ведущих элементов $a_{1k_1}$, $a_{2k_2}$, …, $a_{rk_r}$ выполнены условия $k_1=1$, $k_2=2$,…, $k_r=r$, т.е. ведущими являются диагональные элементы. В общем виде трапециевидную матрицу можно записать так:

Примеры трапециевидных матриц:

Дадим ещё несколько определений для квадратных матриц. Если все элементы квадратной матрицы, расположенные под главной диагональю, равны нулю, то такую матрицу называют верхней треугольной матрицей. Например, $\left( \begin{array} {cccc} 2 & -2 & 9 & 1 \\ 0 & 9 & 8 & 0 \\ 0 & 0 & 4 & -7 \\ 0 & 0 & 0 & 6 \end{array} \right)$ – верхняя треугольная матрица. Заметьте, что в определении верхней треугольной матрицы ничего не сказано про значения элементов, расположенных над главной диагональю или на главной диагонали. Они могут быть нулевыми или нет, – это несущественно. Например, $\left( \begin{array} {ccc} 0 & 0 & 9 \\ 0 & 0 & 0\\ 0 & 0 & 0 \end{array} \right)$ – тоже верхняя треугольная матрица.

Если все элементы квадратной матрицы, расположенные над главной диагональю, равны нулю, то такую матрицу называют нижней треугольной матрицей. Например, $\left( \begin{array} {cccc} 3 & 0 & 0 & 0 \\ -5 & 1 & 0 & 0 \\ 8 & 2 & 1 & 0 \\ 5 & 4 & 0 & 6 \end{array} \right)$ – нижняя треугольная матрица. Заметьте, что в определении нижней треугольной матрицы ничего не сказано про значения элементов, расположенных под или на главной диагонали

Они могут быть нулевыми или нет, – это неважно. Например, $\left( \begin{array} {ccc} -5 & 0 & 0 \\ 0 & 0 & 0\\ 0 & 0 & 9 \end{array} \right)$ и $\left( \begin{array} {ccc} 0 & 0 & 0 \\ 0 & 0 & 0\\ 0 & 0 & 0 \end{array} \right)$ – тоже нижние треугольные матрицы

Квадратная матрица называется диагональной, если все элементы этой матрицы, не лежащие на главной диагонали, равны нулю. Пример: $\left( \begin{array} {cccc} 3 & 0 & 0 & 0 \\ 0 & -2 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 6 \end{array} \right)$. Элементы на главной диагонали могут быть любыми (равными нулю или нет), – это несущественно.

Диагональная матрица называется единичной, если все элементы этой матрицы, расположенные на главной диагонали, равны 1. Например, $\left(\begin{array} {cccc} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{array}\right)$ – единичная матрица четвёртого порядка; $\left(\begin{array} {cc} 1 & 0 \\ 0 & 1 \end{array}\right)$ – единичная матрица второго порядка.


С этим читают