- •Порядок выполнения.
- •Работа с системой matlab.
- •Работа с окнами системы matlab.
- •Упражнение 1. Работа с окнами системы matlab.
- •Строка главного меню.
- •Вычисления в матлаб.
- •Примеры. Вычислений в матлаб.
- •1. Операция сложение.
- •2. Операции возведения в степень и извлечения корня n-ой степени.
- •Пример. Точка с запятой.
- •Переменные рабочего пространства (Workspace).
- •Пример. Переменные рабочего пространства.
- •Форматы вывода результата вычислений.
- •Упражнение 2. Форматы вывода результата вычислений.
- •Символьные переменные. Работа с алгебраическими выражениями.
- •Пример. Работа с алгебраическими выражениями, с символьными переменными.
- •Пример. Работа с алгебраическими выражениями. Подстановка чисел.
- •Пример. Упрощение алгебраических выражений.
- •Массивы в matlab.
- •Матричное представление данных
- •Примеры. Задание матриц.
- •Упражнение 3.
- •Примеры. N-мерные массивы
- •Различные способы задания массивов.
- •Матрицы
- •Примеры. Задание матрицы в matlab:
- •Векторы
- •Операции над векторами Сложение и вычитание векторов.
- •Упражнение 5.
- •Умножение и деление вектора на число.
- •Операции над матрицами
- •Умножение матриц
- •Свойства операций над матрицами.
- •Упражнение 7.
- •Работа с элементами массивов.
- •Обращение к элементам векторов. Примеры.
- •Упражнение 8.
- •Упражнение 9.
- •Обращение к элементам матрицы. Примеры.
- •Обращение к строкам и столбцам матрицы через двоеточие.
- •Упражнение 10. Обращение к элементам массивов.
- •Задание для самостоятельной работы:
- •Темы для презентаций:
- •Контрольные вопросы:
- •Список рекомендуемой литературы
Умножение матриц
Умножение матриц AиB– есть операция вычисления матрицыC=AB, элементы которой равны сумме произведений элементов в соответствующей строке первого множителя и столбце второго.
Количество столбцов в матрице Aдолжно совпадать с количеством строк в матрицеB. Если матрицаAимеет размерностьm x n, матрицаBимеет размерностьn x p, то размерность их произведения, матрицыC=AB, будетm x p.
Операция матричного умножения «*»двух матриц выполнима только в том случае, если число столбцов в первом сомножителе равно числу строк во втором; в этом случае говорят, что форма матриц согласована.
В частности, умножение всегда выполнимо, если оба сомножителя - квадратные матрицы одного и того же порядка.
Следует заметить, что из существования произведения AB вовсе не следует существование произведения BA.
Упражнение 6. Выполнить в тетради + MATLAB.
Для матриц ,,c=2,D1=ones(2,3),D2=ones(3,2),E1=eye(2,3),E2=eye(3,2),E3=eye(3), (ввести символьно соответствующие элементы:symsa11a12 итд.), осуществить операции:
A' % эрмитово сопряжение
A.' % транспонирование
B' % эрмитово сопряжение
B.' % транспонирование
% умножение на число:
A1 = 2*A, A2=A*3, A3=4.*A, A4=A*.5
% сложение матриц:
C1 = A+B, C2=A+D2, C3=B+D1, C4=A+E2, C5=B+C1
%умножение матриц:
% что меняет умножение квадратной матрицы на единичную E?
F1 = A*B, F2=B*A, F3=B' *A'б F4=E2*B, F5=A*E1, F=F1*F1*F1 F6=F1*E3, F7=E3*F1
% поэлементное умножение матриц:
C = A.*D2
% возведение матрицы А в степень, (то же что и B=A*A, выполнимо только для квадратных матриц)
A^2 % невыполнимо
F1^2 % выполнимо
A.^2 % возведение каждого элемента матрицы А в степень
Свойства операций над матрицами.
1) Сложение и вычитание допускается только для матриц одинакового размера.
2) Существует нулевая матрица Oтакая, что её прибавление к другой матрице A не изменяет последнюю. Все элементы нулевой матрицы равны нулю.
3) Возводить в степень (умножение матрицы на себя) можно только квадратные матрицы.
4) Ассоциативность сложения: A+(B+C)=(A+B)+C.
5) Коммутативность сложения: A+B=B+A.
6) Ассоциативность умножения: A(BC)=(AB)C.
7) Вообще говоря, умножение матриц некоммутативно: AB≠BA.
8) Дистрибутивность умножения относительно сложения:
A(B+C)=AB+AC
(B+C)A=BA+CA.
9) Свойства операции транспонирования матриц:
( A ') '=A
(AB) '=B 'A '
(A+B)'=A'+B'
10) Для квадратных матриц существует единичная матрица (аналог единицы для операции умножения чисел) такая, что умножение любой матрицы на неё не влияет на результат, а именно: EA=AE=A.
Упражнение 7.
1) Проверить на примерах 10 свойств операций над матрицами
2) Ввести матрицы
, ,,,,,.
2) Выполнить операции (или убедиться, что их выполнить нельзя):
, , ,,,,,,,,,,,,,,
Работа с элементами массивов.
Обращение к элементам векторов. Примеры.
1. Доступ к элементам вектор–столбца или вектор–строки осуществляется при помощи индекса, заключаемого в круглые скобки после имени массива, в котором хранится вектор. Если среди переменных рабочей среды есть массив v, определенный вектор–строкой
>> v = [1.3 3.6 7.4 8.2 0.9];
то для вывода, например его четвертого элемента, используется индексация:
>> v(4)
ans = 8.2000
2. Появление элемента массива в левой части оператора присваивания приводит к изменению в массиве
>> v(2)=-55
v =
1.3000 -55.0000 7.4000 8.2000 0.9000
3. Из элементов массива можно формировать новые массивы, например
>> u = [v(3); v(2); v(1)]
u =
7.4000
-55.0000
1.3000
4. Для помещения определенных элементов одного вектора в другой вектор в заданном порядке служит индексация при помощи вектора. Запись в массив w четвертого, второго и пятого элементов v производится следующим образом:
>> w=v([4,2,5])
w =
8.2000 -55.0000 0.9000
>> w=v([3,1,3,1,1])
w =
7.4000 1.3000 7.4000 1.3000 1.3000
>> v=v'
v =
1.3000
-55.0000
7.4000
8.2000
0.9000
>> w=v([3,1,3])
w =
7.4000
1.3000
7.4000
5. MATLAB предоставляет удобный способ обращения к блокам последовательно расположенных элементов вектора.
Для этого служит индексация при помощи знака двоеточия.
Предположим, что в массиве w, соответствующем вектор–строке из семи элементов, требуется заменить нулями элементы со второго по шестой. Индексация при помощи двоеточия позволяет просто и наглядно решить поставленную задачу:
>> w = [0.1 2.9 3.3 5.1 2.6 7.1 9.8];
>> w(2:5) = 0;
>> w
w =
0.1000 0 0 0 0 7.1000 9.8000
Присваивание w(2:5) = 0 эквивалентно последовательности команд w(2) = 0; w(3)=0; w(4)=0; w(5)=0.
Можем изменять элементы через определенный шаг:
>> w(1:2:7) = -1;
>> w
w =
-1.0000 0 -1.0000 0 -1.0000 7.1000 -1.0000
6. Индексация при помощи двоеточия оказывается удобной при выделении части из большого объема данных в новый массив:
>> w = [0.1 2.9 3.3 5.1 2.6 7.1 9.8];
>> w1=w(1:2:7)
w1 =
0.1000 3.3000 2.6000 9.8000