36427

Работа с матрицами в Matlab

Лабораторная работа

Информатика, кибернетика и программирование

Например матрицу можно ввести следующим образом: набрать в командной строке разделяя элементы строки матрицы пробелами: =[0. Элементы каждой следующей строки матрицы набираются через пробел а ввод строки завершается нажатием на Enter . Другой способ ввода матрицы основан на том что матрицу можно рассматривать как векторстолбец каждый элемент которого является строкой матрицы.

Русский

2013-09-21

227.5 KB

65 чел.

Лабораторная работа 2

Работа с матрицами в Matlab

Матрицы небольших размеров удобно вводить из командной строки. Существует три способа ввода матриц. Например, матрицу

можно ввести следующим образом: набрать в командной строке (разделяя элементы строки матрицы пробелами): A=[0.7 –2.5 9.1 и нажать <Enter>. Курсор перемещается в следующую строку (символ приглашения командной строки >> отсутствует). Элементы каждой следующей строки матрицы набираются через пробел, а ввод строки завершается нажатием на <Enter>. При вводе последней строки в конце ставится закрывающая квадратная скобка:

>> A=[0.7 -2.5 9.1

8.4 0.3 1.7

-3.5 6.2 4.7]

Если после закрывающей квадратной скобки не ставить точку с запятой для подавления вывода в командное окно, то матрица выведется в виде таблицы.

Другой способ ввода матрицы основан на том, что матрицу можно рассматривать как вектор-столбец, каждый элемент которого является строкой матрицы. Поскольку точка с запятой используется для разделения элементов вектор-столбца, то ввод, к примеру, матрицы

осуществляется оператором присваивания:

>> B=[6.1 0.3; -7.9 4.4; 2.5 -8.1];

Введите матрицу В и отобразите ее содержимое в командном окне, набрав в командной строке B и нажав <Enter>.

Очевидно, что допустима такая трактовка матрицы, при которой она считается вектор-строкой, каждый элемент которой является столбцом матрицы. Следовательно, для ввода матрицы

достаточно воспользоваться командой:

>> C=[[0.4; 0.1] [-7.2; -2.1] [5.3; -9.5]]

Обратите внимание, что внутренние квадратные скобки действительно нужны. Оператор C=[0.4; 0.1 -7.2; -2.1 5.3; -9.5] является недопустимым и приводит к сообщению об ошибке, поскольку оказывается, что в первой строке матрицы содержится только один элемент, во второй и третьей — по два, а в четвертой — снова один.

Воспользуйтесь командой whos для получения информации о переменных A, B и C рабочей среды. В командное окно выводится таблица с информацией о размерах массивов, памяти, необходимой для хранения каждого из массивов, и типе — double array:

>> whos A B C

Name Size Bytes Class

A 3x3 72 double array

B 3x2 48 double array

C 2x3 48 double array

Функция size позволяет установить размеры массивов, она возвращает результат в виде вектора, первый элемент которого равен числу строк, а второй — столбцов:

>> s=size(B)

s =

3 2

Сложение и вычитание матриц одинаковых размеров производится с использованием знаков +, -.

Звездочка * служит для вычисления матричного произведения, причем соответствующие размеры матриц должны совпадать, например:

>> P=A*B

P =

46.7700 -84.5000

53.1200 -9.9300

-58.5800 -11.8400

Допустимо умножение матрицы на число и числа на матрицу, при этом происходит умножение каждого элемента матрицы на число и результатом является матрица тех же размеров, что и исходная.

Апостроф ' предназначен для транспонирования вещественной матрицы или нахождения сопряженной к комплексной матрице. Для возведения квадратной матрицы в степень применяется знак ^.

Вычислите для тренировки матричное выражение , в котором А, В и С — определенные выше матрицы. Ниже приведена запись в MatLab этого выражения:

>> R=(A-B*C)^3+A*B*C

R =

1.0e+006 *

-0.0454 0.1661 -0.6579

0.0812 -0.2770 1.2906

-0.0426 0.1274 -0.7871

MatLab обладает многообразием различных функций и способов для работы с матричными данными.

Для обращение к элементу двумерного массива следует указать его строчный и столбцевой индексы в круглых скобках после имени массива, например:

>> C(1,2)

ans =

-7.2000

Индексация двоеточием позволяет получить часть матрицы — строку, столбец или блок, например:

>> c1=A(2:3,2)

c1 =

0.3000

6.2000

>> r1=A(1,1:3)

r1 =

0.7000 -2.5000 9.1000

Для обращения ко всей строке или всему столбцу не обязательно указывать через двоеточие начальный (первый) и конечный индексы, то есть операторы r1=A(1,1:3) и r1=A(1,:) эквивалентны.

Для доступа к элементам строки или столбца от заданного до последнего можно использовать end, так же как и для векторов: A(1,2:end). Выделение блока, состоящего из нескольких строк и столбцов, требует индексации двоеточием как по первому измерению, так и по второму. Пусть в массиве T хранится матрица:

Для выделения ее элементов (обозначенных курсивом) со второй строки по третью и со второго столбца по четвертый, достаточно использовать оператор:

>> T1=T(2:3,2:4)

T1 =

-5 -6 3

4 5 -1

Индексация двоеточием так же очень полезна при различных перестановках в массивах. В частности, для перестановки первой и последней строк в произвольной матрице, хранящейся в массиве A, подойдет последовательность команд:

>> s=A(1,:);

>> A(1,:)=A(end,:);

>> A(end,:)=s;

MatLab поддерживает такую операцию, как вычеркивание строк или столбцов из матрицы. Достаточно удаляемому блоку присвоить пустой массив, задаваемый квадратными скобками. Например, вычеркивание второй и третьей строки из массива T, введенного выше, производится следующей командой:

>> T(2:3,:)=[]

T =

1 7 -3 2 4 9

-6 -4 7 2 6 1

Индексация двоеточием упрощает заполнение матриц, имеющих определенную структуру. Предположим, что требуется создать матрицу

Первый шаг состоит в определении нулевой матрицы размера пять на пять, затем заполняются первая и последняя строки и первый и последний столбцы:

>> W(1:5,1:5)=0;

>> W(1,:)=1;

>> W(end,:)=1;

>> W(:,1)=1;

>> W(:,end)=1;

Ряд встроенных функций, приведенных в таблице 1, позволяет ввести стандартные матрицы заданных размеров. Обратите внимание, что во всех функциях, кроме diag, допустимо указывать размеры матрицы следующими способами:

числами через запятую (в двух входных аргументах);

одним числом, результат — квадратная матрица;

вектором из двух элементов, равных числу строк и столбцов.

Таблица 1

Функции для создания стандартных матриц

Функция

Результат и примеры вызовов

zeros

Нулевая матрица

F=zeros(4,5) F=zeros(3) F=zeros([3 4])

eye

Единичная прямоугольная матрица (единицы расположены на главной диагонали)

I=eye(5,8) I=eye(5) I=eye([5 8])

ones

Матрица, целиком состоящая из единиц

E=ones(3,5) E=ones(6) E=ones([2 5])

rand

Матрица, элементы которой — случайные числа, равномерно распределенные на интервале (0,1)

R=rand(5,7) R=rand(6) R=rand([3 5])

randn

Матрица, элементы которой — случайные числа, распределенные по нормальному закону с нулевым средним и дисперсией равной единице

N=randn(5,3) N=randn(9) N=randn([2 4])

diag

1) диагональная матрица, элементы которой задаются во входном аргументе — векторе

D=diag(v)

2) диагональная матрица со смещенной на k позиций диагональю (положительные k — смещение вверх, отрицательные — вниз), результатом является квадратная матрица размера length(v)+abs(k)

