Создание матриц с заданной диагональю
Свойства матриц сильно зависят от их диагональных элементов. Следующая функция MATLAB позволяет создавать специальные типы матриц с заданными диагональными элементами:
· X = diag(v.k) — для вектора v, состоящего из п компонентов, возвращает квадратную матрицу X порядка n+abs(k) с элементами v на k-й диагонали, при k=0 -это главная диагональ (из левого верхнего угла матрицы в правый нижний угол), при k>0 — одна из диагоналей (диагональ в терминологии MATLAB — это линия, параллельная главной диагонали) выше главной диагонали, при k<0 — одна из нижних диагоналей. Остальные элементы матрицы — нули;
· X = diag(v) — помещает вектор v на главную диагональ (то же. что и в предыдущем случае при k=0);
· v = diag(X.k) — для матрицы X возвращает вектор-столбец, состоящий из элементов n-й диагонали матрицы X;
· v = diag(X) — возвращает главную диагональ матрицы X (то же, что и в предыдущем случае при k=0).
Примеры:
» v=[2.3];X-d1ag(v.2)
X=
0 0 2 0
0 0 0 3
0 0 0 0
0 0 0 0
» X=[2,5.45,6;3.5.4.9;7.9.4.8;5.66,45.2];
v=diag(X,0)
v =
Перестановки элементов матриц
Для перестановок элементов матриц служат следующие функции:
· В = fiiplr(A) — зеркально переставляет столбцы матрицы А относительно вертикальной оси.
Пример:
» F=[1.2.3;5.45,3]
F =
1 2 3
5 45 3
» fliplr(F)
ans=
3 2 1
3 45 5
· В = flipud(A) — зеркально переставляет строки матрицы А относительно горизонтальной оси.
Пример:
· perms(v) — возвращает матрицу Р, которая содержит все возможные перестановки элементов вектора v. каждая перестановка в отдельной строке. Матрица Р содержит n! строк и n столбцов.
Пример:
» v=[l 4 6]
v =
1 4 6
P=perms(v)
6 4 1
4 6 1
6 1 4
1 6 4
4 1 6
1 4 6
Вычисление произведений
Несколько простых функций служат для перемножения элементов массивов:
· prod(A) — возвращает произведение элементов массива, если А — вектор, или вектор-строку, содержащую произведения элементов каждого столбца, если А — матрица;
· prod (A, dim) — возвращает матрицу (массив размерности два) с произведением элементов массива А по столбцам (dim=l), по строкам(dim=2), по иным размерностям в зависимости от значения скаляра dim.
Пример:
|
|
|
|
|
|
| » A=[1234;
| 2457;
|
|
|
| A
| -
|
|
|
|
|
| 1 2
|
|
|
|
|
| 2 4
|
|
|
|
|
| 6 8
|
|
|
|
| >;
| > B=prod(A)
|
|
|
|
| В
| =
|
|
|
|
|
| 12 64
|
| i:
|
|
|
|
|
|
|
| - cumprod(A) — возвращает произведение с накоплением. Если А — вектор, cum-prod(A) возвращает вектор, содержащий произведения с накоплением элементов вектора А. Если А — матрица, cumprod(A) возвращает матрицу того же размера, что и А, содержащую произведения с накоплением для каждого столбца матрицы А (Первая строка без изменений, во второй строке произведение первых двух элементов каждого столбца, в третьей строке элементы второй строки матрицы-результата умножаются на элементы третьей строки матрицы входного аргумента по столбцам и т. д.);
- cumprod(A,dim) — возвращает произведение с накоплением элементов по строкам или столбцам матрицы в зависимости от значения скаляра dim.
Примеры:
» А=[1 2 3; 4 5 6; 7 8 9]
А=
1 2 3
4 5 6
7 8 9
» В = cumprod(A)
· cross(U. V) — возвращает векторное произведение векторов U и V в трехмерном пространстве, т. е. W=UxV. U и V — обязательно векторы с тремя элементами;
· cross(U,V,dim) — возвращает векторное произведение U и V по размерности, определенной скаляром dim. U и V — многомерные массивы, которые должны иметь одну и ту же размерность, причем размер векторов в каждой размерности size(U.dim) и size(V.dim) должен быть равен 3.
Пример:
» а = [6 5 3]; b= [1 7 6];с = cross(a.b)
с =
9 -33 37
Суммирование элементов
Определены следующие функции суммирования элементов массивов:
· sum(A) — возвращает сумму элементов массива, если А — вектор, или вектор-строку, содержащую сумму элементов каждого столбца, если А — матрица;
· sum(A.dim) — возвращает сумму элементов массива по столбцам (dim-1), строкам (dim=2) или иным размерностям в зависимости от значения скаляра dim.
Пример:
» A=magic(4)
|
|
| А =
|
|
| 16 2
|
|
| 5 11
|
|
| 9 7
|
|
| 4 14
|
|
| »B=sum(A)
|
|
| В =
|
|
| 34 34 34 34
· cumsum(A) — выполняет суммирование с накоплением. Если А — вектор, cumsum(A) возвращает вектор, содержащий результаты суммирования с накоплением элементов вектора А. Если А — матрица, cumsum(A) возвращает матрицу того же размера, что и А, содержащую суммирование с накоплением для каждого столбца матрицы А;
· cumsum(A.dim) — выполняет суммирование с накоплением элементов по размерности, определенной скаляром dim. Например, cumsum(A.l) выполняет суммирование по столбцам.
Пример:
» A=magic(4)
А =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
» В = cumsum(A)
В =
16 2 3 13
21 13 13 21
30 20 19 33
34 34 34 34
Функции формирования матриц
Для создания матриц, состоящих из других матриц, используются следующие функции:
· repmat (А, m, п) — возвращает матрицу В, состоящую из mxn копий матрицы А (т. е. в матрице mxn каждый элемент заменяется на копию матрицы А);
· repmat(А,п) — формирует матрицу, состоящую из пхп копий матрицы А;
· repmat(A,[m n]) — дает тот же результат, что и repmat(A,m,n);
· repmat(A,[m п р...]) — возвращает многомерный массив (mxnxp...), состоящий из копий многомерного массива или матрицы А;
· repmat (A, m, п) — когда А — скаляр, возвращает матрицу размера mxn со значениями элементов, заданных А, Это делается намного быстрее, чем A*ones(m,n).
· reshape(A,m,n) — возвращает матрицу В размерностью mxn, сформированную из А путем последовательной выборки по столбцам. Если число элементов А не равно mxn, то выдается сообщение об ошибке;
· reshape(A,m,n,p,...) или В = reshape(A.[m n р...]) — возвращает N-мерный массив с элементами из А, но имеющий размер mxnxp.... Произведение mxnxp... должно быть равно значению prod(size(A)).
· reshape(A, slz) — возвращает N-мерный массив с элементами из А, но перестроенный к размеру, заданному с помощью вектора siz.
Пример:
» F=[3.2.7.4:4.3.3.2:2.2.5.5]
F =
3 2 7 4
4 3 3 2
2 2 5 5
» reshape(F.2,6)
ans=
3 2 3 7 5 2
4 2 2 3 4 5
Поворот матриц
Следующая функция обеспечивает поворот матрицы (по расположению элементов): О rot90(A) — осуществляет поворот матрицы А на 90° против часовой стрелки;
· rot90(A,k) — осуществляет поворот матрицы А на величину 90*k градусов, где k — целое число.
Пример:
» М=[3.2,7;3.3.2:1.1.1]
Выделение треугольных частей матриц
При выполнении ряда матричных вычислений возникает необходимость в выделении треугольных частей матриц. Следующие функции обеспечивают такое выделение:
· tril(X) — возвращает матрицу, все элементы которой выше главной диагонали X заменены нулями, неизменными остаются лишь элементы нижней треугольной части, включая элементы главной диагонали;
· tril(X.k) — возвращает неизменной нижнюю треугольную часть матрицы X начиная с k-й диагонали. При k=0 это главная диагональ, при k>0 — одна из верхних диагоналей, при k<0 — одна из нижних диагоналей.
Пример:
» М=[3.1.4:8.3.2;8.1.1]
М =
3 1 4
8 3 2
8 1 1
» tril(M)
ans =
3 0 0
8 3 0
8 1 1
· triu(X) — возвращает неизменной верхнюю треугольную часть матрицы X включая элементы главной диагонали, и заменяет нулями остальные элементы;
· triu(X.k) — возвращает неизменной верхнюю треугольную часть матрицы X начиная с k-й диагонали. При k=0 — это главная диагональ, при k>0 — одна из верхних диагоналей, при k<0 — одна из нижних диагоналей.
Пример:
м =
3 1 4
8 3 2
8 1 1
» triu(M)
ans =
3 1 4
0 3 2
0 0 1
Вычисление магического квадрата
· magic(n) — возвращает матрицу размера nхn, состоящую из целых чисел от 1 до n 2 , в которой суммы элементов по строкам, столбцам и главным диагоналям равны одному и тому же числу. Порядок матрицы должен быть больше или равен 3.
Урок №11.
Матричные операции линейной алгебры
· Вычисление нормы и чисел обусловленности матрицы
· Определитель и ранг матрицы
· Определение нормы вектора
· Определение ортонормированного базиса матрицы
· Приведение матрицы к треугольной форме
· Определение угла между двумя подпространствами
· Вычисление следа матрицы
· Разложение Холецкого
· Обращение матриц
· LU- и QR-разложения
· Вычисление собственных значений и сингулярных чисел
· Приведение матриц к формам Шура и Хессенберга
Линейная алгебра — область, в которой наиболее часто используются векторы и матрицы. Наряду с операциями общего характера, рассмотренными выше, применятся функции, решающие наиболее характерные задачи линейной алгебры. Они и рассмотрены в данном уроке.
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|