Свойства верхней треугольной матрицы. Матрицы

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

Определение матрицы и её элемента. Обозначения.

Матрица - это таблица из $m$ строк и $n$ столбцов. Элементами матрицы могут быть объекты совершенно разнообразной природы: числа, переменные или, к примеру, иные матрицы. Например, матрица $\left(\begin{array} {cc} 5 & 3 \\ 0 & -87 \\ 8 & 0 \end{array} \right)$ содержит 3 строки и 2 столбца; элементами её являются целые числа. Матрица $\left(\begin{array} {cccc} a & a^9+2 & 9 & \sin x \\ -9 & 3t^2-4 & u-t & 8\end{array} \right)$ содержит 2 строки и 4 столбца.

Разные способы записи матриц: показать\скрыть

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

$$ \left(\begin{array} {cc} 5 & 3 \\ 0 & -87 \\ 8 & 0 \end{array} \right);\;\; \left[ \begin{array} {cc} 5 & 3 \\ 0 & -87 \\ 8 & 0 \end{array} \right]; \;\; \left \Vert \begin{array} {cc} 5 & 3 \\ 0 & -87 \\ 8 & 0 \end{array} \right \Vert $$

Произведение $m\times n$ называют размером матрицы . Например, если матрица содержит 5 строк и 3 столбца, то говорят о матрице размера $5\times 3$. Матрица $\left(\begin{array}{cc} 5 & 3\\0 & -87\\8 & 0\end{array}\right)$ имеет размер $3 \times 2$.

Обычно матрицы обозначаются большими буквами латинского алфавита: $A$, $B$, $C$ и так далее. Например, $B=\left(\begin{array} {ccc} 5 & 3 \\ 0 & -87 \\ 8 & 0 \end{array} \right)$. Нумерация строк идёт сверху вниз; столбцов - слева направо. Например, первая строка матрицы $B$ содержит элементы 5 и 3, а второй столбец содержит элементы 3, -87, 0.

Элементы матриц обычно обозначаются маленькими буквами. Например, элементы матрицы $A$ обозначаются $a_{ij}$. Двойной индекс $ij$ содержит информацию о положении элемента в матрице. Число $i$ - это номер строки, а число $j$ - номер столбца, на пересечении которых находится элемент $a_{ij}$. Например, на пересечении второй строки и пятого столбца матрицы $A=\left(\begin{array} {cccccc} 51 & 37 & -9 & 0 & 9 & 97 \\ 1 & 2 & 3 & 41 & 59 & 6 \\ -17 & -15 & -13 & -11 & -8 & -5 \\ 52 & 31 & -4 & -1 & 17 & 90 \end{array} \right)$ расположен элемент $a_{25}=59$:

Точно так же на пересечении первой строки и первого столбца имеем элемент $a_{11}=51$; на пересечении третьей строки и второго столбца - элемент $a_{32}=-15$ и так далее. Замечу, что запись $a_{32}$ читается как "а три два", но не "а тридцать два".

Для сокращённого обозначения матрицы $A$, размер которой равен $m\times n$, используется запись $A_{m\times n}$. Можно записать и несколько более развёрнуто:

$$ A_{m\times n}=(a_{ij}) $$

где запись $(a_{ij})$ означает обозначение элементов матрицы $A$. В полностью развёрнутом виде матрицу $A_{m\times n}=(a_{ij})$ можно записать так:

$$ A_{m\times n}=\left(\begin{array}{cccc} a_{11} & a_{12} & \ldots & a_{1n} \\ a_{21} & a_{22} & \ldots & a_{2n} \\ \ldots & \ldots & \ldots & \ldots \\ a_{m1} & a_{m2} & \ldots & a_{mn} \end{array} \right) $$

Введём еще один термин - равные матрицы .

Две матрицы одинакового размера $A_{m\times n}=(a_{ij})$ и $B_{m\times n}=(b_{ij})$ называются равными , если их соответствующие элементы равны, т.е. $a_{ij}=b_{ij}$ для всех $i=\overline{1,m}$ и $j=\overline{1,n}$.

Пояснение к записи $i=\overline{1,m}$: показать\скрыть