D=diag(v,k)

3) выделение главной диагонали из матрицы в вектор

d=diag(A)

4) выделение k-ой диагонали из матрицы в вектор

d=diag(A,k)

Данные функии очень удобны, когда требуется создать стандартную матрицу тех же размеров, что и некоторая имеющаяся матрица. Если, к примеру, A была определена ранее, то команда I=eye(size(A)) приводит к появлению единичной матрицы, размеры которой совпадают с размерами A, так как функция size возвращает размеры матрицы в векторе.

Разберем, как получить трехдиагональную матрицу размера семь на семь, приведенную ниже, с использованием функций MatLab.

Введите вектор v с целыми числами от одного до семи v=[1 2 3 4 5 6 7] и используйте его для создания диагональной матрицы и матрицы со смещенной на единицу вверх диагональю. Вектор длины шесть, содержащий пятерки, заполняется, например, так: 5*ones(1,6). Этот вектор укажите в первом аргументе функции diag, а минус единицу — во втором и получите третью вспомогательную матрицу. Теперь достаточно вычесть из первой матрицы вторую и сложить с третьей:

>> T=diag(v)-diag(v(1:6),1)+diag(5*ones(1,6),-1)

Поэлементные вычисления с матрицами производятся практически аналогично, разумеется, необходимо следить за совпадением размеров матриц:

