Как найти обратную матрицу в maple

REDMOND

Описание пакета LinearAlgebra

Для определения матрицы в Maple можно использовать команду matrix(n, m, [[a11,a12,…,a1n], [a21,a22,…,a2m],…, [an1,an2,…,anm]]), где n — число строк, m – число столбцов в матрице. Эти числа задавать необязательно, а достаточно перечислить элементы матрицы построчно в квадратных скобках через запятую. Например:

В Maple матрицы специального вида можно генерировать с помощью дополнительных команд. В частности диагональную матрицу можно получить командой diag. Например:

> J:=diag(1,2,3);

Генерировать матрицу можно с помощью функции f(i, j) от переменных i, j – индексов матрицы: matrix(n, m, f), где где n — число строк, m – число столбцов. Например:

>A:=matrix(2,3,f);

Число строк в матрице А можно определить с помощью команды rowdim(A), а число столбцов – с помощью команды coldim(A).

Арифметические операции с матрицами.

Сложение двух матриц одинаковой размерности осуществляется теми же командами, что и сложение векторов: evalm(A+B) или matadd(A,B). Произведение двух матриц может быть найдено с помощью двух команд:

  1. evalm(A&*B);
  2. multiply(A,B).

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

> v:=vector([2,4]);

> multiply(A,v);

> multiply(A,B);

> matadd(A,B);

Команда evalm позволяет также прибавлять к матрице число и умножать матрицу на число. Например:

> evalm(2+3*С);

Определители, миноры и алгебраические дополнения. Ранг и след матрицы.

Определитель матрицы А вычисляется командой det(A).Команда minor(A,i,j) возвращает матрицу, полученную из исходной матрицы А вычеркиванием i-ой строки и j-ого столбца. Минор Mij элемента aij матрицы А можно вычислить командой det(minor(A,i,j)).Ранг матрицы А вычисляется командой rank(A). След матрицы А, равный сумме ее диагональных элементов, вычисляется командой trace(A).7

>det(A);

> minor(А,3,2);

> trace(A);

Обратная и транспонированная матрицы.

Обратную матрицу А- 1 , такую что А- 1 А=АА- 1 =Е, где Е — единичная матрица, можно вычислить двумя способами:

  1. evalm(1/A);
  2. inverse(A).

Транспонирование матрицы А – это изменение местами строк и столбцов. Полученная в результате этого матрица называется транспонированной и обозначается А’. Транспонированную матрицу А’ можно вычислить командой transpose(A).

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

>inverse(A);

> multiply(A,%);

> transpose(A);

Выяснение типа матрицы.

Выяснить положительную или отрицательную определенность матрицы можно при помощи команды definite(A,param), где param может принимать значения: ‘positive_def’ – положительно определена (A>0), ‘positive_semidef’ – неотрицательно определенная , ‘negative_def’ – отрицательно определенная (A<0), ‘negative_semidef’ — неположительно определенная . Результатом действия будет константа true – подтверждение, false – отрицание сделанного предположения. Например:

> definite(А,’positive_def’);

Проверить ортогональность матрицы А можно командой orthog(A).

> В:=matrix([[1/2,1*sqrt(3)/2],

[1*sqrt(3)/2,-1/2]]);

> orthog(В);

Функции от матриц.

Возведение матрицы А в степень n производится командой evalm(A^n). Вычисление матричной экспоненты возможно с помощью команды exponential(A). Например:

> exponential(Т);

> evalm(Т^2);

Задание 2.

  1. Даны матрицы: , , . Найти: (AB)C , detA, detB, detC, det[(AB)C]. Наберите:

> with(linalg):restart;

> B:=matrix([[-28,93],[38,-126]]):

> Det(A)=det(A); Det(B)=det(B); Det(C)=det(C);

Det(F)=det(F);

  1. Дана матрица , найти: detA, , A’, det(M22). Наберите:

> Det(A)=det(A);

> transpose(A);

> inverse(A);

> det(minor(A,2,2));

  1. Найти ранг матрицы .

> r(A)=rank(A);

  1. Вычислить , где .

> exponential([[3,-1],[1,1]]);

  1. Дана матрица . Найти значение многочлена .