Запись "$i=\overline{1,m}$" означает, что параметр $i$ изменяется от 1 до m. Например, запись $i=\overline{1,5}$ говорит о том, что параметр $i$ принимает значения 1, 2, 3, 4, 5.

Итак, для равенства матриц требуется выполнение двух условий: совпадение размеров и равенство соответствующих элементов. Например, матрица $A=\left(\begin{array}{cc} 5 & 3\\0 & -87\\8 & 0\end{array}\right)$ не равна матрице $B=\left(\begin{array}{cc} 8 & -9\\0 & -87 \end{array}\right)$, поскольку матрица $A$ имеет размер $3\times 2$, а размер матрицы $B$ составляет $2\times 2$. Также матрица $A$ не равна матрице $C=\left(\begin{array}{cc} 5 & 3\\98 & -87\\8 & 0\end{array}\right)$, поскольку $a_{21}\neq c_{21}$ (т.е. $0\neq 98$). А вот для матрицы $F=\left(\begin{array}{cc} 5 & 3\\0 & -87\\8 & 0\end{array}\right)$ можно смело записать $A=F$ поскольку и размеры, и соответствующие элементы матриц $A$ и $F$ совпадают.

Пример №1

Определить размер матрицы $A=\left(\begin{array} {ccc} -1 & -2 & 1 \\ 5 & 9 & -8 \\ -6 & 8 & 23 \\ 11 & -12 & -5 \\ 4 & 0 & -10 \\ \end{array} \right)$. Указать, чему равны элементы $a_{12}$, $a_{33}$, $a_{43}$.

Данная матрица содержит 5 строк и 3 столбца, поэтому размер её $5\times 3$. Для этой матрицы можно использовать также обозначение $A_{5\times 3}$.

Элемент $a_{12}$ находится на пересечении первой строки и второго столбца, поэтому $a_{12}=-2$. Элемент $a_{33}$ находится на пересечении третьей строки и третьего столбца, поэтому $a_{33}=23$. Элемент $a_{43}$ находится на пересечении четвертой строки и третьего столбца, поэтому $a_{43}=-5$.

Ответ : $a_{12}=-2$, $a_{33}=23$, $a_{43}=-5$.

Виды матриц в зависимости от их размера. Главная и побочная диагонали. След матрицы.

Пусть задана некая матрица $A_{m\times n}$. Если $m=1$ (матрица состоит из одной строки), то заданную матрицу называют матрица-строка . Если же $n=1$ (матрица состоит из одного столбца), то такую матрицу называют матрица-столбец . Например, $\left(\begin{array} {ccccc} -1 & -2 & 0 & -9 & 8 \end{array} \right)$ - матрица-строка, а $\left(\begin{array} {c} -1 \\ 5 \\ 6 \end{array} \right)$ - матрица-столбец.

Если для матрицы $A_{m\times n}$ верно условие $m\neq n$ (т.е. количество строк не равно количеству столбцов), то часто говорят, что $A$ - прямоугольная матрица. Например, матрица $\left(\begin{array} {cccc} -1 & -2 & 0 & 9 \\ 5 & 9 & 5 & 1 \end{array} \right)$ имеет размер $2\times 4$, т.е. содержит 2 строки и 4 столбца. Так как количество строк не равно количеству столбцов, то эта матрица является прямоугольной.

Если для матрицы $A_{m\times n}$ верно условие $m=n$ (т.е. количество строк равно количеству столбцов), то говорят, что $A$ - квадратная матрица порядка $n$. Например, $\left(\begin{array} {cc} -1 & -2 \\ 5 & 9 \end{array} \right)$ - квадратная матрица второго порядка; $\left(\begin{array} {ccc} -1 & -2 & 9 \\ 5 & 9 & 8 \\ 1 & 0 & 4 \end{array} \right)$ - квадратная матрица третьего порядка. В общем виде квадратную матрицу $A_{n\times n}$ можно записать так:

$$ A_{n\times n}=\left(\begin{array}{cccc} a_{11} & a_{12} & \ldots & a_{1n} \\ a_{21} & a_{22} & \ldots & a_{2n} \\ \ldots & \ldots & \ldots & \ldots \\ a_{n1} & a_{n2} & \ldots & a_{nn} \end{array} \right) $$