A.*B, A./B— поэлементные умножение и деление;

A.^p — поэлементное возведение в степень, p — число;

A.^B — возведение элементов матрицы A в степени, равные соответствующим элементам матрицы B;

A.' — транспонирование матрицы (для вещественных матриц A' и A.' приводят к одинаковым результатам);

Иногда требуется не просто транспонировать матрицу, но и "развернуть" ее. Вращение матрицы на 90o против часовой стрелки осуществляет функция rot90:

>> Q=[1 2;3 4]

Q =

1 2

3 4

>> R=rot90(Q)

R =

2 4

1 3

Допустимо записывать сумму и разность матрицы и числа, при этом сложение или вычитание применяется, соответственно, ко всем элементам матрицы. Вызов математической функции от матрицы приводит к матрице того же размера, на соответствующих позициях которой стоят значения функции от элементов исходной матрицы.

В MatLab определены и матричные функции, например, sqrtm предназначена для вычисления квадратного корня. Найдите квадратный корень из матрицы

и проверьте полученный результат, возведя его в квадрат (по правилу матричного умножения, а не поэлементно!):

>> K=[3 2; 1 4];

>> S=sqrtm(K)

S =

1.6882 0.5479

0.2740 1.9621

>> S*S

ans =

3.0000 2.0000

1.0000 4.0000

Матричная экспонента вычисляется с использованием expm. Специальная функция funm служит для вычисления произвольной матричной функции.

Все функции обработки данных могут быть применены и к двумерным массивам. Основное отличие от обработки векторных данных состоит в том, что эти функции работают с двумерными массивами по столбцам, например, функция sum суммирует элементы каждого из столбцов и возвращает вектор-строку, длина которой равна числу столбцов исходной матрицы:

>> M=[1 2 3; 4 5 6; 7 8 9]

M =

1 2 3

4 5 6

7 8 9

>> s=sum(M)

s =

12 15 18

Если в качестве второго входного аргумента sum указать 2, то суммирование произойдет по строкам.

Для вычисления суммы всех элементов матрицы требуется дважды применить sum:

>> s=sum(sum(M))

s =

45

Очень удобной возможностью MatLab является конструирование матрицы из матриц меньших размеров. Пусть заданы матрицы:

,   ,   ,   

Требуется составить из М1, М2, М3 и  М4 блочную матрицу М

Можно считать, что М имеет размеры два на два, а каждый элемент является, соответственно, матрицей М1, М2, М3 или М4. Следовательно, для получения в рабочей среде MatLab массива M с матрицей М требуется использовать оператор:

>> M=[M1 M2; M3 M4]

Задания лабораторной работы

В лабораторную работу № 2 входит 4 задания.

Задание 1

Введите матрицы

     

и найдите значения следующих выражений.

Варианты:

Выражение

1

2

3

4

5

6

7

8

9

10

Задание 2

При помощи встроенных функций для заполнения стандартных матриц, индексации двоеточием и, возможно, поворота, транспонирования или вычеркивания получите следующие матрицы:

Варианты:

1.    2.    3.

4.    5.    6.

7.   8.

9.    10.

Задание 3

Сконструировать блочные матрицы (используя функции для заполнения стандартных матриц) и применить функции обработки данных и поэлементные операции для нахождения заданных величин.

Варианты:

1. ,   

2. ,   

3. ,   

4. ,   

5. ,   

6. ,   

7. ,   

8. ,   

9. ,   

10. ,   

Задание 4

Пусть модель поведения объекта с параметрами, заданными в матрице А, описывается функцией f(x). Необходимо рассчитать параметры модели, а именно:

Вычислить значения функции для всех элементов матрицы и записать результат в матрицу того же размера, что и исходная.

Варианты:

1. ;   

2. ;   

3. ;   

4. ;   

5. ;   

6. ;   

7. ;   

8. ;   

9. ;   

10. ;   

