Сделай Сам Свою Работу на 5

Создание матриц с заданной диагональю

Свойства матриц сильно зависят от их диагональных элементов. Следующая функция 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) — зеркально переставляет строки матрицы А относительно горизонтальной оси.

Пример:

   
  F =      
   
   
  » flipud(F)  
  ans =      
   
   
         

· 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]

           
  м=        
     
     
     
  » rot90(M)  
  ans =      
     
     
     
           

 

Выделение треугольных частей матриц

При выполнении ряда матричных вычислений возникает необходимость в выделении треугольных частей матриц. Следующие функции обеспечивают такое выделение:

· 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.

   
  Пример: » M=magic(4)  
  м =        
   
   
   
   
           

Урок №11.

Матричные операции линейной алгебры

· Вычисление нормы и чисел обусловленности матрицы

· Определитель и ранг матрицы

· Определение нормы вектора

· Определение ортонормированного базиса матрицы

· Приведение матрицы к треугольной форме

· Определение угла между двумя подпространствами

· Вычисление следа матрицы

· Разложение Холецкого

· Обращение матриц

· LU- и QR-разложения

· Вычисление собственных значений и сингулярных чисел

· Приведение матриц к формам Шура и Хессенберга

Линейная алгебра — область, в которой наиболее часто используются векторы и матрицы. Наряду с операциями общего характера, рассмотренными выше, применятся функции, решающие наиболее характерные задачи линейной алгебры. Они и рассмотрены в данном уроке.

 



©2015- 2017 stydopedia.ru Все материалы защищены законодательством РФ.