Говорят, что элементы $a_{11}$, $a_{22}$, $\ldots$, $a_{nn}$ находятся на главной диагонали матрицы $A_{n\times n}$. Эти элементы называются главными диагональными элементами (или просто диагональными элементами). Элементы $a_{1n}$, $a_{2 \; n-1}$, $\ldots$, $a_{n1}$ находятся на побочной (второстепенной) диагонали ; их называют побочными диагональными элементами . Например, для матрицы $C=\left(\begin{array}{cccc}2&-2&9&1\\5&9&8& 0\\1& 0 & 4 & -7 \\ -4 & -9 & 5 & 6\end{array}\right)$ имеем:

Элементы $c_{11}=2$, $c_{22}=9$, $c_{33}=4$, $c_{44}=6$ являются главными диагональными элементами; элементы $c_{14}=1$, $c_{23}=8$, $c_{32}=0$, $c_{41}=-4$ - побочные диагональные элементы.

Сумма главных диагональных элементов называется следом матрицы и обозначается $\Tr A$ (или $\Sp A$):

$$ \Tr A=a_{11}+a_{22}+\ldots+a_{nn} $$

Например, для матрицы $C=\left(\begin{array} {cccc} 2 & -2 & 9 & 1\\5 & 9 & 8 & 0\\1 & 0 & 4 & -7\\-4 & -9 & 5 & 6 \end{array}\right)$ имеем:

$$ \Tr C=2+9+4+6=21. $$

Понятие диагональных элементов используется также и для неквадратных матриц. Например, для матрицы $B=\left(\begin{array} {ccccc} 2 & -2 & 9 & 1 & 7 \\ 5 & -9 & 8 & 0 & -6 \\ 1 & 0 & 4 & -7 & -6 \end{array} \right)$ главными диагональными элементами будут $b_{11}=2$, $b_{22}=-9$, $b_{33}=4$.

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

Если все элементы матрицы $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_{m\times n}$ имеет такой вид:

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

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

  1. Все элементы, расположенные ниже главной диагонали, равны нулю.
  2. Все элементы от $a_{11}$ до $a_{rr}$, лежащие на главной диагонали, не равны нулю: $a_{11}\neq 0, \; a_{22}\neq 0, \ldots, a_{rr}\neq 0$.
  3. Либо все элементы последних $m-r$ строк равны нулю, либо $m=r$ (т.е. нулевых строк нету вообще).

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

Перейдём к следующему определению. Матрицу $A_{m\times n}$ называют ступенчатой , если она удовлетворяет таким условиям:


Например, ступенчатыми матрицами будут:

Для сравнения, матрица $\left(\begin{array} {cccc} 2 & -2 & 0 & 1\\0 & 0 & 8 & 7\\0 & 0 & 4 & -7\\0 & 0 & 0 & 0 \end{array}\right)$ не является ступенчатой, поскольку у третьей строки нулевая часть такая же, как и у второй строки. Т.е., нарушается принцип "чем ниже строка - тем больше нулевая часть". Добавлю, что трапециевидная матрица есть частный случай ступенчатой матрицы.

Перейдём к следующему определению. Если все элементы квадратной матрицы, расположенные под главной диагональю, равны нулю, то такую матрицу называют верхней треугольной матрицей . Например, $\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)$ - единичная матрица второго порядка.

Треугольные матрицы и характеристическое уравнение

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

, .

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

1) Определитель треугольной матрицы равен произведению ее диагональных элементов:

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

2) Сумма и произведение треугольных матриц одинакового строения есть также треугольная матрица того же строения.

3) Неособенная треугольная матрица легко обращается, и ее обратная матрица снова имеет треугольную структуру того же строения.

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

.

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

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

.

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

Определитель матрицы Гурвица

.

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

,

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

, , .

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

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

Определитель квазитреугольной матрицы равен произведению ее диагональных клеток.

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

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

Например, матрица Хессенберга правой почти треугольной формы размерности (4x4) имеет вид

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

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

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

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

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

Или , (4.4)

где Q - ортогональная матрица; R - правая (верхняя) треугольная форма; L - левая (нижняя) треугольная форма матрицы.

Представление (4.4) называется QR-разложением (в случае нижней треугольной матрицы QL-разложением) и для матрицы А является единственным.

