АСОИУ

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.