> P(A)=evalm(A^3-18*A^2+64*A);

Описание пакета LinearAlgebra

В Maple имеется пакет LinearAlgebra, ориентированный на решение задач линейной (матричной) алгебры. Он загружается соответствующей командой:

[> with(LinearAlgebra);

После выполнения этих команд система выводит на экран список процедур и функций, которыми располагает пакет LinearAlgebra.

Пакет LinearAlgebra является более мощным и совершенным по сравнению с linalg (в ранних версиях программы). Он предназначен для работы с матрицами и векторами больших размеров. Самым простым образом матрицу размером в пакете LinearAlgebra можно сформировать при помощи команды

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

[> help(имя_процедуры);

Название процедуры, функции Формат команды Назначение процедуры, функции
Matrix [> Matrix(m, n, [[a[1,1],…,a[1,n]],…,[a[m,1],…,a[m,n]]]); Формирование матрицы
Basis Определяет базис для векторного пространства, заданного системой векторов
CharacteristicMatrix Создает для квадратной матрицы ее характеристическую матрицу
CharacteristicPolynomial Создает для квадратной матрицы ее характеристический многочлен
Determinant Вычисляет для квадратной матрицы ее определитель
DiagonalMatrix Создает диагональную матрицу
Eigenvalues Вычисляет для квадратной матрицы ее собственные значения (собственные числа)
Eigenvectors Вычисляет для квадратной матрицы ее собственные векторы (рекомендуется использовать вместе с процедурой Eigenvalues)
LinearSolve Решает систему линейных алгебраических уравнений (СЛАУ) в матричной форме
MatrixAdd Процедура сложения двух матриц
Matrixlnverse Процедура нахождения обратной матрицы
MatrixMatrixMultiply Процедура произведения двух матриц
MatrixNorm Функция вычисления нормы матрицы
MatrixScalarMultiply Процедура умножения матрицы на скаляр
MatrixVectorMultiply Процедура умножения матрицы на вектор
Minor Вычисляет минор матрицы
Normalize Нормализует вектор
NullSpace Возвращает нуль-пространство (ядро) матрицы
Rank Вычисляет ранг матрицы
SylvesterMatrix Конструирует матрицу Сильвестра из многочленов
Transpose Вычисляет матрицу, транспонированную к данной

Пример 3.1. Исследовать СЛАУ с параметром (СЛАУ задана своей расширенной матрицей) и решить в каждом случае:

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

[> restart; with(LinearAlgebra): /задаем вектор-столбцы основной матрицы/ [> a1:=Vector([2,1,3]); a2:=Vector([lambda+1,lambda,-3]); a3:=Vector([lambda-2,-3,-7]); /задаем основную матрицу и вектор-столбец свободных коэффициентов системы/ [> A:=Matrix(3,3,[a1,a2,a3]); B:=Vector([3,lambda+2,3]); /выводим определитель основной матрицы системы, решение системы в матричном виде (при значениях, в которых определитель основной матрицы не равен нулю)/ [> Delta:=Determinant(A); X:=LinearSolve(A,B); /вычисляем значения параметра , при котором определитель обращается в нуль/ [> Korni:=solve(Determinant(A)=0); [> lambda:=Korni[1]; X:=LinearSolve(A,B); Error,(in LinearAlgebra:-LA_Main:-LinearSolve) inconsistent system /Maple предупреждает, что СЛАУ при данном значении параметра несовместна/ [> lambda:=Korni[2]; X:=LinearSolve(A,B); /СЛАУ имеет бесконечное множество решений при этом значении параметра /

Пример 3.2. Найти собственные числа и соответственные собственные векторы матрицы

Пакет аналитических вычислений Maple , страница 4

Определение 2.5. Пусть A = [ аijB = [ bij]матрицы типов соответственно mnи pq. Если число столбцов матрицы A равно числу строк матрицы B, т. е. п = р, то для этих матриц определена матрица C типа mq называемая их произведением, при этом cij = аi1b1j + аi2b2j + … + ainbnj , (; ).

Из определения вытекает следующее правило умножения матриц:

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

Мнемоническое правило:Cтрока на столбец.

Пример 2.5. Найти произведение матриц A и B, где

Произведение AB имеет смысл тогда и только тогда, когда матрица A содержит в строках столько элементов, сколько элементов имеется в столбцах матрицы B. В частности, можно перемножать квадратные матрицы лишь одинакового порядка.

Произведение двух матриц не обладает переместительным свой­ством, т. е., вообще говоря, AB ≠ B A, в чем можно убедиться на примерах.

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

В тех частных случаях, когда AB = BA, матрицы A и B назы­ваются перестановочными (коммутативными). Так, например, как нетрудно убедиться, единичная матрица Е перестановочна с любой квадратной матрицей A того же порядка, причем = ЕA = A. Таким образом, единичная матрица Е играет роль единицы при умножении.

2.3 Определитель матрицы. Обратная матрица

Определение 2.6. Определителемили детерминантом квадратной матрицы A = [ аij ] называется число det A или |A|, которое может быть вычислено по элементам матрицы с помощью следующей рекурсии:

Если n = 1, то det A = a11;

Если n = 1, то det A = , где .

Мik – детерминант матрицы, полученной из исходной вычеркиванием первой строки и k – го столбца.

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

Пример 2.6. Найти определитель для матрицы A, где A =

Определение 2.7. Минором элемента aij матрицы называется определитель матрицы, полученной из данной в результате вычеркивания i-й строки и j-гo столбца.

Определение 2.8. Рангом матрицы A называется такое натуральное число r, что среди всех миноров r-го порядка матрицы A есть хотя бы один не равный нулю, а все миноры (r + 1)-го порядка, если существуют, равны 0.

Пример 2.7. Найти ранг для матрицы A, где A=

REDMOND

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

Для матрицы A обозначим обратную ей матрицу через A -1 . Тогда по определению имеем: AA -1 = A -1 A = Е, где Е— единичная матрица.

Нахождение обратной матрицы для данной называется обращением данной матрицы.

Пример 2.8. Найти обратную матрицу A -1 , где A =

Глава 3

Блочные матрицы и их алгебра

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

Пусть дана прямоугольная матрица

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

Про эту матрицу будем говорить, что она разбита на s tблоков Aαβразмером mα nβ(;) или что она представлена в виде блочной матрицы.

Сокращённая запись: A= [ Aαβ ] (;).

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

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

Тогда легко проверить, что

AB = C = [ Cαβ ], где

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

Формула Фробениуса. Пусть неособенная квадратная матрица М (|M| ≠ 0) разбита на блоки

и пусть также A – неособенная квадратная матрица (|A| ≠ 0) . Тогда матрица М -1 находится по формуле:

Формула Фробениуса сводит обращение матрицы порядка n+ q к обращению двух матриц порядка nи q и к операциям сложения и умножения матриц с размерами n n, q q, n q, q n.

Пример 3.1. Найти обратную матрицу M -1 по формуле Фробениуса, где

Ввод осуществляется посредством задания 4 блоков, на которые разбивается исходная матрица M

Далее вычисляем матрицу H и каждый блок матрицы M -1 :

Далее формируем искомую матрицу M -1 :

Функция blockmatrixсодержится в пакете linalg, поэтому для ее использования записывают выражение linalg[blockmatrix], что не подключает весь пакет, а дает возможность использовать только одну функцию. Эта функция позволяет составить матрицу из блоков размера n n и q q.

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

Пример 3.2. Разбить матрицу A на 4 блока, где A =

”Maple”

в) найти угол между векторами и .

2. Даны матрицы , Вычислить:

3. Вычислить определители для следующих матриц:

4. Найти обратные для следующих матриц:

a) Привести матрицу С к треугольному виду.

в) Найти ранг матрицы.

6. Найти собственные значения и собственные векторы матрицы A=

7.Решить матричные уравнения:

^ 1. Какой следует загрузить перед решением задач линейной алгебры в Maple?

Основная часть команд для решение задач линейной алгебры содержится в библиотеке linalg. Поэтому перед решением задач с матрицами и векторами следует загрузить эту библиотеку командой with(linarg).

^ 2. С помощью каких команд можно ввести вектор, матрицу?

1) Для определяется вектора в Maple используется команда vector([x1,x2,…,xn]), где в квадратных скобках через запятую указываются координаты вектора.

2) а) Для определения вектора в Maple можно использовать команду matrix(n, m, [[a11,a12,…,a1n],[a21,a22,…,a2m],…,[an1,an2,…,anm]]), где n число строк, m – число столбцов в матрице. Эти числа задавать необязательно, а достаточно перечислить элементы матрицы построчно в квадратных скобках через запятую.

б) Генерировать матрицу можно с помощью функции f(i, j) от переменных i, j – индексов матрицы: matrix(n, m, f), где где n — число строк, m – число столбцов.

в) В Maple матрицы специального вида можно генерировать с помощью дополнительных команд. В частности диагональную матрицу можно получить командой diag.

^ 3. Какими двумя командами можно сложить два вектора одинаковой размерности (2 матрицы)?

Сложить два вектора a и b можно и с помощью двух команд:

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

^ 4. Какие виды произведений векторов вычисляются Maple и какие команды для этого используются?

Виды произведений векторов в Maple–векторное, скалярное.

Скалярное произведение двух векторов вычисляется командой dotprod(a,b),где a и b вектора.

^ 5. Как вычислить норму вектора?

Норму (длину) вектора можно вычислить с помощью команды norm(a,2),где а вектор.

6. Как вычислить угол между двумя векторами?

Угол между векторами можно вычислить с помощью команды angle(a,b).

7.Опишите команды нахождения базиса системы векторов и построение ортогонального базиса системы векторов.

Если имеется система n векторов , то с помощью команды basis([a1,a2,…,an]) можно найти базис этой системы.

При помощи команды GramSchmidt([a1,a2,…,an]) можно ортогонализовать систему линейно-независимых векторов .

8. Какими двумя командами можно вычислить произведение двух матриц (или матрицы на вектор)?

Произведение двух матриц может быть найдено с помощью двух команд:

^ 9. Какие команды используются для нахождения определителя, минора, алгебраического дополнения, следа матрицы?

Определитель матрицы А вычисляется командой det(A). Команда minor(A,i,j) возвращает матрицу, полученную из исходной матрицы А вычеркиванием i-ой строки и j-ого столбца. Минор Mij элемента aij матрицы А можно вычислить командой det(minor(A,i,j)). Ранг матрицы А вычисляется командой rank(A). След матрицы А, равный сумме ее диагональных элементов, вычисляется командой trace(A). Алгебраическое дополнение находится командой det(minor(A,i,j)), это команда не определяется знак перед минором.

^ 10. Что такое дефект матрицы? Опишите способ нахождения дефекта квадратной матрицы. Какие команды при этом используются?

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

Дефект: d(A)=nr(A), где n – размерность квадратной матрицы, r – ее ранг.

Команды используются следующие rank(A) и rowdim(A)-r(A).

^ 11. Какая матрица называется обратной и какими способами она вычисляется в Maple?

  1. evalm(1/A);
  2. inverse(A).

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

Если Ах=х, то вектор х называется собственным вектором матрицы А, а число  – собственным числом, соответствующим данному собственному вектору.

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

Для нахождения собственных чисел матрицы А используется команда eigenvalues(A). Для нахождения собственных векторов матрицы А используется команда eigenvectors(A)

Результаты этих команд выводятся например в виде [2,1,<[-1,0,1]>],[3,1,<[1,1,1]>],[6,1,<[1,-2,1]>]

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

^ 13. Перечислите специальные виды матриц и команды, приводящие матрицы к этим формам.

В частности диагональную матрицу можно получить командой diag.

  1. команда gausselim(A) приводит матрицу А к треугольному виду методом Гаусса;
  2. команда ffgausselim(A) приводит матрицу А к треугольному виду методом Гаусса без деления. Эта команда предпочтительней для работы с символьными матрицами, так как не производит нормировку элементов и исключает возможные ошибки, связанные с делением на нуль;

^ 14. Что называется ядром матрицы, и какая команда используется для его нахождения?

Ядро матрицы А – это множество векторов х таких, произведение матрицы А на которые равно нулевому вектору: . Поиск ядра матрицы А эквивалентен решению системы линейных однородных уравнений. Найти ядро матрицы А можно командой kernel(A).

REDMOND

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *