суббота, 28 февраля 2015 г.

Maxima. Матрицы

Работать с матрицами в Maxima хоть и не так удобно, как, скажем, в Freemat, но вполне возможно. Матрица задаётся с помощью выражения
matrix(стр1, стр2, ... стрN), 
где стр1 - стрN - списки элементов каждой из строк. В wxMaxima также можно воспользоваться меню "Алгебра" - "Enter matrix", затем указать имя, размер, тип матрицы и заполнить её элементы. Кстати, элементами могут быть не только числа, но и символьные переменные. Получить элемент (i,j) матрицы M можно с помощью выражений M[i,j] или M[i][j]. При этом индексация начинается с 1, т.е. M[1,1] - левый верхний угол.


Вектор можно задать либо как однострочную матрицу с последующим транспонированием, либо воспользоваться функцией covect(стр), но для этого придётся предварительно загрузить пакет "eigen" функцией load().
n-ную строку матрицы M возвращает функция row(M,n), столбец - col(M,n). Добавить строки можно с помощью addrow(M, элт1, элт2, ... ), столбцы - addcol(M, элт1, элт2, ...), где элт1, элт2, ... - список элементов (матриц или списков), которые должны быть присоединены. Сформировать подматрицу позволяет функция submatrix(i1,i2,..in,M,j1,j2,..jk), где слева от имени матрицы M перечисляются удаляемые строки, справа - столбцы). Квадратную единичную матрицу размера n можно получить с помощью функции ident(n), нулевую матрицу m x n - zeromatrix(m,n).
Операции над матрицами, записанные с помощью знаков +, -, *, /, ^, выполняются поэлементно. Матричное произведение обозначается точкой ".", а чтобы возвести в степень именно матрицу, используйте японский смайлик "^^".
Вот ещё несколько полезных матричных функций.
transpose(M) - транспонирует матрицу M.
determinant(M) - вычисляет определитель квадратной матрицы M.
invert(M) - вычисляет матрицу, обратную к M.
triangularize(M) - формирует из M треугольную матрицу методом Гаусса.
length(M) - возвращает число строк матрицы M.
eigenvalues(M) - определяет собственное значение M.
eigenvectors(M) - возвращает собственные векторы M.

Комментариев нет:

Отправить комментарий