- •Лабораторная работа №6 «Линейная алгебра. Векторы, матрицы и определители»
- •Создание матриц на основе некоторой функции
- •Создание матриц для построения 3d графиков
- •Создание диагональных матриц
- •Выделение подматрицы
- •Слияние матриц
- •Специфические преобразования матриц
- •Операции над матрицами
- •Транспонирование
- •Действия над матрицами
- •Векторная алгебра
- •Векторизация массива
- •Символьные операции с матрицами
- •Задания к лабораторной работе №6
Создание диагональных матриц
В Mathcad легко создать матрицы, имеющие определенное простое строение, с помощью одной из встроенных функций.
identity (N) — единичная матрица размера NxN;
diag(v) — диагональная матрица, на диагонали которой находятся элементы вектора v:
N — целое число;
v — вектор.
Пример 2.
Выделение подматрицы
Из матрицы или вектора можно выделить либо подматрицу, либо вектор-столбец, либо отдельный элемент. И обратно, можно "склеить" несколько матриц в одну.
Часть матрицы выделяется одним из следующих способов (пример 3.)
для выделения одного элемента предназначен оператор нижнего индекса. Оператор вводится нажатием кнопки Subscript (Нижний индекс) со значком xn на панели Matrix (Матрица), либо нажатием клавиши <[> (вторая строка примера 3);
для выделения из матрицы столбца примените оператор выделения столбца нажатием кнопки Matrix Column с изображением угловых скобок <> на панели Matrix, либо сочетанием клавиш <Ctrl>+<6> (третья строка примера 3). Этот оператор называют еще, по аналогии с предыдущим, оператором верхнего индекса;
чтобы выделить из матрицы строку, примените тот же оператор <> к транспонированной матрице (конец примера 3);
для выделения подматрицы используйте встроенную функцию submatrix (A, ir, jr, ic, jc), возвращающую часть матрицы А, находящуюся между строками ir,jr и столбцами ic,jc включительно (пример 4).
Пример 3. Доступ к отдельным элементам, столбцам и строкам матрицы
ПРИМЕЧАНИЕ 1
Выделить из матрицы один столбец или строку можно и с помощью функции submatrix (пример 4, нижняя строка).
ПРИМЕЧАНИЕ 2
Те же операции применимы к матрицам-векторам и матрицам-строкам. Следует помнить только, что размер их составляет Nx1 и 1xN соответственно.
Пример 4. Выделение подматрицы
Слияние матриц
Для того чтобы составить из двух или более матриц одну, в Mathcad предусмотрена пара матричных функций (пример 5):
augment (А, B, C, . ..) — матрица, сформированная слиянием матриц-аргументов слева направо;
stack (А, B, C, . ..) — матрица, сформированная слиянием матриц-аргументов сверху вниз:
А, B, C, . .. — векторы или матрицы соответствующего размера.
Пример 5. Примеры слияния матриц
Специфические преобразования матриц
Еще две встроенных функции Mathcad позволяют создавать матрицы на основе некоторой имеющейся матрицы (пример 6):
geninv (A) — создание матрицы, обратной (слева) прямоугольной матрице А;
rref (А) — преобразование матрицы или вектора А в ступенчатый вид:
А — матрица, составленная из действительных чисел.
ПРИМЕЧАНИЕ
Размер NxM матрицы А для функции geninv должен быть таким, чтобы N>M.
Пример 6. Создание матриц на основе другой матрицы
Часто бывает нужно переставить элементы матрицы или вектора, расположив их в определенной строке или столбце в порядке возрастания или убывания. Для этого имеются несколько встроенных функций, которые позволяют гибко управлять сортировкой матриц:
sort(v) — сортировка элементов вектора в порядке возрастания (пример 7, верхняя строка);
reverse (v) — перестановка элементов вектора в обратном порядке (пример 7, нижняя строка);
csort (A, i) — сортировка строк матрицы выстраиванием элементов 1-го столбца в порядке возрастания (пример 8, верхняя строка);
rsort (A, i) — сортировка столбцов матрицы выстраиванием элементов i-й строки в порядке возрастания (пример 9, нижняя строка):
v — вектор;
А — матрица;
i — индекс строки или столбца.
ПРИМЕЧАНИЕ
Если элементы матриц или векторов комплексные, то сортировка ведется по действительной части, а мнимая часть игнорируется.
Пример 7. Сортировка вектора
Пример 8. Сортировка матриц по строке и столбцу
Для получения сведений о характеристиках матриц или векторов предусмотрены следующие встроенные функции (пример 9 и 10 соответственно):
rows (A) — число строк;
cols (А) — число столбцов;
length (v) — число элементов вектора;
last (v) — индекс последнего элемента вектора
max(A) Самый большой элемент в массиве A. Если A имеет комплексные элементы, возвращает наибольшую вещественную часть плюс i, умноженную на наибольшую мнимую часть.
min(A) Самый маленький элемент в массиве A. Если A имеет комплексные элементы, возвращает наименьшую вещественную часть плюс i, умноженную на наименьшую мнимую часть.:
А — матрица или вектор;
v — вектор.
ПРИМЕЧАНИЕ
Если матричные индексы нумеруются с 1, т. е. системная константа ORIGIN равна не о (по умолчанию), а 1, то число элементов вектора и индекс его последнего элемента совпадают.
Пример 9. Размер матриц
Пример 10. Размер векторов