- •Лабораторная работа №1 Ознакомление с пакетом Matlab. Операции с матрицами
- •Теоретические сведения Структура и рабочие окна пакета Matlab
- •Работа в командном режиме
- •Основные элементы языка программирования Matlab
- •Арифметические операции пакета Matlab
- •Элементарные функции пакета Matlab
- •Операторы отношения пакета Matlab
- •Логические операторы пакета Matlab
- •Интересные факты:
- •Ввод матриц
- •16 3 2 13
- •16 5 9 4
- •16 2 3 13
- •5.0 10.0 11.0 8.0
- •9.0 6.0 7.0 12.0
- •4.0 15.0 14.0 1.0];
- •Индексы элементов матриц
- •Матричные функции линейной алгебры
- •Матричные функции линейной алгебры
- •Массивы
- •256 9 4 169
Индексы элементов матриц
Элемент в строке i и столбце j матрицы А обозначается A(i,j). Например, A(4,2) — это число в четвертой строке и втором столбце. Для нашего магического квадрата A(4,2) =15. Таким образом, можно вычислить сумму элементов в четвертом столбце матрицы А, набрав:
A(1,4) + A(2,4) + A(3,4) + A(4,4)
получим
ans = 34
Однако это не самый лучший способ суммирования отдельной строки. Также возможно обращаться к элементам матрицы через один индекс, A(k). В этом случае массив рассматривается как длинный вектор, сформированный из столбцов исходной матрицы.
Так, для магического квадрата, A(8) — это другой способ ссылаться на значение 15, хранящееся в A(4,2).
Если использовать значение элемента вне матрицы, Matlab выдаст ошибку:
t=A(4,5)
??? Index exceeds matrix dimensions.
С другой стороны, если сохранить значение вне матрицы, то размер матрицы увеличивается:
X=A;
X(4,5) = 17
X =
16 3 2 13 0
5 10 11 8 0
9 6 7 12 0
4 15 14 1 17
Оператор двоеточия. Двоеточие : — это один из наиболее важных операторов Matlab. Он проявляется в различных формах. Выражение:
1:10
— это вектор-строка, содержащая целые числа от 1 до 10:
1 2 3 4 5 6 7 8 9 10
Для получения обратного интервала:
100:-7:50
что дает:
100 93 86 79 72 65 58 51
или:
0:pi/4:pi
что приводит к:
0 0.7854 1.5708 2.3562 3.1416
Индексное выражение, включая двоеточие, относится к части матрицы: A(1:k, j) это первые k элементов j-го столбца матрицы А. Так:
sum(A(1:4,4))
вычисляет сумму четвертой строки. Но есть и лучший способ. Двоеточие, само по себе, обращается ко всем элементам в строке и столбце матрицы, а слово end — к последней строке или столбцу. Так:
sum(A(:,end))
вычисляет сумму элементов в последнем столбце матрицы А:
ans = 34
Почему магическая сумма квадрата равна 34? Если целые числа от 1 до 16 отсортированы в четыре группы с равными суммами, эта сумма должна быть:
sum(1:16)/4
которая равна:
ans = 34
Матричные функции линейной алгебры
Математические операции, определенные на матрицах являются объектом линейной алгебры (табл. 1).
Таблица 1
Матричные функции линейной алгебры
det(A) — возвращает определитель квадратной матрицы A.
rank(A) — возвращает ранг матрицы A.
trace(A) — возвращает след матрицы A.
inv(A) — возвращает матрицу, обратную квадратной матрицы A.
size(A) — возвращает вектор-строку, содержащую количество строк и столбцов в массиве A.
length(X) — возвращает длину вектора X.
max(A) — возвращает вектор-строку, содержащую значения максимальных элементов в столбцах матрицы А.
min(A) — возвращает вектор-строку, содержащую значения минимальных элементов в столбцах матрицы А.
Массивы
Когда мы выходим из мира линейной алгебры, матрицы становятся двумерными численными массивами. Арифметические операции на массивах производятся поэлементно. Это означает, что суммирование и вычитание являются одинаковыми операциями для матриц и массивов, а умножение для них различно. Matlab использует точку, как часть записи для операции умножения массивов.
Список операторов включает в себя:
Если магический квадрат Дюрера умножить на себя по правилам умножения массивов:
A.*A
результатом будет массив, содержащий квадраты целых чисел от 1 до 16:
ans =