QR- и QL-алгоритмы принципиально мало различаются. Их использование зависит от того, как расположены элементы матрицы. Если они сосредоточены в нижнем правом углу, эффективнее использовать QL-алгоритм. Если элементы матрицы сосредоточены в левой верхней части, то целесообразнее использовать QR-алгоритм. При правильной реализации на ЭВМ ошибки округления во многих случаях не оказывают большого влияния на точность вычисления.

1. Пусть дана матрица ранга . Введем следующие обозначения для последовательных главных миноров этой матрицы:

.

Допустим, что имеют место условия выполнимости алгоритма Гаусса:

Обозначим через матрицу коэффициентов системы уравнений (18), к которой приводится система уравнений

методом исключения Гаусса. Матрица имеет верхнюю треугольную форму, причем элементы ее первыхrг строк определяются формулами (13), а элементы последних строк все равны нулю:

.

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

. (31)

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

Таким образом

,

где каждая из матриц имеет вид (31) и, следовательно, является нижней треугольной матрицей с диагональными элементами, равными 1.

. (32)

Матрицу будем называть преобразующей матрицей для матрицы в методе исключения Гаусса. Обе матрицы, и , однозначно определяются заданием матрицы . Из (32) следует, что - нижняя треугольная матрица с диагональными элементами, равными 1 (см. стр. 28).

Поскольку - неособенная матрица, то из (33) находим:

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

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

, (34)

можно представить в виде произведения нижней треугольной матрицы на верхнюю треугольную матрицу

. (35)

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

Задание первых диагональных элементов матриц и определяет однозначно элементы первых столбцов матрицы и первых r строк матрицы . Для этих элементов имеют место формулы

, (37)

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

Доказательство. Возможность представления матрицы, удовлетворяющей условию (34), в виде произведения (35) была доказана выше [см. (33")]

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

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

Положим сначала здесь . Тогда получим:

откуда уже вытекают соотношения (36).

Не нарушая неравенства (35), мы можем в нем умножить матрицу справа на произвольную особенную диагональную матрицу , одновременно умножая матрицу слева на . Это равносильно умножению столбцов матрицы соответственно на и строк матрицы на . Поэтому диагональным элементам , , можно придать любые значения удовлетворяющие условиям (36).

,

т. е. первые формулы (37). Совершенно аналогично устанавливаются вторые формулы (37) для элементов матрицы .

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

Теорема доказана.

Из доказанной теоремы вытекает ряд интересных следствий.

Следствие 1. Элементы первых столбцов матрицы и первых строк матрицы связаны с элементами матрицы рекуррентными соотношениями:

(41)

Соотношения (41) непосредственно следуют из матричного равенства (35) ими удобно пользоваться для фактического вычисления элементов матриц и .

Следствие 2. Если - неособенная матрица , удовлетворяющая условию (34), то в представлении (35) матрицы и определяются однозначно, как только диагональные элементы этих матриц выбраны в соответствии с условиями (36).

Следствие 3. Если - симметрическая матрица ранга и

,

где - нижняя треугольная матрица, в которой

2. Пусть в представлении (35) у матрицы элементы последних столбцов равны нулю. Тогда можно положить:

, , (43)

где - нижняя, а - верхняя треугольная матрица; при этом первые диагональных элементов у матриц и равны 1, а элементы последних столбцов матрицы и последних строк матрицы выбраны совершенно произвольно. Подставляя в (35) выражения (43) для и и используя равенства (36), придем к следующей теореме:

Теорема 2. Всякая матрица ранга , у которой

,

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

(44)

, (45)

а , произвольны при ; .

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

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

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

. (46)

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

Таким образом, применение алгоритма Гаусса к матрице (46) дает одновременно и матрицу и матрицу .

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

Если верхняя треугольная матрица имеет n 2 элементов, приблизительно половина из них являются нулевыми и нет необходимости сохранять их явно. Конкретно, если мы вычитаем n диагональных элементов из суммы n 2 элементов, то половина оставшихся элементов являются нулевыми. Например, при n=25 имеется 300 элементов со значением 0:

(n 2 -n)/2 = (25 2 -25)/2=(625-25)/2 = 300

Сумма или разность двух треугольных матриц А и В получается в результате сложения или вычитания соответствующих элементов матриц. Результирующая матрица является треугольной.

Сложение С = А + В

Вычитание С = А - В

где С - это треугольная матрица с элементами C i , j = A i , j + B i , j .

Умножение С = А * В

Результирующая матрица С - это треугольная матрица с элементами C i , j , значения которых вычисляются из элементов строки i матрицы А и столбца j матрицы В:

C i , j =(A i ,0 *B 0, j)+ (A i ,1 *B 1, j)+ (A i ,2 *B 2, j)+…+ (A i , n -1 *B n -1, j)

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

Хранение треугольной матрицы

Применение для хранения верхней треугольной матрицы стандартного двумерного массива требует использования всей памяти размером n 2 , несмотря на прогнозируемые нули, расположенные ниже диагонали. Для исключения этого пространства мы сохраняем элементы из треугольной матрицы в одномерном массиве М. Все элементы ниже главной диагонали не сохраняются. Таблица 3.1 показывает количество элементов, которые сохраняются в каждой строке.

Хранение треугольной матрицы

Таблица 1

Алгоритму сохранения требуется функция доступа, которая должна определять местоположение в массиве М элемента A i , j . Для j < i элемент A i , j является равным 0 и не сохраняется в М. Для j ³ i функция доступа использует информацию о числе сохраняемых элементов в каждой строке вплоть до строки i. Эта информация может быть вычислена для каждой строки i и сохранена в массиве (rowTable) для использования функцией доступа.

Пример 4.

С учетом того, что элементы треугольной матрицы сохраняются построчно в массиве М, функция доступа для A i , j использует следующие параметры:

Индексы i и j,

Массив rowTable

Алгоритм доступа к элементу A i , j заключается в следующем:

Если j

Если j³i, то получается значение rowTable[i], являющееся количеством элементов, которые сохраняются в массиве М, для элементов до строки i. В строке i первые i элементов являются нулевыми и не сохраняются в М. Элемент A i , j помещается в M+(j-i)].

Пример 5.

Рассмотрим треугольную матрицу Х из примера 3.4:

1.Х 0,2 =M=М=М=0

2.X 1,0 не сохраняются

3.Х 1,2 =M+(2-1)]=М=М=1

