> M:=convert(M2,matrix);

> type(M,matrix);

true

Таким образом, используя функцию преобразования данных convert, можно преобразовывать одномерные списки в векторы, а двумерные — в матрицы. Функция type используется в следующих формах:

type(V,vector) — тестирует аргумент V и возвращает true, если V — вектор, и false в ином случае;

type(M.matrix) — тестирует аргумент М и возвращает true, если М — матрица, и false в ином случае.

Здесь параметры vector и matrix используются для указания того, какой тип объекта проверяется. Обратите внимание на то, что матрицы отображаются иначе, чем двумерные списки — без двойных квадратных скобок. Отображение вектора подобно отображению одномерного списка, поэтому здесь особенно важен контроль типов данных.

6.1.6. Операции с векторами

Важное достоинство систем компьютерной алгебры, к которым относится и Maple, заключается в возможности выполнения аналитических (символьных) операций над векторами и матрицами. Перед проведением символьных операций с векторами и матрицами рекомендуется очистить память от предшествующих определений с помощью команды restart. Если какие-то элементы векторов или матриц были ранее определены, это может привести к очень сильным искажениям вида конечных результатов. Очистка памяти устраняет возможность ошибок такого рода.

Приведем примеры операций над векторами (файл vectop):

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

V:= [1, 2, 3, 4]

> [V[1], V[2], V[4]];

[1, 2, 4]

> V[1]:=a: V[3]:=b:

> evalm(V);

[a, 2, b, 4]

> evalm(V+2);

[a + 2, 4, b + 2, 6]

> evalm(2*V);

[2 a, 4, 2 b, 8]

> evalm(V**V);

[a, 2, b, 4]V

> evalm(a*V);

[a², 2 a, a b, 4 a]

В этих примерах используется функция evalm(M), осуществляющая вычисление матрицы или вектора М.

6.1.7. Операции над матрицами с численными элементами

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

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

> evalm(2*М);

> evalm(2+М);

> evalm(M^2);

> evalm(М^(-1));

> evalm(М-М);

0

> evalm(М+М);

> evalm(М*М);

> evalm(M/M);

1

> evalm(M^0);

1

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

6.1.8. Символьные операции с матрицами

Одной из привлекательных возможностей СКА является возможность проведения символьных операций с матрицами. Ниже представлены примеры символьных операций, осуществляемых над квадратными матрицами одного размера в системе 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));

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату