Деление векторов в матлабе

Деление векторов в матлабе

В системе MatLab достаточно просто выполняются математические операции над матрицами и векторами. Рассмотрим сначала простые операции сложения и умножения матриц и векторов. Пусть даны два вектора

a = [1 2 3 4 5]; % вектор-строка
b = [1; 1; 1; 1; 1]; % вектор-столбец

тогда умножение этих двух векторов можно записать так

c = a*b; % c=1+2+3+4+5=16
d = b*a; % d – матрица 5х5 элементов

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

Деление векторов в матлабе

Деление векторов в матлабе

Сложение и вычитание двух векторов записывается так

a1 = [1 2 3 4 5];
a2 = [5 4 3 2 1];
c = a1+a2; % c = [1+5, 2+4, 3+3, 4+2, 5+1];
с = a2-a1; % c = [5-1, 4-2, 3-3, 2-4, 1-5];

Следует обратить внимание, что операции сложения и вычитания можно выполнять между двумя векторами-столбцами или двумя векторами-строками. Иначе MatLab выдаст сообщение об ошибке, т.к. разнотипные векторы складывать нельзя. Так обстоит дело со всеми недопустимыми арифметическими операциями: в случае невозможности их вычисления система MatLab сообщит об ошибке и выполнение программы будет завершено на соответствующей строке.

Аналогичным образом выполняются операции умножения и сложения между матрицами:

A = [1 2 3; 4 5 6; 7 8 9];
B = ones(3);
C = A+B; % сложение двух матриц одинакового размера
D = A+5; % сложение матрицы и числа
E = A*B; % умножение матрицы А на В
F = B*A; % умножение матрицы В на А
G = 5*A; % умножение матрицы на число

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

a = [1 1 1]; % вектор-строка
b = a’; % вектор-столбец, образованный
% транспонированием вектора-строки а.
A = [1 2 3; 4 5 6; 7 8 9]; % матрица 3х3 элемента
B = a*A; % B = [12 15 18] – вектор-строка
C = A*b; % C = [6; 15; 24] – вектор-столбец
D = a*A*a’; % D = 45 – число, сумма эл-ов матрицы А
E = A’; % E – транспонированная матрица А
F = inv(A); % F – обратная матрица А
G = A^-1; % G – обратная матрица А

Из приведенного примера видно, что операция транспонирования матриц и векторов обозначается символом ‘ (апостроф), который ставится после имени вектора или матрицы. Вычисление обратной матрицы можно делать путем вызова функции inv() или возводя матрицу в степень -1. Результат в обоих случаях будет одинаковым, а два способа вычисления сделано для удобства использования при реализации различных алгоритмов.

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

.* — поэлементное умножение;
./ и . — поэлементные деления;
.^ — поэлементное возведение в степень.

Рассмотрим работу данных операторов на следующем примере.

a = [1 2 3]; % вектор-строка
b = [3 2 1]; % вектор-строка
c = a.*b; % c = [3 4 3]
A = ones(3); % матрица 3х3, состоящая из единиц
B = [1 2 3;4 5 6; 7 8 9]; % матрица 3х3
C = A.*B; % матрица 3х3, состоящая из Деление векторов в матлабе
D = A./B; % матрица 3х3, состоящая из Деление векторов в матлабе
E = A.B; % матрица 3х3, состоящая из Деление векторов в матлабе
F = A.^2; % возведение элементов матрицы А в квадрат

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

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

a = [1 6 3 4];
[v, i] = max(a); % v = 6, i = 2;

Приведенный пример показывает два разных способа вызова функции max(). В первом случае определяется и максимальное значение элемента и его индекс в векторе, а во втором – только максимальное значение элемента.

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

A = [4 3 5; 6 7 2; 3 1 8];
[V, I] = max(A); % V=[6 7 8], I = [2 2 3]
V = max(A); % V=[6 7 8]

Полный синтаксис функции max() можно узнать, набрав в командном окне MatLab команду

Аналогичным образом работает функция min(), которая определяет минимальное значение элемента вектора или матрицы и его индекс.

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

a = [3 5 4 2 1];
s = sum(a); % s = 3+5+4+2+1=15
A = [4 3 5; 6 7 2; 3 1 8];
S1 = sum(A); % S1=[13 11 15]
S2 = sum(sum(A)); % S2=39

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

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

b1 = sort(a); % b1=[1 2 3 4 5]
b2 = sort(a, ‘descend’); % b2=[5 4 3 2 1]
b3 = sort(a, ‘ascend’); % b3=[1 2 3 4 5]