Класс TriMat

Класс TriMat реализует ряд операций треугольной матрицы. Вычитание и умножение треугольной матрицы оставлены для упражнений в конце главы. Учитывая то ограничение, что мы должны использовать только статические массивы, наш класс ограничивает размер строки и столбца числом 25. При этом мы будем иметь 300=(25 2 -25)/2 нулевых элементов, поэтому массив М должен содержать 325 элементов.

Спецификация класса TriMat

ОБЪЯВЛЕНИЕ

#include

#include

// максимальное число элементов и строк

// верхней треугольной матрицы

const int ELEMENTLIMIT = 325;

const int ROWLIMIT = 25;

// закрытые данные-члены

int rowTable; // начальный индекс строки в М

int n; // размер строки/колонки

double М;

// конструктор с параметрами TriMat(int matsize);

// методы доступа к элементам матрицы

void PutElement (double item, int i, int j);

double GetElement(int i, int j) const;

// матричные арифметические операции

TriMat AddMat(const TriMat& A) const;

double DelMat(void) const;

// матричные операции ввода/вывода

void ReadMat(void);

void WriteMat(void) const;

// получить размерность матрицы

int GetDimension(void) const;

ОПИСАНИЕ

Конструктор принимает число строк и столбцов матрицы. Методы PutEle-ment и GetElement сохраняют и возвращают элементы верхней треугольной матрицы. GetElement возвращает 0 для элементов ниже диагонали. AddMat возвращает сумму матрицы А с текущим объектом. Этот метод не изменяет значение текущей матрицы. Операторы ввода/вывода ReadMat и WriteMat работают со всеми элементами матрицы n x n. Сам метод ReadMat сохраняет только верхне-треугольные элементы матрицы.

#include trimat.h // включить класс TriMat

TriMat A (10), В (10), С (10); // треугольные матрицы 10x10

A.ReadMat (); // ввести матрицы А и В

С = A. AddMat (В); // вычислить С = А + В

C.WriteMat (); // печатать С

Реализация класса TriMat

