Перейти к содержанию

Матрицы

Редактирование

Есть несколько способов вставить матрицу: через меню Вставка > Матрица..., сочетанием клавиш CTRL+M, с палитры Matrices (Matrix 3x3) или введя функцию mat(. Вы получите шаблон 3x3 либо диалоговое окно для указания числа строк и столбцов. Присвоим переменной A матрицу размерностью 3 (строки) x 3 (столбцы). Например, наберите A:, затем CTRL+M. Появится шаблон матрицы 3x3 с пустыми плейсхолдерами.

шаблон матрицы 3x3

Если вы передумали насчёт размерности, её всегда можно изменить. Просто щёлкните внутри матрицы в правом нижнем углу. Появится чёрный квадрат с вертикальной и горизонтальной линией. Зажав левую кнопку мыши (указатель мыши изменит вид), перетащите и скорректируйте размерность. Это можно сделать, даже если плейсхолдеры не пустые.

изменение размерности матрицы

Теперь заполним плейсхолдеры, как на следующем рисунке. Если навести указатель мыши на матрицу, появится всплывающая подсказка — это символьное представление матрицы. Как видно, вещественные числа представлены в виде дробей, а также присутствуют две неопределённые переменные (a и b, без числовых значений).

заполненная матрица с символьными значениями

Использование: символьный режим против численного

Если присвоить значения переменным a и b до определения матрицы, результат будет таким:

присвоены числовые значения

Результат матрицы A можно представить символьно (оператор →) или численно (оператор =). Обратите внимание на разницу:

символьный и численный результат

Извлечение элементов

Отдельный элемент матрицы также можно получить с помощью функции el. Наберите el(A, или A[. Вы увидите:

извлечение элемента матрицы

Присвоение значений элементам

Теперь можно вставить одно целое число (для вектора) или два целых числа (для матрицы), чтобы присвоить значение элементу вектора или матрицы. Здесь (для матрицы) наберите 3,1→ или 3,1= . Появится значение A в третьей строке и первом столбце (минимальный индекс строки и столбца — 1).

присвоение элемента матрицы

Векторы

SMath рассматривает матрицу-столбец как вектор. Элементам вектора нужен только один индекс. Вот пример (для матриц-строк по-прежнему нужны два индекса, первый из которых — 1).

индексация вектора

Дополнительно

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

элементы матрицы разных типов

Обратите внимание на использование функций row и col для извлечения отдельной строки или отдельного столбца.

SMath также поддерживает вложенные матрицы, то есть элемент матрицы сам может быть матрицей. Смотрите следующий пример.

вложенная матрица

Отдельные элементы представляются так же, как и раньше.

элемент вложенной матрицы

Матрицы в SMath — это динамические массивы, и они могут менять свою размерность. Например, функция matrix возвращает матрицу, заполненную нулями. Посмотрите, как получить то же самое, присвоив нулевое значение элементу z3 4.

матрица, заполненная нулями

Теперь попробуйте набрать, например, z5 5:=2

Помимо переменных-матриц и переменных-векторов, существуют также функции для работы с матрицами и векторами.

функции для матриц и векторов

Функция f принимает один аргумент и возвращает вектор из трёх элементов. Аргументом может быть скаляр, вектор или матрица. Попробуйте сами. Функция ff ожидает вектор из двух элементов, а функция F ожидает два аргумента и возвращает матрицу 2x2. Поэкспериментируйте с ними.

При работе с матрицами, несмотря на обилие операторов и функций для матриц/векторов, рано или поздно потребуются циклы. Чаще всего используются одинарные, двойные или вложенные циклы for. Вот простой пример:

цикл for по матрице

Можно инициализировать пустую матрицу фиксированной размерности с помощью matrix(rows,cols), указав один из двух аргументов равным 0.

инициализация пустой матрицы

Эта страница основана на статье из старой вики, автор — Davide Carpi.