A = [4 3 5; 6 7 2; 3 1 8];
B1 = sort(A); % B1=[3 1 2
% 4 3 5
% 6 7 8]
B2 = sort(A, ‘descend’); % B2=[6 7 8
% 4 3 5
% 3 1 2]

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

a = [3 5 4 2 1];
b1 = find(a == 2); % b1 = 4 – индекс элемента 2
b2 = find(a

= 2); % b2 = [1 2 3 5] – индексы без 2
b3 = find(a > 3); % b3 = [2 3]

В приведенном примере символ ‘==’ означает проверку на равенство, а символ ‘

=’ выполняет проверку на неравенство значений элементов вектора а. Более подробно об этих операторах будет описано в разделе условные операторы.

Еще одной полезной функцией работы с векторами и матрицами является функция mean() для вычисления среднего арифметического значения, которая работает следующим образом:

a = [3 5 4 2 1];
m = mean(a); % m = 3
A = [4 3 5; 6 7 2; 3 1 8];
M1 = mean(A); % M1 = [4.333 3.667 5.000]
M2 = mean(mean(A)); % M2 = 4.333

© 2022 Научная библиотека

Копирование информации со страницы разрешается только с указанием ссылки на данный сайт

Видео:MatLab. 3. 2b. Сложение, вычитание и умножение векторовСкачать

MatLab. 3. 2b. Сложение, вычитание и умножение векторов

Деление (правое и левое).В ML имеются две разновидности операции деления матриц: правое (/) и левое ().

Задание векторов и матриц

Способы задания векторов

Как мы уже знаем, вектор – это одномерный массив данных. Вектор в ML – это матрица из одного столбца или одной строки. Вектор может быть вектором-столбцом или вектором-строкой.

Для задания вектора в системе ML можно воспользоваться одним из приведенных ниже способов.

1.Можно задать значения вектора поэлементно, записав:

Значения элементов записываются через пробел или через запятую.

В результате выполнения этой команды создается вектор-строка:

3.0000 5.0000 0.0000 12.0000

Выводится 0, т.к. по умолчанию установлен формат Short. Для вывода с большей точностью необходимо установить другой формат отображения.

Если при задании вектора значения элементов разделить точкой с запятой, то получим вектор-столбец:

В таком случае элементы вектора для большей наглядности лучше разделять запятой.

2.Если элементы вектора являются арифметической прогрессией, то можно задать вектор так:

В результате будет сформирован вектор со значениями:

0 4 8 12 16 20 24

Шаг должен быть всегда больше нуля. Если шаг равен единице, то его можно не указывать:

Чтобы изменить форму вектора (в данном случае из вектора-строки получить вектор-столбец), можно использовать операцию транспонирования. Для этого надо записать Х’ – тогда вектор примет форму столбца.

3.Также для формирования арифметической прогрессии можно использовать функцию linspace:

linspace ( , , )

0 0.7854 1.5708 2.3562 3.1416

Для доступа к элементу вектора необходимо указать его имя и в круглых скобках номер элемента. Например, D(3). Для обращения к последнему элементу вектора, если неизвестна его длина, можно записать: D(length(D)) или D(end).

length – функция, определяющая размер вектора.

Задание матриц

При задании матриц данные строк записываются через пробел или через запятую. Элементы разных строк разделяются знаком точка с запятой (;) или записываются каждая с новой строки.

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

Или

>> A=[1 2 3

4 5 6

7 8 9]

Как мы уже знаем, обращение к элементу матрицы будет иметь следующий вид: ( ), например, А(2,3).

Операции

Как уже говорилось, в ML можно не только выполнять обычные арифметические операции над числами и вычислять значения функций, но и производить операции над векторами и матрицами.

Для матриц Матлаб определяет операции:

Сложение и вычитание матриц

Умножение матрицы на число

Умножение матрицы на матрицу

Над матрицами возможны поэлементные операции и матричные, соответствующими правилам матричного исчисления.

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

Все арифметические операции являются “матричными” и осуществляются по правилам матричной алгебры. (В ML возможно как выполнять операции поэлементной обработки, так и использовать операции, соответствующие правилам матричного исчисления.)

Кроме уже известных +, -, *, / и ^, в ML существуют операции транспонирования (ʹ)иобратного деления ().

Видео:Работа с массивами. Вектор столбцы и вектор строки 1. Урок 7Скачать

Работа с массивами. Вектор столбцы и вектор строки 1. Урок 7

Действия с векторами и матрицами в MATLAB

РАБОТА В РЕЖИМЕ ПРЯМЫХ ВЫЧИСЛЕНИЙ

1) Вычисляемое выражение набирается, редактируется (если нужно) в командной строке, ввод завершается нажатием клавиши ENTER.

