ОВИ_ЛР_2012
.pdf» sqrt(-d) ans =
0 + 0.9244i
0 + 0.7078i
0 + 0.7558i
Оператор присваивания не использовался, поэтому пакет MATLAB
записал ответ в стандартную переменную ans.
Для определения длины вектор-столбцов или вектор-строк служит встроенная функция length:
» length(s1)
ans =
4
Из нескольких вектор-столбцов можно составить один, используя квадратные скобки и разделяя исходные вектор-столбцы точкой с запятой:
»v1 = [1; 2];
»v2 = [3; 4; 5];
»v = [v1; v2]
v =
1
2
3
4
5
Для сцепления вектор-строк также применяются квадратные скобки,
но сцепляемые вектор-строки отделяются пробелами или запятыми:
41
»v1 = [1 2];
»v2 = [3 4 5];
»v = [v1 v2]
v =
1 2 3 4 5
2.2.4.2. Работа с элементами векторов
Доступ к элементам вектор-столбца или вектор-строки осуществляется при помощи индекса, заключаемого в круглые скобки после имени массива, в котором хранится вектор. Если среди переменных рабочей среды есть массив v, определенный вектор-строкой
» v = [1.3 3.6 7.4 8.2 0.9];
то для вывода, например его четвертого элемента, используется
индексация:
» v(4)
ans =
8.2000
Появление элемента массива в левой части оператора присваивания приводит к изменению в массиве
» v(2) = 555
v =
1.3000 555.0000 7.4000 8.2000 0.9000
Из элементов массива можно формировать новые массивы, например
42
» u = [v(3); v(2); v(1)]
u =
7.4000
555.0000
1.3000
Для помещения определенных элементов вектора в другой вектор в заданном порядке служит индексация при помощи вектора. Запись в массив w четвертого, второго и пятого элементов v производится следующим образом:
»ind = [4 2 5];
»w = v(ind)
w =
8.2000 555.0000 0.9000
MATLAB предоставляет удобный способ обращения к блокам последовательно расположенных элементов вектор-столбца или вектор-
строки. Для этого служит индексация при помощи знака двоеточия.
Предположим, что в массиве w, соответствующем вектор-строке из семи элементов, требуется заменить нулями элементы со второго по шестой.
Индексация при помощи двоеточия позволяет просто и наглядно решить поставленную задачу:
»w = [0.1 2.9 3.3 5.1 2.6 7.1 9.8];
»w(2:6) = 0;
»w
w =
0.1000 0 0 0 0 0 9.8000
43
Присваивание w(2:6) = 0 эквивалентно последовательности команд w(2) = 0; w(3) = 0; w(4) = 0; w(5) = 0; w(6) = 0.
Индексация при помощи двоеточия оказывается удобной при выделении части из большого объема данных в новый массив:
»w - [0.1 2.9 3.3 5.1 2.6 7.1 9.8];
»wl = w(3:5)
wl =
3.3000 5.1000 2.6000
Составьте массив w2, содержащий элементы w кроме четвертого. В
этом случае удобно использовать двоеточие и сцепление строк:
» w2 = [w(l:3) w(5:7)]
w2 =
0.1000 2.9000 3.3000 2.6000 7.1000 9.8000
Элементы массива могут входить в выражения. Нахождение,
например среднего геометрического из элементов массива u, можно выполнить следующим образом:
» gm = (u(l)*u(2)*u(3))^(l/3)
gm =
17.4779
Конечно, этот способ не очень удобен для длинных массивов. Для того чтобы найти среднее геометрическое, необходимо набрать в формуле все элементы массива. В MATLAB существует достаточно много специальных функций, облегчающих подобные вычисления.
44
2.2.4.3. Применение функций обработки данных к векторам
Перемножение элементов вектора-столбца или вектора-строки осуществляется при помощи функции prod:
»z = [3; 2; 1; 4; 6; 5];
»р = prod(z)
p =
720
Функция sum предназначена для суммирования элементов вектора. С
ее помощью нетрудно вычислить среднее арифметическое элементов вектора z:
» sum(z)/length(z)
ans =
3.5000
В MATLAB имеется и специальная функция mean для вычисления среднего арифметического:
» mean(z)
ans =
3.5000
Для определения минимального и максимального из элементов вектора служат встроенные функции min и max:
» m1 = max(z)
m1 =
6
45
» m2 = min(z)
m2 =
1
Часто необходимо знать не только значение минимального или максимального элемента в массиве, но и его индекс (порядковый номер). В
этом случае встроенные функции min и max необходимо использовать с двумя выходными аргументами, например
» [m, k] = min(z) m =
1
k =
3
В результате переменной m будет присвоено значение минимального элемента массива z, а номер минимального элемента занесен в переменную k.
Для получения информации о различных способах использования функций следует набрать в командной строке help и имя функции.
MATLAB выведет в командное окно всевозможные способы обращения к функции с дополнительными пояснениями.
В число основных функций для работы с векторами входит функция упорядочения вектора по возрастанию его элементов sort.
»r = [9.4 -2.3 -5.2 7.1 0.8 1.3];
»R = sort(r)
R =
-5.2000 -2.3000 0.8000 1.3000 7.1000 9.4000
46
Можно упорядочить вектор по убыванию, используя эту же
функцию sort:
» R1 = -sort(-r)
R1 =
9.4000 7.1000 1.3000 0.8000 -2.3000 -5.2000
Упорядочение элементов в порядке возрастания их модулей
производится с привлечением функции abs:
» R2 = sort(abs(r))
R2 =
0.8000 1.3000 2.3000 5.2000 7.1000 9.4000
Вызов sort с двумя выходными аргументами приводит к образованию
массива индексов соответствия элементов упорядоченного и исходного
массивов:
» [rs, ind] = sort(r) rs =
-5.2000 |
-2.3000 0.8000 1.3000 7.1000 9.4000 |
||||
ind = |
|
|
|
|
|
3 |
2 |
5 |
6 |
4 |
1 |
2.3.Индивидуальные задания
1.Создайте журнал выполнения лабораторной работы.
2.Вычислите значения функции
47
y(x) |
|
sin2 x |
e x ln x |
|
cos x |
||
1 |
|
||
в точках 0.2, 0.3, 0.5, 0.8, 1.3, 1.7, 2.5, N, k, где N ваш номер по списку журнала группы; k численное значение выражения, заданного табл. 1.1 и
табл. 1.2 в соответствии с номером N по списку в журнале группы,
записанном в виде N = СМ, где С старшая цифра, М младшая цифра.
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.Оформите отчет по лабораторной работе.
48
ЛАБОРАТОРНАЯ РАБОТА 3
ПРОСТЕЙШИЕ ВЫЧИСЛЕНИЯ В ПАКЕТЕ MATLAB
С ИСПОЛЬЗОВАНИЕМ МАТРИЦ
3.1. Цель лабораторной работы
Получение и закрепление знаний, формирование практических навыков работы с пакетом MATLAB при простейших вычислениях с использованием переменных, векторов и матриц.
3.2.Краткие сведения из теории
3.2.1.Различные способы ввода матриц в пакете MATLAB
Вводить небольшие по размеру матрицы удобно прямо из командной строки. Введите матрицу размерностью два на три
3 |
1 |
1 |
||
A |
2 |
4 |
3 |
. |
|
|
|||
Для хранения матрицы используйте двумерный массив с именем A.
При вводе учтите, что матрицу А можно рассматривать как вектор-столбец из двух элементов, каждый из которых является вектор-строкой длиной три, следовательно, строки при наборе отделяются точкой с запятой:
»А =[3 1 -1; 2 4 3]
А=
3 |
1 -1 |
|
2 |
4 |
3 |
49
Для изучения простейших операций над матрицами приведем еще несколько примеров. Рассмотрим другие способы ввода. Введите квадратную матрицу размера три так, как описано ниже:
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 |
|
|
|
|||
50