Конструктор инициализирует закрытый член n параметром matsize. Таким образом задается число строк и столбцов матрицы. Этот же параметр используется для инициализации массива rowTable, который используется для доступа к элементам матрицы. Если matsize превышает ROWLIMIT, выдается сообщение об ошибке и выполнение программы прерывается.

// инициализация n и rowTable

TriMat::TriMat (int matsize)

int storedElements = 0;

// прервать программу, если matsize больше ROWLIMIT

if (matsize > ROWLIMIT)

cerr << "Превышен размер матрицы" << ROWLIMIT << "x" << ROWLIMIT << endl;

// задать таблицу

for (int i = 0; i < n; i++)

rowTable [i] = storedElements;

storedElements += n - i;

Матричные методы доступа . Ключевым моментом при работе с треугольными матрицами является возможность эффективного хранения ненулевых элементов в линейном массиве. Чтобы достичь такой эффективности и все же использовать обычные двумерные индексы i и j для доступа к элементу матрицы, нам необходимы функции PutElement и GetElement для сохранения и возвращения элементов матрицы в массиве.

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

// возвратить размерность матрицы n

int TriMat::GetDimension(void) const

Метод PutElement проверяет индексы i и j. Если j ³ i, мы сохраняем значение данных в М, используя функцию доступа к матрице для треугольных матриц: Если i или j не находится в диапазоне 0 . . (n-1), то программа заканчивается:

// записать элемент матрицы в массив М

void TriMat::PutElement (double item, int i, int j)

// прервать программу, если индексы элемента вне

// индексного диапазона

if ((i < 0 || i >= n) || (j < 0 |1 j >= n))

cerr << "PutElement: индекс вне диапазона 0-"<< n-1 << endl;

// все элементы ниже диагонали игнорируются if (j >= i)

M + j-i] = item;

Для получения любого элемента метод GetElement проверяет индексы i и j. Если i или j не находится в диапазоне 0…(n - 1), программа заканчивается. Если j

// получить матричный элемент массива М

double TriMat::GetElement(int i, int j) const

// прервать программу, если индексы вне индексного диапазона

if ((i < 0 || i >= п) || (j < 0 |I j >= n))

cerr << "GetElement: индекс вне диапазона 0-"<< n-1 << endl;

// вернуть элемент, если он выше диагонали

return M + j-i];

// элемент равен 0, если он ниже диагонали

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

// все (n x n) элементов

void TriMat::ReadMat (void)

