Ранжированная переменная отличается от вектора (одномерного массива) тем, что невозможно использование ее отдельных значений. При необходимости иметь доступ к каждому значению переменной со многими компонентами она должна быть задана в виде одномерного (вектора) и двумерного (матрицы) массива.
Местоположение элемента массива задается одним индексом для вектора и двумя для матрицы. Индексы могут быть только положительными целыми числами. Для ввода индекса используется знак «[» – прямая открывающая скобка.
Для задания массивов можно либо воспользоваться командой Matrices меню Math, либо нажать комбинацию клавиш Ctrl+V, либо щелкнуть на значке с изображением шаблона матрицы. Любое из этих действий вызывает появление диалогового окна, в котором надо указать количество строк m и столбцов n в массиве. При m=1 получим вектор-столбец, а при n=1 – вектор-строку.
В отношении массивов действуют те же правила присваивания и вывода, что и для обычных переменных. В частности, с помощью оператора присваивания можно создать массив заданного размера и заданного типа без ручного заполнения шаблона (рисунок 2.2.).
Рис. 2.2. Пример создания матриц без использования шаблонов матриц
Для работы с массивами Mathcad содержит ряд операторов и функций. Ниже представлены операторы для работы с векторами и матрицами. В таблице используются следующие обозначения: V – для векторов, M – для матриц, Z – для скалярных величин.
Оператор | Ввод | Описание |
V1+V2 | V1+V2 | Сложение векторов V1 и V2 |
V1-V2 | V1-V2 | Вычитание векторов V1 и V2 |
-V | -V | Смена знака у элементов вектора V |
-M | -M | Смена знака у элементов матрицы M |
V-Z | V-Z | Вычитание из всех элементов вектора V скаляра Z |
Z*V, V*Z | Z*V, V*Z | Умножение вектора V на скаляр Z |
Z*M, M*Z | Z*M, M*Z | Умножение матрицы M на скаляр Z |
V1*V2 | V1*V2 | Скалярное умножение векторов V1 и V2 |
M*V | M*V | Умножение матрицы M на вектор V |
M1*M2 | M1*M2 | Умножение матрицы M1 на матрицу M2 |
V/Z | Деление всех элементов вектора V на скаляр Z | |
M/Z | Деление всех элементов матрицы M на скаляр Z | |
M-1 | M^-1 | Обращение матрицы M |
Mn | M^n | Возведение матрицы M в степень n |
|V| | |V | Вычисление модуля вектора V |
|M| | |M | Вычисление определителя матрицы M |
VT | V Ctrl+! | Транспонирование вектора V |
MT | M Ctrl+! | Транспонирование матрицы M |
V1´V2 | V1 Ctrl+* V2 | Векторное умножение векторов V1 и V2 |
Alt+$ V | Вычисление суммы элементов вектора V | |
M<n> | M Ctrl+^ n | Выделение n-ого столбца матрицы M |
Vn | V[n | Выделение n-ого элемента вектора V |
Mm,n | M[(m,n) | Выделение элемента (m, n) матрицы M |
Существует ряд встроенных векторных и матричных функций. Они облегчают решение задач линейной алгебры и других сфер приложения векторов и матриц.
length(V) | возвращает число элементов вектора |
last(V) | возвращает номер последнего элемента вектора |
max(V) | возвращает максимальный по значению элемент вектора или матрицы |
min(V) | возвращает минимальный по значению элемент вектора или матрицы |
augment(M1,M2) | объединяет в одну две матрицы, имеющие одинаковое число строк (объединение идет бок о бок) |
identity(n) | создает единичную квадратную матрицу размером n*n |
stack(M1,M2) | объединяет в одну две матрицы, имеющие одинаковое число столбцов, располагая М1 над М2 |
submatrix(A,ir,jr,ic,jc) | возвращает субматрицу, состоящую из всех элементов содержащихся в строках от ir по jr и столбцов с ic по jc (ir£jr и ic£jc) |
diag(V) | создает диагональную матрицу, элементы главной диагонали которой равны элементам вектора V |
matrix(m,n,f) | создает матрицу, в которой (i, j) элемент равен f(i,j), где i=0, 1, …, m и j=0, 1, …, n; f(i,j) - некоторая функция |
cols(M) | возвращает число столбцов матрицы M |
rows(M) | возвращает число строк матрицы M |
rank(M) | возвращает ранг матрицы M |
tr(M) | возвращает след (сумму диагональных элементов) матрицы M |
mean(M) | возвращает среднее значение элементов матрицы M |
Примеры работы с матрицами приведены на рисунке 2.3.
Рис. 2.3. Примеры работы с матрицами