Векторно-матричные операции.
Все данные в системе MATLAB интерпретируются как массивы.
Массив – это упорядоченный набор однотипных данных (действительных и комплексных чисел, переменных, арифметических выражений). Каждый массив имеет имя. Массивы бывают одномерными, двумерными и многомерными. Доступ к конкретному элементу массива осуществляется путем указания его индекса (номера элемента в массиве).
Вектор в MATLAB – это одномерный массив, матрица – двумерный массив. По умолчанию программа предполагает, что каждая заданная переменная это вектор или матрица. Так, например, запись v=1 означает вектор, состоящий из единственного элемента = 1.
Способы задания векторов и матриц:
1.если значения элементов векторов являются арифметической прогрессией, такой вектор можно задать в виде:
имя = xn : dx : xk
где имя – имя, которое присваивается массиву; xn, xk – соответственно значения первого и последнего элементов массива, dx – шаг для формирования следующего элемента массива. Если параметр dx отсутствует, тогда шаг = 1 и вектор задается так:
имя = xn : xk
Пример.
>> x=-3:2:3
x =
-3 -1 1 3 >>
>>
>> x=-3:3
x =
-3 -2 -1 0 1 2 3
>>
2.Поэлементный ввод. Для определения вектор-строки записывается имя массива, знак присваивания “=”, затем в квадратных скобках через пробел или запятую значения элементов массива, например, v=[1 2 3 4 5] или v=[1,2,3,4,5].
Элементы вектора-столбца вводятся через точку с запятой, например, v=[1;2;3;4;5].
Приобращении к элементу векторауказывается имя массива и порядковый номер элемента в круглых скобках, например v(1).
Ввод элементов матрицы осуществляется в квадратных скобках, при этом элементы строки отделяются друг от друга пробелом или запятой, а сами строки разделяются между собой точкой с запятой, например A=[1 2; 3 4]. Второй вариант задания той же матрицы
A=[1 2
3 4]
Обращение к элементу матрицы имеет вид: A(m,n), где m – номер строки элемента, n – номер столбца.
3. Путем объединения нескольких векторов. Результатом выполнения следующего фрагмента программы
>> a=[1 2 3];
>> b=[4 5 6];
>> c=[a b];
будет вектор с, содержащий элементы:
1 2 3 4 5 6
Результатом выполнения фрагмента программы
>> a=[1 2];
>> b=[3 4];
>> с=[a; b]
станет матрица с, имеющая вид
1 2
3 4
Формирование матриц и векторов определенного вида:
1. zeros(m,n) – прямоугольная матрица с нулевыми элементами, где m – число строк, n – число столбцов.
>> A=zeros(2,3)
A =
0 0 0
0 0 0
>>
- zeros(m) – квадратная матрица с нулевыми элементами.
>> A=zeros(3)
A =
0 0 0
0 0 0
0 0 0
>>
- ones(m,n) – прямоугольная матрица, состоящая из единиц;
>> B=ones(2,3)
B =
1 1 1
1 1 1
>>
- ones(m) – квадратная матрица, состоящая из единиц;
>> B=ones(3)
B =
1 1 1
1 1 1
1 1 1
>>
- eye(m,n) – прямоугольная матрица с 1 по главной диагонали, остальные элементы = 0.
>> E=eye(2,3)
E =
1 0 0
0 1 0
>>
- eye(m) – квадратная матрица из 1, расположенных по главной диагонали.
E =
1 0 0
0 1 0
0 0 1
>>
- diag(A) – извлечение главной диагонали матрицы A.
>> A=[1 2 3;4 5 6;7 8 9]
A =
1 2 3
4 5 6
7 8 9
>> D=diag(A)
D =
>>
- diag(A,m) – извлечение любой диагонали матрицы A, m – номер извлекаемой диагонали (диагонали отсчитываются вверх и вниз от главной диагонали, у которой по умолчанию номер = 0).
>> D=diag(A,-1)
D =
>> D=diag(A,1)
D =
>>
Операции над векторами делятся на 2 типа:
1. Поэлементное преобразование (возможно только над векторами одинакового размера и типа). Признак поэлементной операции – точка перед знаком операции. В случае сложения или вычитания знак поэлементной операции ставить не нужно. Примеры: c=a.*b или d=k+p.
2. Векторные операции (сложение и вычитание векторов, транспонирование векторов, умножение на число, умножение вектора на вектор, скалярное и векторное произведение векторов). Примеры: b=x-y или z=x'.
Для транспонирования применяется знак апостроф (’).
Умножение вектора на число выполняется с помощью обычного оператора умножения «*», причем умножать вектор на число можно и справа и слева.
Операции над матрицами:
- поэлементные операции (поэлементное умножение и деление матриц одинакового размера, поэлементное возведение в степень). Знаки, обозначающие соответствующие поэлементные операции эквиваленты векторным поэлементным операциям.
- матричные операции (сложение и вычитание матриц одинаковых размеров, умножение матрицы на число, умножение матрицы на матрицу; возведение матрицы в целую степень, транспонирование матрицы, участие в матричной операции обращенной матрицы). Перечисленные операции выполняются в MATLAB с помощью обычных арифметических операторов.
Некоторые функции для работы с векторами и матрицами.
· size(A) – определяется размер массива;
· length(a) – определяется количество элементов вектора;
· sort(a) – сортировка элементов вектора по возрастанию, где а – вектор. Если аргумент - матрица, тогда в результате функция упорядочивает каждый столбец матрицы отдельно;
· max(a) и min(a) – соответственно определение максимального (минимального) элемента вектора. Если аргумент этой функции – матрица, то результат – вектор-строка состоящая из максимальных (минимальных) элементов в соответствующих столбцах матрицы;
· dot(a,b) – скалярное произведение векторов a и b. Другой способ – матричное умножение транспонированного вектора a (строки) на вектор b (столбец). Пример: a’*b;
· eig(A) – возвращает вектор собственных значений матрицы А; [T,J]=eig(A) дает матрицу T, столбцы которой – собственные вектора матрицы A, и диагональную матрицу Jс собственными значениями матрицы A;
· inv(A) возвращает обратную матрицу к матрице A.
Пример. Вывести на печать матрицы А, АТ, В и ВТ, где
; ;
а также векторы
; ;
в виде столбцов и строк, а также составить из них матрицу
Дата добавления: 2016-11-02; просмотров: 1951;