Средства для редактирования в командной строке: клавиши ← и → — перевод курсора вдоль строки, Home, End – быстрый переход к началу и концу строки, ↑ и ↓ — клавиши перелистывания строк (с их помощью в командной строке можно восстановить для редактирования и выполнения ранее выполнявшиеся операторы), клавиши Delete и Backspace (← в верхней строке клавиатуры) – для удаления символа над курсором и слева от него. Кроме того, в командном окне имеется сверху панель инструментов, позволяющая делать стандартные операции копирования, удаления, вставки из буфера обмена и др.

2) Для переноса длинного выражения на другую строку используется многоточие (… — три или более точек в конце строки). При нажатии ENTER курсор переместится в начало следующей строки, где можно продолжать набор оператора.

3) Основные системные переменные:

pi – значение числа π

ans – хранит результат последней выполненной операции (в том числе

и если этот результат – массив чисел). К ней можно обращаться

по имени, что бывает удобно при программировании.

inf — символ машинной бесконечности. Положительная величина,

которая больше чем любое представимое в оперативной памяти

компьютера положительное число, что так же бывает удобно

иметь при составлении алгоритмов.

i- мнимая единица – sqrt(-1). MATLAB выполняет действия в алгебре

комплексных чисел вида z = x+ i*y, где x – вещественная часть,

y – мнимая часть числа.

4) Знаки основных арифметических операций:

‘+ ‘- сложение, ‘-‘ – вычитание , ‘*’ – умножение, ‘/’ – деление слева направо, ’’ – деление справа – налево, ‘^’ – возведение в степень.

Знаки операций применимы к векторным и матричным операндам.

Так, результаты операций A/B и BA могут быть различны. Кроме того, одна из этих операций может быть возможна, в то время как другая – нет. Первая: A/B выполняется как A*inv(B), а вторая: BA – как inv(B)*A. Вспомним, что умножение матриц не обладает свойством коммутативности. Знак умножения, примененный к матричным операндам, выполняет операцию умножения матриц по правилам матричной алгебры.

5)Постановка знака ‘;’в конце вычисляемого выражения не обязательна, его присутствие блокирует вывод на экран компьютера результата выполнения выражения, после которого он поставлен. Установка точки с запятой в конце каждого оператора желательна при написании М-программ, особенно – когда промежуточными результатами являются массивы чисел. (Заметим, правда, что иногда полезно умышленно опустить точку с запятой, если вывод вычисленного значения оператора желателен).

Действия с векторами и матрицами в MATLAB

Перейдем теперь в командное окно MATLAB. Выполните в командном окне предлагаемые далее действия с матрицами. При этом данный текст лучше не закрывать, а свернуть его, нажав на кнопку “-“ в правом верхнем углу окна Microsoft Word. (В этом случае вы сможете восстановить этот текст в процессе работы, активизируя его нажатием левой клавиши мыши на нижней панели)

Задание 1: (действия с векторами)

1) Введите вектор ‘a’ из 9 элементов. С экрана элементы вектора вводятся в квадратных скобках, разделяемые пробелом.

a = [1 2 3 4 6 4 3 4 5] % Вводите свой вектор с другими значениями.

Нажмите ENTER, посмотрите на сообщение на экране.

2) Теперь выполните то же но с точкой с запятой:

a = [1 2 3 4 6 4 3 4 5]; % Используйте клавиши перелистывания ↑ и ↓, чтобы не

% повторять набор заново!!

Нажмите ENTER, посмотрите на сообщение на экране.

3) Прибавьте число 2 к элементам вектора а :

b = a + 2 % Сейчас мы умышленно не ставим точку с запятой, чтобы

% посмотреть на результат

4) Транспонируем вектор b:

C=b’ % Знак транслонирования матрицы – апостроф ‘ (соответствует

% клавише буквы Э на нижнем регистре латиницы)

5) Попробуйте выполнить операцию

D= a+C % убедитесь, что она невозможна, поймите почему (?).

6) Постройте график значений элементов вектора b относительно номера компоненты:

MATLAB может строить графики, используя указываемые ему символы.

Постройте тот же график звездочками:

ГЕНЕРАЦИЯ ВЕКТОРОВ (ранжированных переменных, т.е. массивов с постоянным шагом)

X=1:10 % шаг 1 % не ставьте точки с запятой, наблюдайте результаты

Y=0:0.25:1 % шаг 0.25

Z=0:pi/4:2*pi % шаг pi/4

Задание 2: (действия с матрицами)

% Создание матриц производится так же как и создание векторов, при этом

% используется знак (;) , чтобы отделить вводимые строки матрицы.

Введите матрицу размерности (3,3):

