Вопрос: Какой язык программирования вы предпочитаете
|
Иллюстрированный самоучитель по Mathematica
Операции линейной алгебры
Линейная
алгебра — один из фундаментальных разделов математики. Он во многом способствовал
развитию методов вычислений. Средства линейной алгебры (преобразование матриц,
решение систем линейных уравнений и т. д.) широко используются при решении задач
механики, электро- и радиотехники и других отраслей науки и техники. В этом
разделе мы познакомимся с основным набором средств системы 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, для каждого уровня массива.
Далее приводятся
примеры задания массивов и их вывода.
Основные понятия линейной алгебры
Массивы,
в основном в виде векторов и матриц, широко применяются при решении задач линейной
алгебры. Прежде чем перейти к рассмотрению возможностей 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
|
Транспонированная
матрица — квадратная матрица, у которой столбцы и строки меняются местами.
Приведем простой пример.
Исходная
матрица:
Транспонированная
матрица:
Обратная
матрица — это матрица М
-1
, которая, будучи умноженной на исходную
квадратную матрицу М, дает единичную матрицу Е.
Ступенчатая
форма матрицы соответствует условиям, когда первый ненулевой элемент в каждой
строке есть 1 и первый ненулевой элемент каждой строки появляется справа от
первого ненулевого элемента в предыдущей строке, то есть все элементы ниже первого
ненулевого в строке — нули.
Диагональ
матрицы — расположенные диагонально элементы А., матрицы А. В приведенной
ниже матрице элементы диагонали представлены заглавными буквами:
Обычно указанную
диагональ называют главной диагональю — для матрицы А, приведенной выше,
это диагональ с элементами А, Е и 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, полученную
путем линейного комбинирования строк.
Следующие
примеры иллюстрируют применение основных из этих функций.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MatrixPower
[MatrixExp [A] , -1 . 5]
|
|
22313, 0, 0},
{0, 0.22313, 0), 0, 0.22313}}
|
А+{{1,2,3},{4,5,6},{7,8,9}}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Вычисление
детерминанта матрицы и функций, относящихся к собственным значениям, представлено
на рис. 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 ограничено разумным минимумом, позволяющим
реализовать множество других, более сложных матричных функций и преобразований.
Их можно найти в пакетах расширения системы, посвященных линейной алгебре.
|
|
|