PAGE  11


 

А также другие работы, которые могут Вас заинтересовать

32159. Стратегические беседы. Первичный формат сценарного планирования 27 KB
  Стратегические беседы Особую роль в становлении высокой стратегической культуры организации может сыграть система так называемых стратегических бесед strtegic converstions. Один из результативных способов построения системы стратегических бесед это проведение в организации серии беседдиалогов между соответствующими менеджерами и специалистами в процессе освоения и или развития метода сценарного планирования. Сценарный метод был разработан для того чтобы в коммерческой организации сформировать некоторое общее понимание...
32160. Восемь шагов методики сценарного планирования по П. Шварцу 30.5 KB
  Первый критерий это важность каждого фактора для принятия стратегических решений уровня шага 1. Второй критерий степень неопределенности по факторам уровней шага 3 и шага 2 для решения стратегических вопросов уровня шага 1. 5Выявление логики каждого сценария Результатом данного шага должны стать так называемые логические стержни т. суть в том чтобы выйти на относительно небольшое число сценариев которые являются действительно существенно разными по критерию содержания решений принимаемых по стратегическим вопросам уровня шага 1.
32161. Министратегии организации 26.5 KB
  Министратегии организации Министратегия организации состоит из трех элементов: миссии целей и стратегических приоритетов. Миссия это главная цель организации которая может быть сформулирована в относительно общем виде но при этом обязана достаточно четко выражать основную причину существования именно данной организации. Цели должны полностью раскрывать целевой аспект всей деятельности организации. В результате своеобразного синтеза стратегических целей организации и системы приоритетов по ее ресурсам получается система стратегических...
32162. Определение миссии, цели, стр. приоритетов организации 28.5 KB
  приоритетов организации С помощью министратегии выстраивается простейший так называемый управленческий мост от стратегии организации к ее тактической деятельности. Миссия это главная цель организации которая может быть сформулирована в относительно общем виде но при этом обязана достаточно четко выражать основную причину существования именно данной организации. Миссия стратегического управления организации это ее наиболее общая цель. Конкретная формулировка миссии утверждается руководством организации.
32163. Понятие о продуктово-маркетинговой стратегии организации 25 KB
  Понятие о продуктовомаркетинговой стратегии организации Продуктовомаркетинговая стратегия это подсистема стратегии организации которая нацелена на анализ разработку и принятие стратегических решений по номенклатуре ассортименту качеству и объему производства продуктов а также реализации продуктов на соответствующих рынках. Продуктовомаркетинговая стратегия представляет собой ключевую стратегию выживания спокойного существования экономического роста крупного успеха организации. 2 Классификатора: Классификатор по продукту1 ...
32164. Продуктовый профиль. SWOT и SNW анализ по продукту 405 KB
  Важнейшая задача реального менеджмента и она же составляет ключевой элемент продуктовомаркетинговой стратегии программы это оптимизация продуктовой программы организации на текущий год и заданную стратегическую перспективу. Применяя при работе над продуктовым профилем конкретной организации предложенные трафареты рекомендуется использовать максимум конкретных данных а также иной формализованной и неформализованной информации по продукту которая должна готовиться заранее и представляться соответствующими службами организации. При...
32165. Корпоративная стратегия организации – система бизнес-стратегий 27.5 KB
  Корпоративная стратегия организации – система бизнесстратегий В качестве ключевой стратегии в настоящем модуле предложена продуктовомаркетинговая стратегия. к разработке общей стратегии организации как системы стратегий ее относительно обособленных бизнесов и их централизованного обеспечения. Важнейшим направлением развития современной предпринимательской организации является ее становление как системы которая эффективно сочетает в себе два главных элемента: подсистему из небольшого количества относительно обособленных бизнесов и...
32166. Система бизнес-стратегий: типовые модели: BCG. GE/McKinsey 46.5 KB
  Модель BCG. Модель BCG модель называется по имени фирмыразработчика: Boston Consulting Group или матрица доля рынка темп роста представляет особое отображение позиции конкретного бизнеса в стратегическом пространстве которое задается двумя координатными осями. Модель BCG предлагает следующий типовой набор стратегических решений по конкретным бизнесам в зависимости от их попадания в тот или иной квадрант матрицы: 1. Таким образом в конкретной ситуации на заданную стратегическую перспективу рост объема соответствующего рынка может...