for(i = 0; i

for(j = 0; j

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

void TriMat::WriteMat (void) const

// установка режима выдачи

cout. setf (ios::fixed) ;

cout.precision (3) ;

cout.setf (ios::showpoint) ;

for (i =0; i < n; i++)

for (j = 0; j < n; j++)

cout << setw(7) << GetElement (i,j);

cout << endl;

Матричные операции. Класс TriMat имеет методы для вычисления суммы двух матриц и детерминанта матрицы. Метод AddMat принимает единственный параметр, который является правым операндом в сумме. Текущий объект соответствует левому операнду. Например, сумма треугольных матриц X и Y использует метод AddMat для объекта X. Предположим, сумма сохраняется в объекте Z. Для вычисления

Z = Х + Y используйте оператор

Z = X.AddMat(Y) ;

Алгоритм сложения двух объектов типа TriMat возвращает новую матрицу В с элементами B i , j = CurrentObjecty i , j + A i , j:

// возвращает сумму текущей и матрицы А.

// Текущий объект не изменяется

TriMat TriMat::AddMat (const TriMat& A) const

double itemCurrent, itemA;

TriMat B(A.n); // в В будет искомая сумма

for (i = 0; i < n; i++) // цикл по строкам

for (j = i; j < n; j++) // пропускать элементы ниже диагонали

itemCurrent=GetElement i, j);

itemA = A.GetElement (i, j);

B. PutElement (itemCurrent + itemA, i, j);

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

Матрица - это особый объект в математике. Изображается в форме прямоугольной или квадратной таблицы, сложенной из определенного числа строк и столбцов. В математике имеется большое разнообразие видов матриц, различающихся по размерам или содержанию. Числа ее строк и столбцов именуются порядками. Эти объекты употребляются в математике для упорядочивания записи систем линейных уравнений и удобного поиска их результатов. Уравнения с использованием матрицы решаются посредством метода Карла Гаусса, Габриэля Крамера, миноров и алгебраических дополнений, а также многими другими способами. Базовым умением при работе с матрицами является приведение к стандартному виду. Однако для начала давайте разберемся, какие виды матриц выделяют математики.

Нулевой тип

Все компоненты этого вида матрицы - нули. Между тем, число ее строк и столбцов абсолютно различно.

Квадратный тип

Количество столбцов и строк этого вида матрицы совпадает. Иначе говоря, она представляет собой таблицу формы "квадрат". Число ее столбцов (или строк) именуются порядком. Частными случаями считается существование матрицы второго порядка (матрица 2x2), четвертого порядка (4x4), десятого (10x10), семнадцатого (17x17) и так далее.

Вектор-стобец

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

Вид, аналогичный предыдущему. Состоит из трех численных элементов, в свою очередь организованных в одну строку.

Диагональный тип

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

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

Канонический тип

Канонический вид матрицы считается одним из основных; приведение к нему часто необходимо для работы. Число строк и столбцов в канонической матрице различно, она необязательно принадлежит к квадратному типу. Она несколько похожа на единичную матрицу, однако в ее случае не все компоненты основной диагонали принимают значение, равное единице. Главнодиагональных единиц может быть две, четыре (все зависит от длины и ширины матрицы). Или единицы могут не иметься вовсе (тогда она считается нулевой). Остальные компоненты канонического типа, как и элементы диагонального и единичного, равны нулю.

Треугольный тип

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

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

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

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

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

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

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

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

Задание 1

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

Данная нам матрица представляет собой квадратную матрицу третьего порядка. Следовательно, для ее преобразования в треугольную форму нам понадобится обратить в нуль два компонента первого столбца и один компонент второго.

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

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

Осталось только последнее значение - элемент третьей строки второго столбца. Это число (-1). Чтобы обратить его в нуль, из первой строки вычтем вторую.

Выполним проверку:

detA = 2 x (-1) x 11 = -22.

Значит, ответ к заданию: -22.

Задание 2

Нужно найти детерминант матрицы методом приведения его к треугольному виду.

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

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

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

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

Снова начнем с нижней части - с элемента второго столбца последней строки. Это число (-7). Однако в данном случае удобнее начать с числа (-1) - элемента второго столбца третьей строки. Чтобы обратить его в нуль, вычтем из третьей строки вторую. Затем умножим вторую строку на семь и вычтем ее из четвертой. Мы получили нуль вместо элемента, расположенного в четвертой строке второго столбца. Теперь перейдем к третьему столбцу.

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

После всех произведенных преобразований мы привели предложенную матрицу к треугольному виду. Теперь, чтобы найти ее детерминант, нужно только произвести умножение получившихся элементов главной диагонали. Получаем: detA = 1 x (-1) x (-4) x 40 = 160. Следовательно, решением является число 160.

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

Приведение к ступенчатому виду

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

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

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

Задание 1. Найти ранг данной матричной таблицы.

Перед нами квадратная матрица третьего порядка (3x3). Мы знаем, что для нахождения ранга необходимо привести ее к ступенчатому виду. Поэтому сначала нам необходимо найти детерминант матрицы. Воспользуемся методом треугольника: detA = (1 x 5 x 0) + (2 x 1 x 2) + (6 x 3 x 4) - (1 x 1 x 4) - (2 x 3 x 0) - (6 x 5 x 2) = 12.

Детерминант = 12. Он больше нуля, значит, матрицу можно привести к ступенчатому виду. Приступим к ее преобразованиям.

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

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

Значит, делаем вывод, что количество строк, содержащих числовые значения, в данной матрице (или ее ранг) - 3. Ответ к заданию: 3.

Задание 2. Определить количество линейно независимых строк данной матрицы.

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

Мы видим матрицу, не принадлежащую к квадратному типу. Она имеет размеры 3x4. Начнем приведение также с элемента левого нижнего угла - числа (-1).

Дальнейшие ее преобразования невозможны. Значит, делаем вывод, что количество линейно независимых строк в ней и ответ к заданию - 3.

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

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