6. Операции линейной алгебры

 

Операции линейной алгебры

 

Линейная алгебра — один из фундаментальных разделов математики. Он во многом способствовал развитию методов вычислений. Средства линейной алгебры (преобразование матриц, решение систем линейных уравнений и т. д.) широко используются при решении задач механики, электро- и радиотехники и других отраслей науки и техники. В этом разделе мы познакомимся с основным набором средств системы Mathematica, предназначенных для решения задач линейной алгебры.

Создание массивов

Совокупность данных образует массив (Array). Массивы могут быть одномерными (один список), двумерными и многомерными (два и более списка). Одномерные массивы в математике называют векторами, двумерные — матрицами. В общем случае массив характеризуется размерностью (числом измерений) и размером — произведением числа элементов по всем размерностям. Mathematica позволяет создавать многомерные массивы — число элементов в них ограничено лишь объемом памяти компьютера.

Для задания массивов используются следующие функции:

  • Array [ f, n] — генерирует список длиной п с элементами f [ 1 ], f [ 2 ], ..., f[n];
  • Array [f, {nl, n2, ...}] — генерирует массив размером n1x n2 x... в виде вложенных списков с элементами f [ i I, i2,...] (аргумент функции i k меняется от 1 до nk);
  • Array[f, dims, origin] — генерирует список с размерностью dims, используя спецификацию индекса origin;
  • Array [f, dims, origin, h] — использует заголовок h, а не List, для каждого уровня массива.

Далее приводятся примеры задания массивов и их вывода.


Ввод (In)  

 

Вывод (Out)  

Y : =Array [Exp , 4 ]

Y

 {e,

 e 2 ,

 e 3 ,

 e 4 }

N[Y]

 

 

{2.

71828,

7.

38906,

20.0855, 54

.5982}

Array[f,{3

,

3}]

