Тема 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.
|
|
Команды линейной алгебры позволяют производить все основные операции с матрицами и векторами. Ниже приводится часть возможных операций и соответствующие 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.
Дата добавления: 2022-06-11; просмотров: 19; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!