Приклад Скалярні твори векторів і матриць
> <1,3>.<4|6>;
> <4|6>.<1,3>;
Для отримання ступеня квадратної матриці можна послідовно застосувати операцію скалярного множення необхідне число раз або операцію зведення в ступінь(^)
> M:=<<0.2|0.8>,<0.7|0.5>>;
> M.M.M.M.M;
> M^5;
Показник ступеня може бути і негативним цілим числом, що дозволяє обчислювати зворотну матрицю і її ступені:
> M^(-1);
Для виділення елементів матриці і її підматриць використовується індексний запис, причому як індекс можна застосовувати діапазон, що дозволяє виділяти цілі блоки початкової матриці:
> restart:M:=Matrix(5,(i,j) ->3*i-j);
> M[3,1..-1];#выбор третього рядка
> M[3,2]; #Выбор елементу матриці
> M[1..-1,2];#Выбор другого стовпця
> M[2..3,2..4];#Выбор блоку розмірності 2х3
Всі перераховані операції можна виконувати за допомогою команд пакету LinearAlgebra, які рекомендується використовувати при програмуванні в Maple, хоча і допустиме їх використовування при інтерактивній роботі. Неповний список команд допустимих операцій над матрицями і векторами приведений в табл. .
Таблиця . Команди виконання операцій над матрицями і векторами
Назва команди
|
Опис
|
DeleteRow |
Видалення рядка матриці |
DeleteColumn |
Видалення стовпця матриці |
Row |
Виділення рядка матриці |
Column |
Виділення стовпця матриці |
SubMatrix |
Виділення підматриці із заданої матриці |
SubVector |
Виділення підвектора із заданого вектора |
ScalarMultiply |
Множення матриці/вектора на скаляр |
MatrixVectorMultiply |
Скалярний твір матриці на вектор-стовпець |
VectorMatrixMultiply |
Скалярний твір вектора-рядка на матрицю |
MatrixMatrixrMuitiply |
Скалярний твір матриці на матрицю |
MatrixInverse |
Обчислення зворотної матриці |
Determinant |
Обчислення визначника матриці |
Minor |
Виділення мінору матриці |
ConditionNumber |
Обчислення числа обумовленості матриці |
Eigenvalues |
Обчислення власних значень матриці |
Eigenvectors |
Обчислення власних векторів |
Одержати повну інформацію про всіх перерахованих в табл. командах можна на сторінках довідки по кожній з команд, які відображаються після виконання команди ?имя команди.
Рішення систем лінійних рівнянь
У пакет LinearAlgebra, як і в пакет linalg, входить спеціальна команда LinearSolve() рішення систем лінійних рівнянь алгебри. На відміну від свого двійника linsolve() з пакету linalg в цій команді можна вказати спосіб, яким слід вирішувати систему, але аналогічно своєму двійнику вона вимагає завдання системи рівнянь в матричній формі, тобто як параметри їй передаються матриця а системи і вектор правих частин b. Сама система в матричній формі записується у вигляді а.x=b.
Загальний синтаксис команди LinearSolve() наступний:
LinearSoive(А, В, m, t, з, ip, outopts);
Тут параметр а представляє матрицю системи, а параметр B — її ліву частину, причому в може задаватися як у вигляді вектора, так і у вигляді матриці. У останньому випадку за одне звернення до команди рішення системи лінійних рівнянь розв'язуватиметься безліч систем з правими частинами, представленими векторами — стовпцями матриці в. Параметр в можна і не задавати, передаючи як перший параметр розширену матрицю системи <А|B>. Розмірності матриці рішення узгоджуються з размерностямі матриць правої і лівої частин рівняння. Якщо матриця системи а має розмірність mxn, і права частина представлена матрицею mxp, то результатом буде матриця розмірності nхр, стовпці якої будуть рішеннями відповідних систем.
Необов'язковий параметр m задається у формі рівняння method=имя, де ім'я вибирається з наступного списку: 'none', 'solve', 'subs', 'Cholesky', 'LU’, 'QR', 'sparseLU' і визначає метод рішення системи рівнянь.
Параметр t, який також необов'язковий, визначає базове ім'я змінної у формі free = ім'я, яке використовується для конструювання імен параметрів у випадку, якщо початкова система лінійних рівнянь має безліч рішень.
Необов'язковим параметром з у формі рівняння conjugate=true/false визначається, чи слід будувати ермітову зв'язану матрицю при використовуванні методу Холецкого або QR-декомпозиции.
Література:
Матросов А.В. Maple 6. Решение задач высшей математики и механики, Москва, 2000 – 528 с. [4], 160-187
Контрольні запитання:
Використання пакету linalg.
Використання пакету LinearAlgebra.
