АСОИУ | 1-е занятие по MATLAB |
ЛАБОРАТОРНАЯ РАБОТА №1
ПЛАН
I. Основные вычислительные процедуры системы MATLAB
1. Операции сложения, вычитания с присвоением и без присвоения результата (+, -).
2. Операции умножения, деления (*, /).
3. Возведение в степень (^).
4. Извлечение из квадратного корня (sqrt): sqrt(16+9)
5. Повторение действий, повторение с измененными параметрами и функциями.
6. Невыполняемый комментарий — %
7. Задание ряда чисел с заданным шагом и по умолчанию: t=(0:0.5:7)' % В виде столбца
8. Задание матриц (например: a = [1 2 3;4 5 6]):
— прямоугольных;
— квадратных;
— вектор-строки;
— вектор-столбца.
9. Матричные операции:
— сложение, вычитание (+, -);
— умножение (*);
— обращение (inv);
— деление (/);
— возведение в степень (^);
— транспонирование (').
— cоздание нижней треугольной матрицы А: tril(А).
— cоздание верхней треугольной матрицы А: triu(А).
¾ вращение матрицы А относительно вертикальной оси: fliplr(A).
¾ вращение матрицы А относительно горизонтальной оси: flipud(A).
¾ поворот матрицы А на 900 против часовой стрелки: rot90(A).
¾ поворот матрицы А на 900 по часовой стрелке: rot90(A,-1).
¾ поворот матрицы А на кратное 900 значение: rot90(A,k), где k = ±1, ±2, . . . — множитель, на который умножается угол 900.
¾ п. п. вращения и поворота выполнить для квадратных и прямоугольных матриц.
¾ формирование единичной матрицы заданного размера n: eye(n).
¾ формирование единичной матрицы по размеру данной квадратной матрицы А: eye(size(A)).
¾ матрица единиц данного размера n´m: ones(n,m). Для создания квадратной матрицы: ones(n).
¾ матрица единиц по размеру заданной матрицы А: ones(size(A)).
¾ матрица нулей данного размера n´m: zeros(n,m). Для создания квадратной матрицы: zeros(n).
¾ матрица нулей по размеру заданной матрицы А: zeros(size(A)).
¾ матрица Паскаля данного размера n: pascal(n). Матрица Паскаля является положительно-определенной.
¾ извлечение диагонали заданной матрицы А: diag(A).
¾ вычисление следа матрицы А: trace(A).
¾ вычисление следа матрицы А через функции sum и diag: sum(diag(A)).
¾ магический квадрат размера n (n>2): magic(n).
¾ проанализировать магический квадрат с помощью функций MATLAB: просуммировать элементы каких-либо строк или столбцов, найти след магического квадрата.
¾ создание диагональной матрицы по заданной матрице А: diag(diag(A)).
¾ создание диагональной матрицы по заданному вектору-столбцу Р: diag(P).
¾ создание диагональной матрицы по заданному вектору-строке N: diag(N).
¾ создание диагональной матрицы по заданному вектору или матрице, набираемым в поле аргумента функции diag.
¾ собственные числа действительной или комплексной матрицы А: eig(A).
¾ выделение строк или столбцов матрицы: A = [1 2 3;4 5 6]; A(:,2:3) — 2-й и 3-й столбцы
¾ Задание матриц по случайному равномерному закону — rand (например, rand(3,4))
¾ Задание матриц по случайному нормальному закону — randn (например, randn(2,5))
¾ Получение помощи для заданной встроенной функции: help-пробел-функция.
¾ Операции с массивами (перед знаком арифметического действия ставится точка):
(например: [1 2 3;4 5 6].^2) — возведение каждого элемента матрицы в квадрат.
Выполнить матричные операции п.9 в виде операций с массивами.
8. Формирование коэффициентов характеристического полинома заданной числовой матрицы А: poly(A).
9. Формирование характеристического полинома заданной числовой матрицы А: poly(sym(A)). По умолчанию независимой переменной полинома является х.
10. Формирование характеристического полинома заданной числовой матрицы А с назначаемой независимой переменной полинома (например s): poly(sym(A),sym('s')).
11. Сравнить результаты выполнения п. п. 1.26, 1.27, 1.28.
12. Формирование коэффициентов характеристического полинома матрицы А по ее заданным собственным числам: poly(eig(A)).
13. Формирование характеристического полинома по заданным корням, являющимися элементами вектора Р : poly(P).
14. Формирование полинома с коэффициентами, являющимися элементами заданного вектора Р: poly2sym(P). Степень полинома на единицу меньше размерности заданного вектора Р.
II. Информативные сведения о матрицах, векторах, числах.
1. Размерность матрицы А: size(A).
2. Длина вектора Р: length(P).
3. Применить функцию size к вектору Р, примениить функцию length к матрице А (к прямоугольной и квадратной).
4. Уплотненный вывод на экран массивов и чисел: disp(A), disp(P), disp(a), где а — какое-либо число (действительное или комплексное, например, а=2+3i).
5. Определение простого числа: если а - простое число, то функция isprime(a) возвращает 1 (единицу), в противном случае будет 0 (ноль). Величина задаваемого числа а имеет определенные ограничения (порядка десятков миллионов).
6. Определение простых чисел из диапазона а: primes(a). Величина числа а также ограничена. Функция primes(a) возвращает вектор, элементы которого являются простые числа из диапазона а.
7. Определение знак заданного числа а: sign(a). Аргументом функции sign могут быть числа, выражения, математические функции.
8. Округление числа а до ближайшего целого: round(a).
9. Абсолютное значение заданного числа или выражения — abs: abs((3-5)/2), abs(-2^3)
III. Специальные функции.
1. Разложение числа N на простые множители: factor(N).
2. Суммирование элементов вектора Р: sum(P). Результат — число.
3. Суммирование элементов столбцов матрицы А: sum(A). Результат — строка, состоящая из суммы элементов каждого столбца матрицы А.
4. Формирование произведения элементов вектора Р: prod(P).
5. Формирование произведения элементов столбцов матрицы А: prod(A).
6. Формирование матрицы с элементами из возможных перестановок элементов заданного числового вектора Р: perms(P).
Создание М-файлов в виде М-сценариев.
2-D графика в MATLAB.
М-сценарии представляют собой последовательность действий или запись вычислительных алгоритмов, которые затем оформляются системой MATLAB в виде m-файлов (с расширением m). Техт М-сценария может быть написан в любом текстовом редакторе (текстовый документ) и затем перенесен в систему MATLAB, где для дальнейшего использования должен быть сохранен в окне редактора как m-файл.
1. Создание простейших сценариев.
Пример 1.
10. Создать в командном окне MATLAB матрицу: а = [1 2 3;4 5 6] или а = [1,2,3;4,5,6];
11. Транспонировать матрицу а: а1 = а' ;
12. Создать матрицу b = [10 20 30;40 50 60];
13. Перемножить матрицы а1 и b: с = а1*b;
14. На экране создать надпись 'Перемножение матриц а1 и b:' с помощью disp('Перемножение матриц а1 и b: ');
15. Вывести результат перемножения, набрав в командной строке обозначение с и нажав клавишу Enter;
2. Чтобы не было вывода промежуточных результатов, то в конце каждой строки (команды) следует ставить точку с запятой ; .
3. Проделать предыдущие пункты команд с точкой с запятой и без.
2. Пункты 1-6 записать в М-файле. Для этого в командной строке набрать edit. Как только откроется окно текстового редактора, повторить набор команд пп. 1-6 и сохранить под каким-либо именем (например, Lab1). Тем самым создали М - сценарий.
3. Выйти из редактора в командное окно MATLAB.
4. Запустить на выполнение созданный М - сценарий. Для этого в активной командной строке набрать имя М - сценария и нажать клавишу Enter;
5. Для возвращения в редактор с целью редактирования созданного М - файла в командной строке набрать edit и через пробел имя желаемого файла (например, Lab1).
2. В М - файле можно записывать комментарии. Они создаются с помощью знака %. Т. е. после знака % можно писать как на русском, так и на английском и т. д. Все, что находится за знаком %, является невыполняемыми действиями, даже если там будут записаны стандартные команды MATLAB.
3. Создать М - сценарий с набором матриц и их инвертированием. Инвертирование матрицы с: inv(c).
Пример 2.
Формирование выборки случайных чисел, распределенных по экспоненциальному закону.
Функция распределения экспоненциального распределения вероятностей:
(1)
где
— интенсивность распределения, равная обратной величине математического ожидания (среднего) распределения, т. е.
где
— математическое ожидание.
Выборка случайных чисел определяется через инверсную функцию от F(t):
(2)
где
— случайное число из интервала [0, 1], ![]()
1. Сценарий формирования выборки случайных чисел, распределенных по экспоненциальному закону.
1.1. Выборка из 18 случайных чисел с экспоненциальным распределением и с заданным параметром интенсивности, равным 2:
% начало цикла, шаг индексации равен 1
%
— случайное число из [0, 1]
% окончание цикла
% получение вектора-столбца случайных чисел
% сортировка случайных чисел по возрастанию значений
1.2. Формирование выборки 18 случайных чисел с экспоненциальным распределением с помощью встроенной функции expinv:
p2=rand(18,1);
T=expinv(p2,0.5)
t2=sort(T)
1.3. Формирование выборки 18 случайных чисел с экспоненциальным распределением с помощью встроенной функции exprnd:
for k=1:18
y(k)=exprnd(0.5);
end
R=sort(y) % R — вектор случайных отсортировнных чисел по возрастанию
Сценарии 1.1, 1.2, 1.3 должны быть сохранены под какими-либо именами, которым система MATLAB присваивает расширение m. Выполнение m-файла (сценария) может быть осуществлено из рабочей строки командного окна MATLAB.
Примеры статистичесих интерактивных графических окон
функций распределения вероятностей.
Диалоговое (интерактивное) окно графических типовых распределений вероятностей в системе MATLAB — функция DISTTOOL (disttool).
DISTTOOL позволяет наглядно в виде графиков представлять различные функции распределения вероятностей с задаваемыми параметрами. В DISTTOOL приводятся две функции: cdf — функция распределения (интегральная функция распредления вероятностей), pdf — функция плотности распределения (дифференциальная функция распределения вероятностей).
Диалоговое (интерактивное) окно графических типовых гистограмм распределения вероятностей в системе MATLAB — функция RANDTOOL(randtool).
RANDTOOL позволяет представлять гистограммы функций плотности распределения вероятностей с возможным изменением параметров распределения и с изменением количества интервалов рассматриваемой гистограммы.
Графические построения. 2-D графика MATLAB.
2.1. График в полярной системе координат:
t=0:0.01:2*pi; y=3*(1+sin(t)); polar(t, y)
2.2. Совмещение графиков в одной системе координат с помощью функции hold on: t=0:0.01:2*pi;y1=3*(1+sin(t));y2=3*(1-sin(t));
polar(t, y1),hold on, polar(t, y2,'r')
2.3. Совмещение трех и более графиков с помощью функции hold on:
t=0:0.01:2*pi;y1=3*(1+sin(t));y2=3*(1-sin(t));
y3=3*(1+cos(t)); y4=3*(1-cos(t));
polar(t, y1),hold on, polar(t, y2,'r'),polar(t, y3,'g'),polar(t, y4,'k')
2.4. График в декартовой системе координат:
t=0:0.01:2*pi; y=sin(t);
plot(t, y),grid
2.5. Формирование пояснений к графику с помощью функции gtext:
t=0:0.01:2*pi;y=sin(t);plot(t, y),grid, gtext('t'),gtext('y')
% требуемые символы (t и y) устанавливаются в позиции курсора мыши.
2.6. Построение графиков заданных функций — fplot.
% График функции sin(t) или sin(x) и т. д. в пределах по аргументу от
до
:
» fplot('sin(t)',[-3*pi 3*pi]),grid % Набор в рабочей строке MATLAB
% График функции sin(t) в пределах по t от
до
с ограничением от -0.7 до 0.7
» fplot('sin(t)',[-3*pi,3*pi,-0.7,0.7]),grid
% Совмещение нескольких графиков: sin(t), exp(-0.5t), 3cos(t)
» fplot('[sin(t),exp(-0.5*t),3*cos(t)]',[-1,10,-4 5]),grid
Задание: Построить с помощью fplot графики следующих функций и их комбинаций:
![]()
с соответствующими областями определения.
2.7. Формирование пояснений к графику с помощью функций title, xlabel, ylabel:
t=0:0.01:2*pi;y=sin(t);
plot(t,y),grid,title('Синусоида'),xlabel('радианы'),
ylabel('функция'),gtext('t'),gtext('y')
» fplot('[sin(t),3*cos(t)]',[-1,10,-4 ,5]),grid, title('y_1-sin(t), y_2-3cos(t)'),gtext('y_1'),gtext('y_2')
% требуемые символы
на графике устанавливаются в позиции курсора мыши.
2.8. Формирование пояснений к начертанию нескольких графиков с помощью функции legend:
t=0:0.01:2*pi;y1=sin(t);y2=cos(t);
plot(t, y1,'r'),grid, hold on, plot(t, y2), legend('s1','c2')
2.9. Установка ярлыка legend в различных частях графика:
в левом верхнем углу: legend('s1','c2', 2);
в левом нижнем углу: legend('s1','c2', 3);
в правом нижнем углу: legend('s1','c2', 4);
в правом верхнем углу: legend('s1','c2', 1)
или по умолчанию: legend('s1','c2');
вне рабочей области графика: legend('s1','c2', -1);
2.10. Интерактивный графический калькулятор — funtool.
В командной строке MATLAB набрать функцию funtool и запустить на выполнение (Enter). Самостоятельно проделать возможные построения и вычисления: графики стандартных функций, дифференцирование и интегрирование функциональных выражений, обращение функций, сложение двух функций и т. д.
% Установка для графиков цветов осуществляется в соответствии со следующими ключевыми обозначениями, приведенными в табл.1.:
Таблица 1. | ||
Обозначение цвета | Цвет (по-английски) | Цвет (по-русски) |
y | yellow | желтый |
m | magenta | светло-фиолетовый |
c | cyan | светло-зелёный |
r | red | красный |
g | green | зелёный |
b | blue | голубой (синий) |
w | white | белый |
k | black | черный |
См. п.2.8, где начертание графика осуществляется красным цветом.
Задание: п.2.8 выполнить в соответствии с цветами, приведенными в таблице 1. Выполнить построения графиков с помощью fplot, например:
» fplot('sin(t)',[-5,5],'r'),grid, hold on,fplot('3*cos(t)',[-5 5],'g') % С красным и зеленым цветами
% Начертание графиков различными символами может быть выполнено в соответствии с ключевыми символами, приведенными в табл.2.
Таблица 2. | ||
Обозначение символа | Английское название | Русское название |
1 | 2 | 3 |
· (обычная точка) | point | точка |
o | circle | окружность |
x | x-mark | крестик |
* | star | звездочка |
s | suare | квадратики |
d | diamond | алмаз |
v | triangle (down) | треугольник (вниз) |
^ | triangle (up) | треугольник (вверх) |
< | triangle (left) | треугольник (левый) |
> | triangle (right) | треугольник (правый) |
p | pentagram | пятиконечная звездочка |
h | hexagram | шестиконечная звездочка |
- | solid | непрерывная линия |
: | dotted | пункрирная линия (:) |
-. | dashdot | штрих-пунктирная линия |
-- | dashed | разрывная линия |
Задание: п.2.7 выполнить в соответствии с символами, приведенными в таблице 2., п.2.8 выполнить в соответствии с цветами и символами, приведенными в таблицах 1, 2.
Пример 3. Построение графиков функции экспоненциального распределения
В соответствии со сценариями 1.1 и 1.2 построить функции распределения вероятностей и функции плотности распределения вероятностей.
1-й способ построения интегральной функции распределения F1:

t1=sort(x);
F1=1-exp(-2*t1);
plot(t1,F1),grid
2-й способ построения интегральной функции распределения F2:
p2=rand(48,1);
T=expinv(p2,0.5); % параметр 0.5 — математическое ожидание
t2=sort(T);
F2=1-exp(-2*t2);
plot(t2,F2),grid
3-й способ построения интегральной функции распределения F3:
p3=rand(48,1);
T3=expinv(p2,0.5); % параметр 0.5 — математическое ожидание
t3=sort(T3);
F3=expcdf(t3,0.5); % построение по функции expcdf
plot(t3,F3),grid
Пример 4. Построение графиков функции плотности экспоненциального распределения.
Функция плотности экспоненциального распределения вероятностей имеет вид:
(3)
где m — интенсивность распределения, t — случайная величина.
График функции плотности можно построить тремя способами. Первый и второй способы аналогичны построению интегральной функции распределения. Применить самостоятельно.
3-й способ построения функции плотности экспоненциального распределения f3:
p3=rand(48,1);
T3=expinv(p2,0.5); % параметр 0.5 — математическое ожидание
t3=sort(T3);
f3=exppdf(t3,0.5); % построение по функции exppdf
plot(t3,f3),grid
Задание.
1. Совместить графики функций распределения F1, F2, F3 в одной системе координат.
2. Совместить графики функций распределения f1, f2, f3 в одной системе координат.
3. Выполнить построения графиков со всеми типами обозначений в соответствии с пунктами 2.5-2.7.


