Uploaded by chibvera

Информтаика

advertisement
Кафедра АСОИУ
–
Афонин В. В.
Лабораторная работа № 4
ГРАФИКА СИСТЕМЫ MATLAB
Цель работы. Изучить основы 2D и 3D графики системы MATLAB.
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
С точки зрения вычислительных операций на графику возлагается визуализация результатов. В системе MATLAB предусмотрена двухмерная и трехмерная графика. Справку о графических функциях и командах можно получить
по следующим справкам:
help graph2D
help graph3D
help specgraph
Каждое графическое построение – это работа с графическими объектами.
MATLAB показывает графические объекты в специальных графических окнах,
имеющих в заголовке слово Figure. Нумерация графических окон начинается с
единицы и далее натуральные числа. Большие возможности предоставляются
пользователю по оформлению графиков (2D, 3D) и графических окон. Каждый
графический объект (например, диаграмма) может быть сохранен в традиционных графических форматах, таких как .bmp, .gif, .jpeg, .tiff, .png и в
других.
Графики на плоскости (2D графики) могут быть построены в декартовой
и полярной системах координат.
Диаграммы и графики могут быть изменены по цвету на усмотрение
пользователя. При этом в MATLAB имеются зарезервированные цвета, которые
приведены в табл. 4.1.
Таблица 4.1
Зарезервированные названия цветов в MATLAB
Символ цвета
Английское название
Русское название
Код RGB
y
yellow
желтый
[1, 1, 0]
m
magenta
фиолетовый (сиреневый)
[1, 0, 1]
c
cyan
сине-зеленый (бирюзовый)
[0, 1, 1]
r
red
красный
[1, 0, 0]
g
green
зеленый
[0, 1, 0]
b
blue
синий
[0, 0, 1]
w
white
белый
[1, 1, 1]
k
black
черный
[0, 0, 0]
Кафедра АСОИУ
–
Афонин В. В.
Тип линии (стиль) графиков может быть установлен в соответствии с зарезервированными названиями, которые приведены в табл. 4.2.
Таблица 4.2
Типы (стили) линий
Символ метки или линии
Английское название
Русское название
.
point
точка
o
circle
кружок (окружность)
х
x-mark(cross)
крестик
+
plus
плюс
*
star (asterisk)
звезда (звездочка)
s
square
квадрат
d
diamond
ромб (алмаз)
v
triangle (down)
треугольник (вниз)
^
triangle (up)
треугольник (вверх)
<
triangle (left)
треугольник (влево)
>
triangle (right)
треугольник (вправо)
р
Pentagram
(five-pointed star)
пятиугольник
(пятилучевая звезда)
h
hexagram
(six-pointed star)
шестиугольник
(шестилучевая звезда)
-
solid line
Сплошная линия
:
dotted line
пунктирная (двойная)
линия
-.
dash-dot line
штрих-пунктирная линия
--
dashed line
штриховая линия
none
no line
нет линии
В графической системе MATLAB имеются также функции и команды,
которые позволяют манипулировать графическими объектами. Некоторые из
этих функций и команд будут рассмотрены в практической части, где также будут рассмотрены основные приемы построения графиков. При графических построениях можно рекомендовать создавать М-файлы.
Рассмотрим построение графиков линейных функций вида
y = ax + b;
Первый пример приведен в листинге 4.1
2
Кафедра АСОИУ
%%%
–
Афонин В. В.
Листинг 4.1
clear, clc, close all
%%% Параметры прямой линии
a = 0.5;
b = 2;
x = -7 : 0.01 : 4.2;
y = a*x + b;
line(x, y, 'color', 'r', 'linew', 2 )
%%%% AXIS
xmax = max([max(x), abs(min(x))])*1.1;
ymax = max([max(y), abs(min(y))])*1.2;
%%%% Ось абсцисс
line([-xmax*0.95, xmax], [0, 0], 'color', 'k', 'linew', 1)
%%%% Ось ординат
line([0, 0], [-ymax*0.6, ymax], 'color', 'k', 'linew', 1)
text(xmax, 0, '\bf<', 'rotation', 180)
text(0, ymax, '\bf<', 'rotation', -90)
text(xmax*0.9, -xmax/15, '\it\fontsize{14}\fontname{georgia}x')
text(-xmax/10, ymax*0.95, '\it\fontsize{14}\fontname{georgia}y')
text(-xmax/10, -xmax/15, '\it\fontsize{13}0')
line(0, 0, 'marker', 'o', 'markersize', 5, 'color', 'k',...
'markerfacecolor', 'k')
line(0, b, 'marker', 'o', 'markersize', 5, 'color', 'k',...
'markerfacecolor', 'w')
grid on
axis equal
axis off
set(gcf, 'name', 'Пример построения прямой линии', 'color', 'w')
Результат выполнения программы (скриншот) показан на рис. 4.1.
3
Кафедра АСОИУ
–
Афонин В. В.
Рис. 4.1. График прямой линии y = 0.5x + 2
График можно сохранить в различных графических форматах, чтобы потом вставить, например, в документ типа Word. При этом сохраняться будет
собственно один график без интерфейса графического окна. Для этого следует
в меню File выбрать пункт Save as. Пример выбора графического формата
.bmp для сохранения показан на рис. 4.2.
4
Кафедра АСОИУ
–
Афонин В. В.
Рис. 4.2. Меню выбора графического формата сохранения диаграммы
После выбора графического формата, например, .bmp, можно присвоить
какое-нибудь имя. Пусть это будет «Пример». При этом можно выбрать место
(директорию) для сохранения. Результат выбора показан на рис. 4.3.
Рис. 4.3. Назначение имени для сохранения диаграммы в формате .bmp
5
Кафедра АСОИУ
–
Афонин В. В.
После вставки файла «Пример.bmp» получим график, показанный на
рис. 4.4.
Рис. 4.4. График прямой линии в .bmp формате
Для построения прямой линии, проходящей через две заданные точки,
можно воспользоваться параметрическими уравнениями прямой. Приведем необходимые уравнения:
x − x1
y − y1
=
;
x2 − x1 y2 − y1
x − x1
= t;
x2 − x1
y − y1
= t;
y2 − y1
x = x1 + x2 − x1 t;
y = y1 + y2 − y1 t,
где t  [0; 1].
6
Кафедра АСОИУ
–
Афонин В. В.
Рассмотрим второй пример построения прямой линии, проходящей через
две заданные точки (листинг 4.2).
%%%
Листинг 4.2
clear, clc, close all
%%% Координаты точек
x1 = -3.5;
y1 = 4;
x2 = 5.2;
y2 = -4;
%%% Параметр
t = 0 : 0.01 : 1;
x = x1 + (x2 - x1)*t;
y = y1 + (y2 - y1)*t;
line(x, y, 'linew', 2 )
line(x1, y1, 'marker', 'o', 'markersize', 5, 'color', 'b',...
'markerfacecolor', 'b')
line(x2, y2, 'marker', 'o', 'markersize', 5, 'color', 'b',...
'markerfacecolor', 'b')
xlabel('\bf - - - - - - - x - - - - - - -')
ylabel('\bf - - - - - - - y - - - - - - -')
ylim([y2 - 0.5, y1+0.5]);
grid on
axis equal
str = 'Построение прямой линии, проходящей через две точки'
set(gcf, 'name', str)
При изменении параметра за пределы отрезка [0; 1] прямая линия будет
выходить за пределы заданных точек.
Результат выполнения программы показан на рис. 4.5.
7
Кафедра АСОИУ
–
Афонин В. В.
Рис. 4.5. Прохождение прямой линии через две заданные точки
Параметрическое задание уравнений может быть применено для построения окружностей, эллипсов, гипербол. Рассмотрим примеры (листинг 4.3).
%%% Листинг 4.3
clear, clc, close all
%%% Построение окружности
R = 2; %% радиус окружности
%% Координаты центра
x0 = 3.5;
y0 = 3;
%% Параметр
t = 0 : 0.001 : 360;
x = R*cosd(t) + x0;
y = R*sind(t) + y0;
figure(1);
line(x, y, 'linew', 2 ) %% окружность
8
Кафедра АСОИУ
–
Афонин В. В.
line(x0, y0, 'marker', 'o', 'markersize', 5, 'color', 'k',...
'markerfacecolor', 'k')
xlabel('\bf - - - - - - - x - - - - - - -')
ylabel('\bf - - - - - - - y - - - - - - -')
%ylim([y2 - 0.5, y1+0.5]);
grid on
axis equal
str1 = 'Построение окружности: ';
str2 = sprintf('R = %g; x0 = %g; y0 = %g', R,x0,y0)
str = strcat(str1, str2); %% конкатенация строк
set(gcf, 'name', str)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Построение эллипса
a = 5.5;
b = 3;
x0 = -2;
y0 = -3;
t = 0 : 0.0001 : 2*pi; %% pi = 3.14...
x = a*cos(t) + x0;
y = b*sin(t) + y0;
figure(2)
line(x, y, 'linew', 2 ) %% эллипс
line(x0, y0, 'marker', 'o', 'markersize', 5, 'color', 'k',...
'markerfacecolor', 'k')
xlabel('\bf - - - - - - - x - - - - - - -')
ylabel('\bf - - - - - - - y - - - - - - -')
grid on
axis equal
str1 = 'Построение эллипса: ';
str2 = sprintf('a = %g; b = %g; x0 = %g; y0 = %g', a, b, x0,y0)
str = strcat(str1, str2); %% конкатенация строк
set(gcf, 'name', str)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% Построение гиперболы
a = 6;
b = 4;
t = 0 : 0.0001 : pi/2; %% pi = 3.14...
x = a*cosh(t); %% косинус гиперболический
y = b*sinh(t); %% синус гиперболический
figure(3)
9
Кафедра АСОИУ
–
Афонин В. В.
line(x, y, 'linew', 2 )
line(x, -y, 'linew', 2 )
line(-x, y, 'linew', 2 )
line(-x, -y, 'linew', 2 )
xlabel('\bf - - - - - - - x - - - - - - -')
ylabel('\bf - - - - - - - y - - - - - - -')
xlim([-max(x)-max(x)/12, max(x) + max(x)/12]);
grid on
axis equal
str = sprintf('Построение гиперболы: a = %g;
set(gcf, 'name', str)
b = %g;
Результат выполнения программы показан на рис. 4.6–4.8.
Рис. 4.6. График окружности
10
', a, b)
Кафедра АСОИУ
–
Рис. 4.7. График эллипса
11
Афонин В. В.
Кафедра АСОИУ
–
Афонин В. В.
Рис. 4.8. График гиперболы
Рассмотрим пример построения фигуры (катеноида) в трехмерном пространстве (листинг 4.4).
%%%
Листинг 4.4
clear, clc, close all
plot3(0,0,0)
hold on
a
u
v
x
y
z
=
=
=
=
=
=
1.8;
-a : 0.08 : a;
linspace(0, 2*pi, length(u) );
cosh(u)' * cos(v);
cosh(u)' * sin(v);
u' * ones(size(v));
mesh(z, x, y) %% катеноид
colormap(0.0*[1,1,1]) %%% цвет
%%%% AXIS
xmax = max(max(x))*1.1;
ymax = max(max(z)) + a*0.9;
12
Кафедра АСОИУ
–
Афонин В. В.
line([-xmax*0.9, xmax], [0, 0], [0, 0], 'color', 'k', 'linew', 1)
line([0, 0], [0, 0], [-ymax*0.95, ymax], 'color', 'k', 'linew', 1)
text(xmax, 0, 0, '\bf\fontsize{10}<', 'rotation', 180)
text(a/70, 0, ymax, '\bf\fontsize{10}<', 'rotation', -90)
text(xmax*0.9, 0, -xmax/12, '\it\fontsize{14}\fontname{georgia}x')
text(-xmax/8, 0, ymax*0.95, '\it\fontsize{14}\fontname{georgia}y')
view(-10, 0) %% точка обзора
alpha(0.95) %% прозрачность фигуры
axis equal
axis off
set(gcf, 'NumberTitle', 'off', 'name', 'Катеноид', 'color', 'w')
Результат выполнения программы показан на рис. 4.9.
Рис. 4.9. Катеноид как фигура вращения
13
Кафедра АСОИУ
–
Афонин В. В.
ПРАКТИЧЕСКАЯ ЧАСТЬ
Пример 1. С помощью функции plot в декартовой системе координат построить и оформить график следующей функции:
y(t) = e–0.2tcos(3t).
Программный код решения примера
%% Очистка памяти, очистка экрана (командного окна),
%% закрытие одного активного графического окна
clear all, clc, close
%% Заданная функция
str = 'exp(-0.2*t)*cos(3*t)';
%% Область изменения аргумента функции
t = 0 : 0.1 : 20;
%% Заданная функция с массивным перемножением .*
y = exp(-0.2*t).*cos(3*t);
% Построение графика красным цветом с толщиной линии в 2 пикселя
plot(t, y, 'r', 'linewidth', 2) %% допустимо 'linew'
%% Выделение номера массива
n = fix(length(y)/3);
%% Нанесение надписи в заданной точке (см. help text)
text(t(n),y(n),'\bf\fontsize{12}\leftarrow y(t)', 'rotation',45)
%% Включение сетки на диаграмме
grid on
%% Заголовок диаграммы (см. help title и help sprintf)
title(sprintf('%sГрафик функции %s','\bf\fontsize{12}', str))
%% Разметка координатных осей (см. help xlabel и help ylabel)
xlabel('\bf\it - - - - - - t - - - - - -')
ylabel('\bf y = f(t)')
%% Установка свойств координатных осей, установка цвета,
%% размера шрифта, жирности шрифта
set(gca, 'color', [1,1,0], 'fontweight', 'bold', 'fontsize', 9)
%% Установка свойств графического окна, установка цвета
set(gcf, 'color','c')
Результат выполнения программы показан на рис. 4.10.
14
Кафедра АСОИУ
–
Афонин В. В.
Рис. 4.10. График функции, заданной массивом точек, в декартовой системе
Задание 4.1
Постройте и оформите графики следующих функций:
y = (x + 1)2.
y = 2 + (x – 1)3.
y = x3 – 3x + 2.
y = 2x3 – x4 .
1
y
.
1 x
x2
y
.
x2
1
yx .
x
2
x
y
.
x 1
15
Кафедра АСОИУ
y
–
Афонин В. В.
10
(локон Аньези).
x 1
2
2x
. (серпантин Ньютона)
x2  1
1
(трезубец Ньютона).
y  x2 
x
y
y   x x (полукубическая парабола).
y x
x
(циссоида Диоклеса).
4 x
y   x 25  x 2 .
y = x sin x.
1
y  sin x  sin 3x.
3
1
y  cos x  cos 2 x.
2
y   sin x .
Пример 2. Постройте в полярной системе координат график следующей функции:
y  3 [1  5sin 2t ], t  [0, 2 ]..
Программный код решения примера
clear all, clc,close all
%% Область определения функции в радианах
t = 0 : 0.01 : 2*pi;
%% Функция
y = 3*(1 + 5*sin(2*t));
%% Строчный тип
stry = '3*(1 + 5*sin(2*t))';
%% Создание указателя (дескриптора) на фигуру №1
fig1 = figure(1);
%% Установка свойств
set(fig1, 'name','Полярная систем координат')
%% Обращение к функции полярной системы координат
polar(t,y)
%% Создание указателя (дескриптора) на график функции
g = findobj('type', 'line');
%% Установка свойств линии графика функции
set(g, 'linew', 2, 'color', 'red')
%% Заголовк диаграммы
title(sprintf('%sГрафик функции %s', '\bf\fontsize{12}', stry))
%% Установка свойств (цвета) текущего (активного) объекта
16
Кафедра АСОИУ
–
Афонин В. В.
%% типа фигура - figure
set(gcf,'color','c')
В приведенном программном коде графическая функция polar принимает аргументы (t, y), выраженные в радианах. Результат выполнения программы приведен на рис. 4.11.
Рис. 4.11. Пример графика в полярной системе координат
Задание 4.2
Постройте графики следующих функций в полярной системе координат
(r, ) (r ≥ 0):
1. r = /2 (спираль Архимеда).
2. r = 10 sin 3 (трехлепестковая роза).
3. r = a(1 + cos ) (a > 0) (кардиоида).
4 (1  sin t ) 3 cost
.
4. y 
sec t
Пример 3. Постройте график следующей функции, заданной параметрическим
способом:
x = 10 cos3 t, y = 10 sin3 t (астроида).
17
Кафедра АСОИУ
–
Афонин В. В.
Программный код решения примера
clear allclc,close all
t = 0 : 0.1 : 2*pi;
x = 10*cos(t).^3;
y = 10*sin(t).^3;
plot(x,y,'r','linew', 2)
grid on
title('\bfАстроида', 'fontsize',12)
xlabel('\bf\it\fontsize{12} - - - - - - - - x - - - - - - - -')
ylabel('\bf\it\fontsize{12} - - - - - - - - y - - - - - - - -')
axis equal
В программе использована команда axis equal, которая создает оси
координат в равных отношениях по единицам измерений.
Результат выполнения программы показан на рис. 4.12.
Рис. 4.12. График функции, заданной параметрически
Задание 4.3
1. Постройте график функции, заданной параметрическим способом
18
Кафедра АСОИУ
–
x
3a t
Афонин В. В.
3a t 2
(декартов лист).
, y
1  t3
1  t3
Пример 4. Постройте в одной системе координат графики следующих функций:
y  10  x 2 ,
y2   6  x .
Программный код решения примера
clear all, clc,close all
%% Область определения 1-й функции
x = -4 : 0.01 : 4;
%% Массив значений 1-й функции
y = 10 - x.^2;
%% Област определения 2-й функции
x2 = -5 : 0.01 : 6;
%% Массивы значений 2-й функции
y2 = sqrt(6 - x2);
y22 = -sqrt(6 - x2);
%% Диаграмма
plot(x, y, 'r', 'linew', 2)
%% удержание второго и следующих графиков
hold on
plot(x2, y2, 'linew', 2)
plot(x2, y22, 'linew', 2)
%% Координатная сетка
grid on
%% Разметка оси абсцисс
xlabel('\bf\fontsize{12} x')
%% Разметка оси ординат
ylabel('\bf\fontsize{12} y(x)')
%% Создание пояснений на линии графиков
legend('y(x)','y_2(x)','location','best')
В программе используется команда hold on, предназначенная для совмещения графиков в одной системе координат.
Результат выполнения программы показан на рис. 4.13.
19
Кафедра АСОИУ
–
Афонин В. В.
Рис. 4.13. Пример совмещения графиков функций
Задание 4.4
1. Проверьте программу при отсутствии команды hold on и с командой
hold off.
2. Определите графически решение системы уравнений
x2 + y = 10, x + y2 = 6.
3. Нанесите на диаграмму заголовок с выражениями для построенных графиков функций.
4. Задайте номер фигуры (figure) в соответствии с номером компьютера, за
которым выполняется лабораторная работа (1, 2, ).
Пример 5. Постройте графики синусоиды и косинусоиды в одной системе координат с помощью графической функции fplot.(см. help fplot).
20
Кафедра АСОИУ
–
Афонин В. В.
Функция принимает в виде строки выражение, которое следует построить. В ней же вторым аргументом выступает числовой вектор с начальной и конечной точкой изменения аргумента функции.
Программный код решения примера
clear all, clc, close all
%% Определение размеров родительского окна дисплея
g0 = get(0, 'screensize');
%% Установка пользовательского размера графического окна
M = [g0(1) + 100, g0(2) + 50, 0.8*g0(3), 0.7*g0(4)];
set(gcf, 'position',M)
%%% Диаграмма
fplot('sind(t)', [-360, 360], 'r' );
hold on;
fplot('cosd(t)', [-360, 360]);
%% Координатная сетка
grid on
%% Определение типа линии на графике
sc = findobj('type','line');
set(sc(1),'linew', 2, 'linestyle','--')
set(sc(2),'linew', 2)
%% Разметка осей координат
xlabel('\fontsize{12}t')
ylabel('\fontsize{12}f(t)')
%% Установка свойств осей диаграммы
set(gca, 'xtick', -360 : 30 : 360, 'fontsize', 9)
%% Создание пояснений на линии графиков
legend('\bfsin(t)','\bfcos(t)')
В функциях fplot включены гармонические функции от аргумента, задаваемого в градусах угловых. Для удержания двух графиков в одних координатных осях включена команда hold on. Разметка координатной сетки установлена пользователем от –360 до 360 градусов угловых с шагом в 30 градусов
угловых. Для этого используется строка 'xtick' с последующем вектором
числовых значений. Ключевое слово gca – это указатель на объект типа оси
координат.
Результат выполнения программы показан на рис. 4.14.
21
Кафедра АСОИУ
–
Афонин В. В.
Рис. 4.14. Построение графиков с помощью функций fplot
Задание 4.5
1. Постройте графики функций, заданных от аргумента, выраженного в радианах.
2. С помощью функции title включите в заголовок диаграммы аналитическое выражение построенных функций.
3. В функциях fplot в качестве аргумента функций синуса и косинуса введите первые буквы своей фамилии (латинского алфавита).
4. Изучите графическую функцию line и с помощью ее постройте функции синуса и косинуса. Постройте также прямоугольник на диаграмме.
Пример 6. Постройте следующий график функции в логарифмическом масштабе по оси абсцисс:
y = 1/x
Программный код решения примера
clear,clc,close all
x = 0.1 : 0.1 : 1000;
y = 1./x;
22
Кафедра АСОИУ
–
Афонин В. В.
%См. help semilogx
semilogx(x,y,'color',[1 0 0],'linew',3),
grid on,
title('\bf\fontsize{12}Графическая функция semilogx'),
xlabel('\bf\it\fontsize{14} - - - - - - - x - - - - - - -');
ylabel('\bf\fontsize{14} y = f(x)'),
Результат выполнения программы показан на рис. 4.15.
Рис. 4.15. График функции в полулогарифмическом масштабе по оси ОХ
Задание 4.6
1. Постройте график функции y = 1/x с типом линии штрих-пунктир.
2. С помощью графической функции в центр диаграммы внесите вид функциональной зависимости, т. е. y = 1/x.
Пример 7. Постройте следующий график функции в логарифмическом масштабе по оси ординат:
y = 1/x
23
Кафедра АСОИУ
–
Афонин В. В.
Программный код решения примера
clear,clc,close all
x = 0.0001 : 0.0001 : 0.01;
y = 1./x;
% См. help semilohy
semilogy(x,y,'color',[1 0 0],'linew',2),
grid on,
title('\bf\fontsize{12}Графическая функция semilogy'),
xlabel('\bf\it\fontsize{14} - - - - - - - x - - - - - - -');
ylabel('\bf\fontsize{14} y = f(x)'),
set(gca, 'fontsize', 9, 'ytick', [1e1, 1e2, 1e3, 1e4])
ylim([1e1, 1e4]);
В программе применена принудительная оцифровка оси ординат с помощью служебного слова ytick и вектора чисел, представленных в экспоненциальной форме. Функция ylim использует для фиксации границ по оси ординат.
Результат выполнения программы показан на рис. 4.16.
Рис.4.16. График функции в полулогарифмическом масштабе по оси OY
24
Кафедра АСОИУ
–
Афонин В. В.
Пример 8. Постройте следующий график функции в логарифмическом масштабе по обеим осям координат:
y = 1/x
Программный код решения примера
clear,clc,close all
x = 0.001 : 0.001 : 1000;
y = 1./x;
% См. help loglog
loglog(x,y,'color',[1 0 0],'linew',2),
grid on,
title('\bf\fontsize{12}Графическая функция loglog'),
xlabel('\bf\it\fontsize{14} - - - - - - - x - - - - - - -');
ylabel('\bf\fontsize{14} y = f(x)'),
set(gca, 'fontsize', 9)
Пример выполнения программы показан на рис. 4.17.
Рис. 4.17. Пример графика функции в логарифмическом масштабе
25
Кафедра АСОИУ
–
Афонин В. В.
Задание 4.7
1. Постройте в логарифмическом масштабе по обеим осям координат график функции y = 1/x2.
2. Создайте разметку (оцифровку) по обеим осям координат на усмотрение
пользователя (используйте в свойствах осей set(gca, ) служебные
слова xtick, ytick).
Пример 9. Постройте распределение вероятностей Пуассоновского потока с параметром  = 1.23 и значения k = 5 на отрезке времени T  [0, 18].
Распределение вероятностей потока Пуассона определяется по следующей
формуле:
(T )k T
Pk (T ) 
e .
k!
Программный код решения примера
clear all, clc, close all
L = 1.23;
k = 5;
T = 0 : 0.5 : 18;
Pkt = ((L*T).^k).*exp(-L*T)./factorial(k);
% См. help stem
stem(T, Pkt, 'fill', 'k')
grid on
% Подготовка форматированной строки
str = sprintf('%s Распределение вероятностей потока Пуассона,%s%g, k = %d, T %s [ 0, %g ]','\bf', ...
'\newline Параметры потока: \fontsize{12}\lambda\fontsize{10} =
',L, k, '\fontsize{12}\in\fontsize{10}', T(end));
title(str);
xlabel('\bf\it - - - - - - - - t - - - - - - - -');
ylabel('\bf\fontsize{12} P_k(t)');
В программе использована графическая функция stem (от английского –
ствол, стебель). Применены также массивные операции возведения в степень,
умножения, деления, которые идут сразу после символа точки.
Пример выполнения программы показан на рис. 4.18.
26
Кафедра АСОИУ
–
Афонин В. В.
Рис. 4.18. Пример распределения вероятностей потока Пуассона
Задание 4.8
1. Постройте распределение вероятностей потока Пуассона для значений k
от нуля до 10 (исключая k = 5). При этом скорректируйте интервал времени так, чтобы было видно стремление к нулю вероятностей.
2. Выберите на свое усмотрение цвет заливки «стержней» в графической
функции stem, т. е. когда используется служебное слово fill.
27
Download