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 % Сейчас мы умышленно не ставим точку с запятой, чтобы
% посмотреть на результат
Транспонируем вектор b:
C=b’ % Знак транслонирования матрицы – апостроф ‘ (соответствует
% клавише буквы Э на нижнем регистре латиницы)
Попробуйте выполнить операцию
D= a+C % убедитесь, что она невозможна, поймите почему (?).
Выполните
D=a’+C
Выполните слияние:
E=[a;b]
E=[E;b]
Выполните операторы:
X=1:10 % шаг 1 не ставьте точки с запятой, наблюдайте результаты
Y=0:0.25:1 % шаг 0.25
Z=0:pi/4:2*pi % шаг pi/4
X1=0:0.1*pi:4*pi
Y1=sin(X1)
Система MATLAB позволяет выполнять практически любые операции с матрицами
либо с помощью арифметических операций либо с помощью многочисленных специаль-
ных функций системы
' - транспонирование,
inv - построение обратной матрицы,
det - вычисление определителя,
eig - вычисление собственных значений
и т.д.
О б я з а т е л ь н ы м требованием при выполнении операций над матрицами
является соответствие размерностей матричных операндов правилам линейной алгеб-
ры. Поэлементное умножение, деление и возведение в степень производится с по-
мощью операций .* , ./ и .^ , соответственно.
ПОЭЛЕМЕНТНОЕ ВЫПОЛНЕНИЕ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ
Арифметические операции умножения, деления и возведения в степень имеют своих двойников с поэлементным выполнением. Поясним: пусть
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-ю степень.
2.2. Примеры выполнения матричных операций
П р и м е р 1 . Вычисление произведения двух матриц:
1 2
A = 3 4 ; B = 7 8 1
5 0 9 0 2
Рассмотрим последовательность необходимых для этого действий.
Операторы ввода матриц:
>> A=[ 1 2;3 4;5 0];
>> B=[ 7 8 1;9 0 2];
Теперь можно выполнить умножение введенных матриц:
>> C=A*B
После ввода последней команды на экране появится результат:
C =
25 8 5
57 24 11
35 40 5
П р и м е р 2 . Транспонирование матрицы .
>> D=C'
В результате на экране появится ответ
D =
25 57 35
8 24 40
5 11 5
П р и м е р 3 . Вычисление определителя матрицы с помощью функции det .
>> d=det(C)
Ответ, получаемый в результате такого обращения к функции det:
d =
0
П р и м е р 4 . Обращение матрицы с помощью функции inv .
>> A=[1 2 3;4 0 6;7 1 9];
>> D=inv(A)
D =
-0.3333 -0.8333 0.6667
0.3333 -0.6667 0.3333
0.2222 0.7222 -0.4444
Убедимся, что построенная таким образом матрица D является обратной к A,
т.е. произведение A*D представляет собой единичную матрицу:
>> A*D
ans =
1.0000 -0.0000 0.0000
-0.0000 1.0000 -0.0000
-0.0000 0.0000 1.0000
ГЕНЕРАЦИЯ СПЕЦИАЛЬНЫХ МАТРИЦ:
Для создания специальных матриц существуют функции:
zeros – создание матрицы с нулевыми элементами,
ones - создание матрицы с единичными элементами,
rand – создание матрицы со случайными элементами (равномерно на [0,1] распределенными случайными числами),
eye – создание единичной матрицы
Выполните операции:
A = zeros(3,2)
AA = zeros(5)
B = ones(1,10)
BB = ones(3)
C=rand(2,5)
CC=rand(7)
E=eye(5)
П р и м е р 5 . Решение системы линейных алгебраических уравнений
вида A*X=B, где A - матрица коэффициентов, B - вектор
(столбец) правых частей, X - вектор решения системы.
>> A=[5 1 2;2 3 1;7 2 -1];
>> B=[5;5;0];
>> X=A\B
ans =
0
1
2
Использованная в примере операция равносильна умножению обратной к A матрицы
на вектор B:
>> inv(A)*B
ans =
0
1
2
П р и м е р 6 . Операции "вырезки" из матрицы.
Зададим матрицу A
>> A=[1 3 2 6 5;2 6 7 4 1];
Выделение определенной последовательности элементов матрицы производится
следующим образом:
>> A(2,3) %выделение одного элемента
ans =
7
>> A(2,:) %выделение строки
ans =
2 6 7 4 1
>> A(:,4) %выделение столбца
ans =
6
4
>> A(1:2,2:4) %выделение прямоугольного фрагмента
ans =
3 2 6
6 7 4
П р и м е р 7 . Операции сравнения.
Существуют операторы отношения < , <= , > , >= .
Операторы отношения производят п о э л е м е н т н о е сравнение двух
матриц и возвращают матрицу той же размерности с элементами 1, где отно-
шение истинно и 0, где отношение ложно:
< - меньше чем ( <= означает "меньше или равно");
> - больше чем ( >= означает "больше или равно").
Выполним некоторые из этих операций для матриц A и D из примера 4:
>> A>D =
1 1 1
1 1 1
1 1 1
>> A<=D =
0 0 0
0 0 0
0 0 0
П р и м е р 8 . Логические операции осуществляются с помощью операторов:
== - логический оператор эквивалентности;
& - логическое "И". A&B - это матрица, элементы которой равны 1, если
соответствующие элементы и A и B ненулевые, иначе равны 0;
| - логическое "ИЛИ". A|B - это матрица, элементы которой равны 1,
если соответствующие элементы или A или B ненулевые, иначе равны 0;
~= - логическое дополнение "НЕ"( ~= означает не "равно").
Например, для тех же матриц A и D
>> A&D =
1 1 1
1 0 1
1 1 1
>> A==D =
0 0 0
0 0 0
0 0 0
З а д а н и е:
1. Составить систему линейных алгебраических уравнений (СЛАУ) , заведомо
имеющую единственное решение, записать ее в виде матричного уравнения
A * X = B (*)
Элементы для матриц A и B определяются из условия:
а) для четных номеров (из журнала группы) – произвольные целые числа
aij
[-20;
-10] , bj
[15;
20] ;
б) для нечетных номеров (из журнала группы) – произвольные целые числа aij [10; 20] , bj [-15; -7].
2. Найти решение СЛАУ средствами системы MATLAB и проверить, что найден-
ное решение удовлетворяет уравнению (*).
3. Средствами системы MATLAB построить матрицу, обратную матрице А, и убе-
диться в том, что полученная матрица обладает требуемым свойством.
Получить решение СЛАУ (*) методом обратной матрицы, т.е. путем вычис-
ления произведения матрицы, обратной A,и вектора B.
4. Выполнить четыре из перечисленных в примерах 7,8 операций сравнения
а) матрицы A и обратной ей матрицы;
б) матрицы A и единичной матрицы той же размерности.