Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lection6 Maple_2.doc
Скачиваний:
41
Добавлен:
17.12.2018
Размер:
180.22 Кб
Скачать

Тема 6. Линейная алгебра в системе Maple

Часть команд линейной алгебры содержится в стандартной библиотеке (т.е. доступны по умолчанию), к таким командам относятся команды: evalm, Eigenvals, Det и некоторые другие. Другие команды содержатся в пакете linalg. Пакет линейной алгебры (linalg), содержащий более 100 команд, подключается командой

> with(linalg);

Основными объектами команд линейной алгебры являются массивы (array), векторы (vector) и матрицы (matrix). Приведем примеры их эквивалентного ввода матриц.

Пример:

> array(1..2,1..3,[[a,b,c],[d,e,f]]); matrix(2,3,[a,b,c,d,e,f]);

Для ввода вектора можно также использовать два способа.

Пример:

> A:=array(1..3,[x,y,z]);

> A:=vector(3,[x,y,z]);

При вводе можно опускать часть элементов массива, матрицы, вектора. Maple заполнит вакансии переменными по умолчанию. Maple предоставляет возможность сокращенного задания симметричных, антисимметричных, разреженных, диагональных и единичных матриц. Для ввода таких матриц достаточно ввести характерные элементы и указать тип вводимой матрицы. При работе с массивами нужно помнить, что Maple следует правилу оценки последнего имени. Это означает, в частности, что если вы определили массив, а затем в строке ввода напечатали его имя, то строка вывода будет состоять из этого имени. Для выдачи содержимого массива можно использовать команды eval и op.

Нижеследующий пример иллюстрирует сказанное:

> M:=array(1..2,1..2,identity);

Здесь при помощи опции identity задается диагональная единичная матрица 2x2.

> M;

> eval(M);

Команды линейной алгебры позволяют производить все основные операции с матрицами и векторами. Ниже приводится часть возможных операций и соответствующие Maple-команды. Об остальных командах можно узнать при работе с программой Maple, обратившись к справке при помощи команды

> ?linalg

Матричные и векторные операции

add(u,v) или evalm(u+v) сложение двух векторов или матриц.

Для команды add существует расширенный вариант:

add(M1,M2,c1,c2) сложение матриц или векторов M1 и M2 со скалярными множителями c1 и с2 (c1*M1+c2*M2), причем размерности этих матриц должны быть одинаковыми.

multiply(M1,M2) или evalm(M1 &* M2) умножение матриц M1 и M2. Причем в качестве одного из параметров может быть вектор ( multiply(M1,v1) ).

> S := array([[1,2],[3,4]]):

> T := array([[1,1],[2,-1]]):

> evalm(S+2*T);

> evalm(S^2);

> evalm(sin(S));

> evalm(S &* T);

dotprod(v1,v2) скалярное произведение векторов v1 и v2.

crossprod(v1,v2) векторное произведение векторов v1 и v2.

evalm(M^n) возведение матрицы M в n-ю степень.

inverse(M) или evalm(1/M) вычисление обратной к M матрицы.

det(M) вычисление определителя матрицы M.

trace(M) вычисление следа матрицы M.

adjoint(M) вычисление сопряженной матрицы для квадратной матрицы M.

transpose(M) транспонирование матрицы M.

Математические операции с матрицами и векторами

linsolve(M,v) решение линейной системы алгебраических уравнений вида M∙x=v, где M – матрица.

gausselim(M) метод Гаусса для матрицы M.

eigenvals(M) вычисление собственных чисел матрицы M.

eigenvects(M) вычисление собственных векторов матрицы M; результат представляется в виде: собственное число, его кратность, затем соответствующий собственный вектор.

norm(M) вычисление нормы матрицы M.

orthog(M) проверка ортогональности матрицы M.

hermite(M,x) получение эрмитовой формы матрицы M.

angle(v1,v2) вычисление угла между векторами v1 и v2 одинаковой длины.

basis(V) определение базиса для набора векторов V.

rank(M) вычисление ранга матрицы M.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]