A = [1 2 0; 2 5 -1; 4 10 -1] % Введите свои значения. Не ставьте блокировку (;),

% чтобы следить за результатами.

Транспонируйте матрицу ‘A’ :

Возведите квадратную матрицу в 5 степень:

Найдите обратную матрицу:

I =A*inv(A) % ясно, что должна получиться единичная матрица

Вычислите определитель матрицы:

Найдите собственные значения матрицы:

% Функция «poly» генерирует вектор, элементами которого являются

% коэффициенты характеристического многочлена матрицы:

% Функция “round” округляет до ближайшего целого

% Корни многочлена p – характеристические значения исходной матрицы

% Таким образом, мы можем найти собственные значения матрицы оператором

roots(p) % Выполните вычисления этим способом

% В любой момент мы можем получить список значений переменных, хранящихся в памяти

% используя команды «who» или «whos».

Выполните:

% Вы можете получить на экране значение любой переменной, набрав в командной строке имя переменной и нажав вслед за тем ENTER.

ПОЭЛЕМЕНТНОЕ ВЫПОЛНЕНИЕ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ

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

x=[1 2 3 4] и y=[5 6 7 8].

Предположим, что вам хотелось бы перемножить (поделить, возвести в степень) элементы векторов x и y.

Если мы напишем x*y или x/y или x^3, то получим сообщение об ошибке, так как строки нельзя перемножить, разделить друг на друга по правилам матричной алгебры (несоответствие размерностей). Однако для получения желаемого результата в MATLAB есть дубли арифметических операций. Они имеют те же значки, что и основные операции, но с точкой перед знаком операции.

Выполните в командном окне:

x.*y % Результат – вектор, элементы которого равны произведениям соответствующих элементов векторов x и y

x./y % Элементы x будут поделены на соответствующие элементы y

x.^3 % Элементы вектора x будут возведены в 3-ю степень.

MATLAB работает с комплексными числами и бесконечными величинами.

ГЕНЕРАЦИЯ СПЕЦИАЛЬНЫХ МАТРИЦ:

Для создания специальных матриц существуют функции:

zeros – создание матрицы с нулевыми элементами,

ones — создание матрицы с единичными элементами,

rand – создание матрицы со случайными элементами (равномерно на [0,1] распределенными случайными числами),

🎦 Видео

Основы линейной алгебры. 2. Векторы. Часть 1Скачать

Основы линейной алгебры. 2. Векторы. Часть 1

Поэлементные операции с векторами. Работа с массивами. Урок 11Скачать

Поэлементные операции с векторами. Работа с массивами. Урок 11

MATLAB 04 Массивы и матрицыСкачать

MATLAB 04 Массивы и матрицы

Работа с массивами. Вектор столбцы и вектор строки 2. Урок 8Скачать

Работа с массивами. Вектор столбцы и вектор строки 2. Урок 8

Основы МАТЛАБ.РАБОТА С МАССИВАМИ. ВЕКТОРЫ-СТОЛБЦЫ И ВЕКТОРЫ-СТРОКИСкачать

Основы МАТЛАБ.РАБОТА С МАССИВАМИ. ВЕКТОРЫ-СТОЛБЦЫ И ВЕКТОРЫ-СТРОКИ

Умножение векторов. Работа с массивами. Урок 14Скачать

Умножение векторов. Работа с массивами. Урок 14

Математика это не ИсламСкачать

Математика это не Ислам

Операции над векторами matlabСкачать

Операции над векторами matlab

MATLAB 01 Начало работыСкачать

MATLAB 01 Начало работы

Работа с массивами. Обращение к элементам вектора. Урок 9Скачать

Работа с массивами. Обращение к элементам вектора. Урок 9

Matlab создание вектора данныхСкачать

Matlab создание вектора данных

Коллинеарность векторовСкачать

Коллинеарность векторов

Инструменты LDRA для верификации ПО: Создание тестовых векторов в MATLABСкачать

Инструменты LDRA для верификации ПО: Создание тестовых векторов в MATLAB

MatLab. Урок 1. Основы программирования.Скачать

MatLab. Урок 1. Основы программирования.

Символьные переменные и функции. Матрицы и векторы. Урок 142Скачать

Символьные переменные и функции. Матрицы и векторы. Урок 142

Вектор. Сложение и вычитание. 9 класс | МатематикаСкачать

Вектор. Сложение и вычитание. 9 класс | Математика

Основы линейной алгебры. 3. Векторы. Часть 2Скачать

Основы линейной алгебры. 3. Векторы. Часть 2

2-4 MATLAB - Матрицы и индексацияСкачать

2-4 MATLAB - Матрицы и индексация
Поделиться или сохранить к себе: