Элементы линейной алгебры в системе Mathematica
Ниже будут рассмотрены способы решения задач линейной алгебры в системе Mathematica.
Особенностью изложения материала является то, что в данной главе отсутствуют доказательства. Вместо них приводятся числовые примеры, иллюстрирующие то тли иное положение. Конкретная числовая реализация лучше воспринимается, чем абстрактное доказательство, так как основная задача данного пособия - научить решать задачи с использованием средств современной компьютерной математики.
Действия с матрицами
Матрицей называется прямоугольная таблица чисел. Для обозначения матрицы применяются круглые скобки или квадратные скобки, например
Числа, составляющие таблицу, называются её элементами. Горизонтальные ряды элементов называются строками, а вертикальные столбцами.
Матрицу из строк и столбцов будем называть матрицей или матрицей размеров .
Если число строк матрицы равно числу столбцов, то матрица называется квадратной, а число строк- порядком этой матрицы.
При записи матрицы в общем виде элементы матрицы обозначаются одной буквой с двумя индексами. Первый индекс указывает номер строки, а второй –номер столбца.
Ряд элементов квадратной матрицы, лежащих на отрезке, соединяющем левый верхний угол с правым нижним, называется главной, или первой диагональю, а на отрезке, соединяющем правый верхний угол с левым нижним,- побочной (или второй диагональю матрицы.
Две матрицы с одинаковым числом строк называются матрицами одинаковых размеров.
Если элементы квадратной матрицы, расположенные симметрично относительно главной диагонали, равны, то матрица называется симметричной.
Если в матрице отличны от нуля только элементы, стоящие на главной диагонали, то матрица называется диагональной.
Рассмотрим ввод матриц в систему Mathematica.
Пусть дана матрица
Ввести её можно следующим образом. Записываем открывающую и закрывающую фигурные скобки. Вписываем в них поочерёдно в фигурных скобках через запятую элементы каждой строки.
A={{5,8,12},{6,4,7},{9,11,6}}
{{5,8,12},{6,4,7},{9,11,6}}
С помощью функции MatrixForm эту матрицу можно переписать в привычной матричной форме, т.е. как прямоугольную таблицу.
MatrixForm[A]
В сиcтеме Mathematica предусмотрена также возможность вводить матрицу, как прямоугольную таблицу. Для этого предусмотрена специальная кнопка на панели инструментов BasicInput. На этой кнопке помещено изображение матрицы размера . Нужно щёлкнуть по этой кнопке левой кнопкой мыши. Комбинация клавиш предназначена для добавления в матрицу столбца, а комбинация клавиш Ctr и Enter – для добавления строки. Удалять строки и столбцы можно обычными приёмами редактирования.
Приведём примеры симметричной и диагональной матриц.
Если мы хотим выписать, например, элемент матрицы A, стоящей во второй строке и в третьем столбце, то делается это следующим образом
Если мы хотим получить все элементы второй строки матрицы A, то это можно сделать так
A[[2]]
{6,4,7}
Рассмотрим теперь основные операции над матрицами и правила выполнения этих операций в системе Mathematica.
1. Умножение матрицы на число.
При умножении матрицы на число каждый элемент матрицы умножается на это число.
2. Прибавление к матрице числа.
При прибавлении к матрице числа это число прибавляется к каждому элементу матрицы.
3. Сложение матриц.
При сложении двух матриц одинаковых размеров получается матрица тех же размеров. Каждый элемент этой матрицы равен сумме соответствующих элементов слагаемых.
4. Умножение матриц.
Пусть имеется матрица размеров и матрица размеров (количество столбцов в матрице равно количеству строк в матрице ). Произведением матриц и называется матрица размера , элементы которой определяются по формулам
Таким образом, элемент произведения матриц и , стоящий в й строке и м столбце, равен сумме произведений элементов й строки первой матрицы на соответствующие элементы го столбца второй матрицы
Отметим, что для операции умножения матриц коммутативный закон не выполняется.
Матрица по своей конструкции является двухуровневым списком (массивом). Элементами первого уровня для неё являются векторы. Вектор может использоваться для замены строки матрицы. При умножении на матрицу слева вектор ведёт себя как матрица- столбец, т.е. матрица из одного столбца. При умножении на матрицу справа вектор ведёт себя как матрица- строка, т.е. матрица из одной строки. В результате выполнения каждой из указанных операций мы получаем вектор.
При умножении двух векторов, мы, очевидно, получим число.
5. Транспонирование матриц.
Пусть имеется матрица размером Построим матрицу размером следующим образом: в качестве первого столбца матрица возьмём первую строку матрицы , второго столбца- вторую строку матрицы и т.д. Построенная таким образом матрица называется транспонированной к матрице А.
6. Элементарные преобразования строк матриц.
К элементарным преобразованиям строк матрицы относятся преобразования следующего вида:
1. Перестановка строк матрицы.
2. Умножение строки матрицы на число.
3. Прибавление к одной из строк матрицы другой строки, умноженной на некоторое число.
Рассмотрим выполнение этих преобразований в системе Mathematica.
Умножим вторую строку этой матрицы на число 12.
Прибавим к третьей строке матрицы первую строку, умножив её предварительно на 13.
Ведущим элементом строки будем называть ненулевой элемент этой строки с наименьшим вторым индексом. Будем говорить, что матрица имеет ступенчатый вид, если последние строки матрицы нулевые и второй индекс ведущего элемента каждой следующей строки больше, чем в предыдущей. Можно доказать, что при помощи элементарных преобразований строк каждую матрицу можно привести к ступенчатому виду. Покажем, как это делается на примере.
Рассмотрим теперь схему преобразования матрицы с выбором главного элемента.
Рассмотрим матрицу. Найдём в этой матрице наибольший по абсолютной величине элемент. Делим все элементы строки, где находится главный элемент на этот элемент. Преобразованную строку вычитаем из остальных срок, домножив её предварительно на такое число, чтобы все остальные элементы столбца, содержащего главный элемент, обратились в ноль.
Затем выбираем наибольший по абсолютной величине элемент среди строк и столбцов, не рассмотренных ранее. Так продолжаем до тех пор, пока не переберём все строки матрицы.
Рассмотрим описанные преобразования матрицы на следующем примере.
Наибольший по абсолютной величине элемент находится в первой строке. Делим все элементы первой строки на этот элемент.
A[[1]]=A[[1]]/A[[1,2]];
Вычитаем из остальных строк первую, домножив её на такие числа, чтобы остальные элементы второго столбца в этих строках обратились в нули.
A[[2]]=A[[2]]-A[[1]]*A[[2,2]];
A[[3]]=A[[3]]-A[[1]]*A[[3,2]];
A[[4]]=A[[4]]-A[[1]]*A[[4,2]];
MatrixForm[A]
Находим наибольший по абсолютной величине элемент. Первую строку не учитываем.
Max[Abs[{A[[2]],A[[3]],A[[4]]}]];
Наибольший по абсолютной величине элемент находится в третьей строке. Делим все элементы третьей строки на этот элемент.
A[[3]]=A[[3]]/A[[3,5]];
Вычитаем из остальных строк третью, домножив её на такие числа, чтобы остальные элементы пятого столбца в этих строках обратились в нули.
A[[1]]=A[[1]]-A[[3]]*A[[1,5]];
A[[2]]=A[[2]]-A[[3]]*A[[2,5]];
A[[4]]=A[[4]]-A[[3]]*A[[4,5]];
MatrixForm[A]
Находим наибольший по абсолютной величине элемент. Первую и третью строки не учитываем не учитываем.
Max[Abs[{A[[2]],A[[4]]}]]
Наибольший по абсолютной величине элемент находится в четвёртой строке. Делим все элементы четвёртой строки на этот элемент
A[[4]]=A[[4]]/A[[4,3]];
Вычитаем из остальных строк четвёртую, домножив её на такие числа, чтобы остальные элементы третьего столбца в этих строках обратились в нули.
A[[1]]=A[[1]]-A[[4]]*A[[1,3]];
A[[2]]=A[[2]]-A[[4]]*A[[2,3]];
A[[3]]=A[[3]]-A[[4]]*A[[3,3]];
MatrixForm[A]
Находим максимальный по абсолютной величине элемент второй строки.
Max[Abs[A[[2]]]]
Этот элемент находится в четвёртом столбце. Делим вторую строку на максимальный элемент.
A[[2]]=A[[2]]/A[[2,4]];
Вычитаем из остальных строк вторую, домножив её на такие числа, чтобы остальные элементы четвёртого столбца в этих строках обратились в нули.
A[[1]]=A[[1]]-A[[2]]*A[[1,4]];
A[[3]]=A[[3]]-A[[2]]*A[[3,4]];
A[[4]]=A[[4]]-A[[2]]*A[[4,4]];
MatrixForm[A]
Система Mathematica содержит команду, позволяющую при помощи элементарных преобразований строк привести матрицу к ступенчатому виду. В результате выполнения этой команды нулевые строки записываются последними, ведущие элементы становятся равными единице, остальные элементы столбцов, содержащих ведущие элементы, становятся равными нулю.
Рассмотрим пример выполнения этой команды.
7. Вычисление определителя матрицы.
Система Mathematica позволяет вычислять определители матриц, элементами которых могут быть как числа, так и символьные величины. Рассмотрим некоторые примеры вычисления определителя матрицы.
Det[A]
78853750347132695363584/30947323736623528969
Найдём приближённое значение полученного числа
Вычислим теперь определитель, элементы которого являются символьными величинами.
X=Table[x[n],{n,1,8}];
Вычисляем определитель.
Det[B];
Производим разложение определителя на множители
Factor[%]
8. Вычисление обратной матрицы.
Пусть - матрица, на главой диагонали которой стоят единицы, а все остальные элементы равны нулю. Такая матрица называется единичной. Матрица называется обратной для матрицы , если выполняется соотношение
.
В системе Mathematica обратная матрица находится следующим образом
10 Вычисление собственных чисел и собственных векторов матрицы.
Пусть -квадратная матрица порядка , единичная матрица того же порядка, вещественное число. Находим определитель матрицы и приравниваем его нулю. Корни полученного уравнения называются собственными числами матрицы . Можно доказать, что если матрица является симметричной, то её корни являются вещественными.
Покажем, как собственные числа матрицы находятся в системе Mathematica.
Матрица называется положительно определённой, если все её собственные числа положительны.
Пусть -собственное число матрицы . Ненулевой вектор называется собственным вектором матрицы с собственным числом , если выполняется соотношение
.
Собственные векторы матрицы в системе Mathematica могут быть найдены следующим образом
Система выдала координаты четырёх линейно независимых собственных векторов матрицы .
11. Вычисление ранга матрицы.
Линейной комбинацией нескольких строк матрицы называется строка, равная сумме произведений данных строк на некоторые числа, называемые коэффициентами этой линейной комбинации. Если некоторая строка матрицы является линейной комбинацией других, то говорят так же, что она линейно выражается через эти строки.
Несколько строк матрицы называются линейно независимыми, если ни одна из них не выражается линейно через остальные.
Рангом матрицы называется наибольшее число линейно независимых строк этой матрицы
Посмотрим, как система Mathematica вычисляет ранг матрицы.
2. Ортогональные системы векторов.
Два вектора будем называть ортогональными, если сумма произведений одноимённых координат этих векторов (скалярное произведение) равна нулю.
В системе Mathematica скалярное произведение векторов и находится следующим образом
. (2.1)
Нормой (длиной) вектора называется квадратный корень из суммы квадратов координат этого вектора. В системе Mathematica норму вектора можно найти так
Легко можно проверить, что если - ненулевой вектор, то норма вектора равна единице.
Два вектора называются ортогональными, если их скалярное произведение равно нулю.
Если система не содержит ненулевых векторов и векторы этой системы попарно ортогональны, то эта система линейно независима.
Базис пространства, состоящий из векторов, нормы которых равны единице и которые попарно ортогональны, называется ортонормированным. Рассмотрим на примере, как исходя из данной системы линейно независимых векторов, можно построить ортонормированную систему.
f1={3,8,11};
f2={5,-1,4};
f3={1,-2,3};
Проверяем, является ли система из заданных векторов линейно независимой. С этой целью строим матрицу, строки которой совпадают с заданными векторами, и находим её определитель.
f={f1,f2,f3};Det[f]
-172
Так как определитель отличен от нуля, то система линейно независима. Далее полагаем
g1=f1;e1=g1/Norm[g1]
g2=f2-f2.e1*e1;e2=FullSimplify[g2/Norm[g2]]
g3=f3-f3.e1*e1-f3.e2*e2;e3=FullSimplify[g3/Norm[g3]]
Пользуясь определением легко проверить, что тройка векторов
{ } образует ортонормированный базис.
Пусть
a={7,2,11}
-заданный вектор. Найдём координаты этого вектора в построенном базисе