{{f

[1,

1],

f

[1, 2]

{

f[l,

3]},

{f[2, 1], f[2, 2],

{[2

, 3]

},

{f

[3, 1]

{

f[3,

2], f

[3, 3] }}

Array [Sin,

3

,0]

{0,

Sin

[1]

, Sin[2]

}

Array [Sin,

4

,l,Plus]

Sin

[1]

+ Sin

[2] +

Sin[3]

+ Sin

[4]

Array[f ,5,

2

,2]

2[f

[2],

f [

3]

, f[4]

{

f [5]

, f[6]

]

 

Основные понятия линейной алгебры

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

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

Квадратная матрица — матрица, у которой число строк m равно числу столбцов п. Пример квадратной матрицы размером 3x3:


1  2  3

4  5  6

7  8  9

Сингулярная (вырожденная) матрица — квадратная матрица, у которой детерминант (определитель) равен 0. Такая матрица обычно не упрощается при символьных вычислениях. Линейные уравнения с почти сингулярными матрицами могут давать большие погрешности при решении.

Единичная матрица — это квадратная матрица, у которой диагональные элементов равны 1, а остальные элементы равны 0. Ниже представлена единичная матрица размером 4x4: 


    1 0 0 0
    0 1 0 0
E = 0 0 1 0
    0 0 0 1

Транспонированная матрица — квадратная матрица, у которой столбцы и строки меняются местами. Приведем простой пример.

Исходная матрица:


    a b c
A = d e f
    i k l

Транспонированная матрица:


    a d i
А т = b e k
    c f l

Обратная матрица — это матрица М -1 , которая, будучи умноженной на исходную квадратную матрицу М, дает единичную матрицу Е.

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

Диагональ матрицы — расположенные диагонально элементы А., матрицы А. В приведенной ниже матрице элементы диагонали представлены заглавными буквами:

 


    A b c
А = d E f
    i k L

Обычно указанную диагональ называют главной диагональю — для матрицы А, приведенной выше, это диагональ с элементами А, Е и L. Иногда вводят понятия поддиагоналей (элементы d и k) и наддиагоналей (элементы b к f).

Ранг матрицы — наибольший из порядков отличных от нуля миноров квадратной матрицы.

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


detА = Сумма a1j(-1)j+1M1<j>

где M <J> — определитель матрицы порядка n-1, полученной из матрицы А вычеркиванием первой строки и j-то столбца. В таком виде определитель (он же детерминант) легко получить в символьных вычислениях. В численных расчетах мы будем подразумевать под определителем численное значение этого многочлена.

Матрица в целой степени — квадратная матрица в степени п (п — целое неотрицательное число), определяемая следующим образом: М° = Е, М 1 = М, М 2 = = М*М,..., Мn = М n-1 -М.

Идемпотентная матрица — матрица, отвечающая условию Р 2 = Р.

Инволютивная матрица — матрица, отвечающая условию I 2 = Е.

Симметрическая матрица — матрица, отвечающая условию А т = А.

Кососимметрическая матрица — матрица, отвечающая условию А т = -А.

Ортогональная матрица — матрица, отвечающая условию А т = А- 1 .

Комплексно-сопряженная матрица — матрица А , полученная из исходной матрицы А заменой ее элементов на комплексно-сопряженные.

Эрмитова матрица — матрица А, удовлетворяющая условию А = А .

Собственный вектор квадратной матрицы А — любой вектор х е V n , х не равно 0, удовлетворяющий уравнению Ах = gx, где g — некоторое число, называемое собственным значением матрицы А.

Характеристический многочлен матрицы — определитель разности этой матрицы и единичной матрицы, умноженный на переменную многочлена — |А - g Е|.

Собственные значения матрицы — корни ее характеристического многочлена.

Норма — обобщенное понятие абсолютной величины числа. Норма трехмерного вектора ||х|| — его длина. Норма матрицы — значение sup(||Ax||/||x||). I-норма матрицы А — число

Матричная форма записи системы линейных уравнений — выражение А-Х = В, где А — матрица коэффициентов системы, X — вектор неизвестных, и В — вектор свободных членов. Один из способов решения такой системы очевиден — X = А -1 В, где А- 1 — обратная матрица.

Функции линейной алгебры

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

  • Cross [vl,v2, v3,...] — векторное произведение (может задаваться в виде v1*v2*v3*...);
  • Det [m] — возвращает детерминант (определитель) квадратной матрицы m;
  • DiagonalMatrix [list] — возвращает диагональную матрицу с главной диагональю, сформированной из элементов списка list, и нулевыми остальными элементами матрицы;
  • Dot [a, b, с] — возвращает произведения векторов, матриц и тензоров. Операцию произведения можно задавать также в виде а. b. с;
  • Eigensystem[m] — возвращает список {values, vectors} собственных значений и собственных векторов квадратной матрицы т;
  • Eigenvalues [m] — возвращает список собственных значений квадратной матрицы m;
  • Eigenvectors [m] — возвращает список собственных векторов квадратной матрицы m;
  • IdentityMatrix [n] — возвращает единичную матрицу размером пхп (у нее диагональные элементы имеют значения 1, остальные 0);
  • Inverse [m] — возвращает обратную матрицу для квадратной матрицы т, то есть матрицу m- 1 , которая, будучи умноженной на исходную матрицу, дает единичную матрицу;
  • LinearSolve [m, b] — возвращает вектор х, представляющий собой решение матричного уравнения m. x==b, где m — матрица коэффициентов левой части системы линейных уравнений, х — вектор неизвестных и b — вектор свободных членов в правой части системы;
  • Tr [list] — возвращает след матрицы или тензора (эта функция есть только у Mathematica 4);
  • Transpose [m] — возвращает транспонированную матрицу, у которой столбцы и строки меняются местами в сравнении -с исходной матрицей m;
  • RowReduce [m] — производит гауссовское исключение переменных, возвращая упрощенную форму матрицы m, полученную путем линейного комбинирования строк.

Следующие примеры иллюстрируют применение основных из этих функций.


Ввод (In)

Вывод (Out)

A: =IdentityMatrix [3]

А

{{1,

0,

0},

{0, 1, 0}, {0, 0, 1}}

MatrixExp [A]

{{E,

0,

0},

{0, E, 0}, {0, 0, E}}

MatrixQ [A]

True

MatrixPower [MatrixExp [A] , -1 . 5]

{{0. {0,

22313, 0, 0}, {0, 0.22313, 0), 0, 0.22313}}

А+{{1,2,3},{4,5,6},{7,8,9}}

{{2,

2,

3},

{4, 6, 6}, {7, 8, 10}}

m:={{1,2},{3,7}}

Inverse [m]

{{7,

-2}

, (

-3, 1}}

MatrixQ [m]

True

RowReduce [m]

{{1,

0},

{0

, 1}}

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

Рис. 3.11. Вычисление детерминанта, собственных значений и векторов матрицы

Приведем еще несколько примеров:


m={{1,2},{3,7}}

{{1, 2}, {3, 7}}

Transpose[m]

{{1, 3), {2, 7}}

m//MatrixForm

1 2

3 7

Transpose[m]//MatrixForm

Inverse[m]//MatrixForm

7 -2

-3 1

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

Решение систем линейных уравнений

Приведем также примеры на решение систем линейных уравнений матричными методами. В первом из них решение выполняется в символьном виде на основании формулы X = А -1 В, где А — матрица коэффициентов системы линейных уравнений, В — вектор свободных членов. Для перемножения используется функция Dot, а для инвертирования матрицы — функция Inverse:


A:={{a,b},{c,d}}

B:={e,f}

X:=Dot[Inverse[A],B]

X

{-de/(bc+ad) -bf/(bc+ad)- ce/(bc+ad) -af/(bc+ad)}

Во втором примере для решения системы линейных уравнений используется функция LinearSolve:


LinearSolve[{{l,2},{3,4}},{7,9}]

{-5, 6}

Нередко, например в электротехнических расчетах, встречается необходимость решения систем линейных уравнений с комплексными элементами. Все описанные выше функции обеспечивают работу с комплексными числами. Следующий пример иллюстрирует решение системы линейных уравнений с комплексными данными:


А={ U+2I,2+3I},{3+4I,4+5I}}

{{1+21, 2 + 31}, {3 + 41, 4+ 51}}

В={21,3}

{21,3} X=LinearSolve[А,В]

{1/4-41, 11I/4}

Число матричных функций в системе Mathematica 3/4 ограничено разумным минимумом, позволяющим реализовать множество других, более сложных матричных функций и преобразований. Их можно найти в пакетах расширения системы, посвященных линейной алгебре.

 

gl3-11.jpg

Изображение: