V Операции над матрицами с численными элементами и символьные операции с матрицами



Над матрицами с численными элементами в Maple можно выполнять разнообразные операции. Ниже приведены основные из них:

> М:=array(1..2,1..2,[[1,2],[3,4]]);

>evalm(2*М);

>evalm(2E+М);

>evalm(M^2);

>evalm(М^(-1));

>evalm(М-М);

0

>evalm(М+М);

>evalm(М*М);

> evalm(M/M);

1

> evalm(M^0);

1

coldim(M) — возвращает число столбцов матрицы М;

rowdim(M) — возвращает число строк матрицы М;

col(M.i) — возвращает i-й столбец матрицы М;

row(M,i) — возвращает i-ю строку матрицы М;

delcols(M,i..j) — удаляет столбцы матрицы М от i-го до j-го;

delrows(V,i..j) — удаляет строки матрицы М от i-й до j-й;

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

Одной из привлекательных возможностей СКА является возможность проведения символьных операций с матрицами. Ниже представлены примеры символьных операций, осуществляемых над квадратными матрицами одного размера в системе Maple:

> M1:=array(1..2,1..2, [[a1,b1], [c1,d1]]);

> M2:=array(1..2,1..2,[[a2,b2],[c2,d2]]);

>evalm(M1+M2)

>evalm(M1-M2)

>evalm(Ml*M2);

>evalm(M1/М2);

>evalm(M1&/М2);

Приведем еще ряд гримеров выполнения символьных операций с одной матрицей:

>evalm(M1^2);

>evalm(sin(M1));

>evalm(M1*z);

>evalm(M1/z);

>evalm(M1+z);

>evalm(M1-z);

Среди других функций для работы с матрицами полезно обратить внимание на функцию map, которая применяет заданную операцию (например, функции дифференцирования diff и интегрирования int) к каждому элементу матрицы. Примеры такого рода даны ниже:

> M:=array(1..2,1..2,[[х,х^2],[х^3,х^4]]);

>map(diff,M, x);

>map(int, %, x);

>map(sin, M);

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

В дальнейшем мы продолжим изучение матричных функций и операций, включенных в пакеты Maple.

 

VI Пакет линейной алгебры linagl системы

Несомненно, что уникальной возможностью системы Maple, как и других систем компьютерной алгебры, является возможность решения задач линейной алгебры в символьном (формульном, аналитическом) виде. Однако такое решение представляет скорее теоретический, чем практический интерес, поскольку даже при небольших размерах матриц (уже при 4–5 строках и столбцах) символьные результаты оказываются очень громоздкими и трудно обозримыми. Они полезны только при решении специфических аналитических задач, например с разреженными матрицами, у которых большинство элементов имеют нулевые значения.

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

В ядро Maple, как отмечалось, введены очень скромные и минимально необходимые средства для решения задач линейной алгебры. Основной упор в их реализации сделан на подключаемые пакеты. Основным из них, унаследованным от предшествующих реализаций системы, является пакет решения задач линейной алгебры linalg. Это один из самых обширных и мощных пакетов в области решения задач линейной алгебры. Для их просмотра достаточно использовать команду:

>with(linalg);


Дата добавления: 2018-08-06; просмотров: 572; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!