Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаб_практикум_ОВИ_03_06_13

.pdf
Скачиваний:
63
Добавлен:
14.04.2015
Размер:
4.1 Mб
Скачать

3.Сформируйте вектор-строку 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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]