
Лаб_практикум_ОВИ_03_06_13
.pdf3.Сформируйте вектор-строку v, содержащую все значения аргумента x и последние пять значений функции y(x).
4.Получите вектор-строку v1, добавив к каждому элементу вектор-
строки v число 2.1.
5. Вычислите: w = v + v1; w1 = v v1; w2 = v1 v; w3 = v ./ v1;
w4 = v1.*v; w5 = v1.^v.
6.Упорядочите результаты сложения векторов v + v1 в порядке возрастания модулей элементов вектора суммы, возрастания элементов вектора суммы, убывания элементов вектора суммы.
7.Сформируйте из третьих и пятых элементов вектор-строк w, w1,
w2, w3, w4, w5 вектор-столбец ww.
8. Определите в векторе ww минимальный и максимальный элемент,
сумму и произведение компонент вектора.
9. Присвойте элементам массива ww с третьего по шестой значения,
равные единице.
10.Используйте команды who и whos для получения информации о всех использованных в лабораторной работе переменных.
11.Приведите из журнала выполнения лабораторной работы несколько первых и последних строк.
12.Оформите отчет по лабораторной работе.
41
Лабораторная работа 3
ПРОСТЕЙШИЕ ВЫЧИСЛЕНИЯ В ПАКЕТЕ MATLAB
С ИСПОЛЬЗОВАНИЕМ МАТРИЦ
Цель лабораторной работы: получение и закрепление знаний,
формирование практических навыков работы с пакетом MATLAB при простейших вычислениях с использованием переменных, векторов и матриц.
3.1.Краткие сведения из теории
3.1.1.Различные способы ввода матриц в пакете MATLAB
Вводить небольшие по размеру матрицы удобно прямо из командной строки. Введите матрицу размерностью два на три
3 |
1 |
1 |
||
A |
2 |
4 |
3 |
. |
|
|
Для хранения матрицы используйте двухмерный массив с именем A.
При вводе учтите, что матрицу А можно рассматривать как вектор-столбец из двух элементов, каждый из которых является вектор-строкой длиной три, следовательно, строки при наборе отделяются точкой с запятой:
»А =[3 1 -1; 2 4 3]
А=
3 |
1 |
-1 |
|
2 |
|
4 |
3 |
42
Для изучения простейших операций над матрицами приведем еще несколько примеров. Рассмотрим другие способы ввода. Введите квадратную матрицу размера три так, как описано ниже:
4 |
3 |
1 |
||
|
|
|
|
|
B |
2 |
7 |
0 |
. |
|
5 |
1 |
2 |
|
|
|
Начните набирать в командной строке
» В = [4 3 -1
Нажмите клавишу <Enter>. Обратите внимание, что пакет ничего не вычислил. Курсор мигает на следующей строке без символа ».
Продолжите ввод матрицы построчно, нажимая в конце каждой строки
<Enter>. Последнюю строку завершите закрывающей квадратной скобкой,
получается:
2 7 0 -5 1 2]
B = 4 3 -1 2 7 0 -5 1 2
Еще один способ ввода матриц состоит в том, что матрицу можно трактовать как вектор-строку, каждый элемент которой является вектор-
столбцом. Например, матрицу два на три
3 |
1 |
7 |
||
C |
4 |
2 |
0 |
|
|
|
43
можно ввести при помощи команды:
» С = [[3; 4] [-1; 2] [7; 0]]
С =
3 -1 7
4 2 0
Посмотрите переменные рабочей среды, набрав в командной строке
whos:
А2x3 48 double array
В3x3 72 double array
С2x3 48 double array
Итак, в рабочей среде содержится три матрицы, две прямоугольные и одна квадратная.
3.1.2. Обращение к элементам матриц в пакете MATLAB
Доступ к элементам матриц осуществляется при помощи двух индексов номеров строки и столбца, заключенных в круглые скобки,
например
» С(2, 3)
ans =
0
Элементы матриц могут входить в состав выражений:
» С(1, 1) + С(2, 2) + С(2, 3)
ans = 5
44
Расположение элементов матрицы в памяти компьютера определяет еще один способ обращения к ним. Матрица А размера m на n хранится в виде вектора длины mn, в котором элементы матрицы расположены один за другим по столбцам
[А(1,1) А(2,1)...А(m,1)...А(1,n) А(2,n)...А(m,n)].
Для доступа к элементам матрицы можно использовать один индекс,
задающий порядковый номер элемента матрицы в векторе.
Матрица С, определенная в предыдущем подразделе, содержится в векторе
[C(1,1) C(2,1) C(1,2) С(2,2) С(1,3) С(2,3)],
который имеет шесть компонент. Доступ к элементам матрицы осуществляется следующим образом:
» С(1)
ans =
3
» С(5)
ans =
7
3.1.3. Операции над матрицами в пакете MATLAB: сложение,
вычитание, умножение, транспонирование и возведение в степень
При использовании матричных операций следует помнить, что для сложения или вычитания матрицы должны быть одного размера, а при перемножении число столбцов первой матрицы обязано равняться числу строк второй матрицы. Сложение и вычитание матриц, так же как чисел и
45
векторов, осуществляется при помощи знаков плюс и минус. Найдите сумму и разность матриц С и А, определенных выше:
» S = А+С |
|
|
S = |
|
|
6 |
0 |
6 |
6 |
6 |
3 |
» R = С-А |
|
|
R = |
|
|
0 |
-2 |
8 |
2 |
-2 |
-3 |
Следите за совпадением размерности, иначе получите сообщение об ошибке:
» S = А+В
??? Error using ==>
Matrix dimensions must agree.
Для умножения матриц предназначена звездочка:
» Р = С*В
P =
-25 9 11 20 26 -4
Умножение матрицы на число тоже осуществляется при помощи звездочки, причем умножать на число можно как справа, так и слева:
46
» Р = А*3
Р =
9 3 -3
6 12 -3
» Р = 3*А
Р =
9 3 -3
6 12 9
Транспонирование матрицы, так же как и вектора, производится при помощи .', а символ ' означает комплексное сопряжение. Для вещественных матриц эти операции приводят к одинаковым результатам:
» В' ans =
4 2 |
-5 |
3 7 |
1 |
-1 0 2
» В.' ans =
4 2 |
-5 |
3 7 |
1 |
-1 0 2 |
|
|
|
|
|
|
|
|
|
|
|
|
Замечание 1 |
|
|
|
|
|
|
||||||
Если матрица A aik , i |
|
, k |
|
|
|
|
есть |
произвольная |
матрица |
|||
1, n |
1, m |
|
||||||||||
размера n m, то матрица, транспонированная по отношению к |
А, есть |
|||||||||||
|
|
|
|
|
|
|
|
|
||||
|
|
1, n . |
Таким образом, строки |
|||||||||
матрица размера m n: A aki , k 1, m, i |
||||||||||||
матрицы A становятся столбцами матрицы |
|
|
а столбцы матрицы A |
|||||||||
|
A , |
становятся строками матрицы A .
47
Комплексно-сопряженная матрица получается из исходной в два этапа: выполняется транспонирование исходной матрицы, а затем все комплексные числа заменяются на комплексно-сопряженные.
Сопряжение и транспонирование матриц, содержащих комплексные числа, приведут к созданию разных матриц:
» К = [l-i, 2+3i; 3-5i, l-9i] |
|
||
К = 1.0000 – 1.0000i |
2.0000 + 3.0000i |
||
3.0000 |
– 5.0000i |
1.0000 |
– 9.0000i |
» К ' |
|
|
|
ans = |
|
|
|
1.0000 |
+ 1.0000i |
3.0000 |
+ 5.0000i |
2.0000 |
– 3.0000i |
1.0000 |
+ 9.0000i |
» К.' |
|
|
|
ans = |
|
|
|
1.0000 |
- 1.0000i 3.0000 - 5.0000i |
||
2.0000 |
+ 3.0000i |
1.0000 |
- 9.0000i |
Замечание 2
При вводе вектор-строк их элементы можно разделять или пробелами, или запятыми. При вводе матрицы К применены запятые для более наглядного разделения комплексных чисел в строке.
Возведение квадратной матрицы в целую степень производится с использованием оператора ^:
» В2 = В^2
B2 =
27 32 -6
22 55 -2 -28 -6 9
48
Проверьте полученный результат, умножив матрицу саму на себя.
Убедитесь, что вы освоили простейшие операции с матрицами в
MATLAB. Найдите значение следующего выражения
(A + С) В3 (A С)Т.
Учтите приоритет операций: сначала выполняется транспонирование, потом возведение в степень, затем умножение, а
сложение и вычитание производятся в последнюю очередь
» (А+С)*В^3*(А-С)' ans =
1848 1914
10290 3612
3.1.4. Умножение матриц и векторов
Вектор-столбец или вектор-строка в MATLAB являются матрицами,
у которых один из размеров равен единице, поэтому все вышеописанные операции применимы и для умножения матрицы на вектор-столбец или вектор-строки на матрицу. Например, вычисление выражения
|
2 |
0 |
1 |
8 |
||
[1 3 2] |
|
4 |
8 |
1 |
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
9 |
2 |
|
4 |
|
|
|
|
|
|
|
можно осуществить следующим образом:
»a = [1 3 -2];
»B = [2 0 1; -4 8 -1; 0 9 2];
»c = [-8; 3; 4];
49
» a*B*c
ans =
74
3.1.5. Решение систем линейных уравнений
В математике ничего не говорится про деление матриц и векторов,
однако в MATLAB символ \ используется для решения систем линейных уравнений. Решим систему из трех уравнений с тремя неизвестными:
1,2x1 0,3x2 0,2x3 1,3;0,5x1 2,1x2 1,3x3 3,9;0,9x1 0,7x2 5,6x3 5,4.
Введем матрицу коэффициентов системы в массив A, а вектор правой части системы в массив b. Решим систему при помощи символа \:
» x = A\b
x =
1.0000
1.0000
1.0000
Проверьте правильность ответа, умножив матрицу коэффициентов системы A на вектор-столбец x.
3.1.6. Блочные матрицы
Очень часто в приложениях возникают так называемые блочные матрицы, т.е. матрицы, составленные из непересекающихся подматриц
(блоков). Рассмотрим вначале конструирование блочных матриц. Введите матрицы
50