Автор работы: Пользователь скрыл имя, 17 Сентября 2011 в 09:40, лабораторная работа
Цель работы
Освоить приемы программирования и реализации простейших алгоритмов моделирования с использованием среды MatLab. Получить навыки, которые будут полезны при выполнении последующих лабораторных работ.
Министерство образования и науки Российской Федерации
Новосибирский
государственный технический
Кафедра
экономической информатики
Новосибирск
2010
Цель работы
Освоить
приемы программирования и реализации
простейших алгоритмов моделирования
с использованием среды MatLab. Получить
навыки, которые будут полезны при выполнении
последующих лабораторных работ.
Ход
работы
Биномиальное
распределение в теории
вероятностей
— распределение количества «успехов»
в последовательности из
независимых случайных экспериментов, таких что вероятность «успеха» в каждом из
них равна
.
Если
вероятности появления
(Р + Ч)к,
где р и
q— вероятности появления каждого признака;
к — число классов, отличающихся по появлению
признака.
Если
р = 0,5, q= 0,5, а к - увеличивается, то биномиальная
кривая приближается к нормальной кривой,
которая является пределом биномиального
распределения. Чем больше различаются
значения р и q, тем значительнее асимметрия
биномиальной кривой. Средняя арифметическая
и среднее квадратическое отклонение
характеризуют биномиальное
распределение.
А)
Выборка:
N = 10;
P=0.5;
m=[1 100];
y = binornd(N,P,m)
Результат:
y = 4 5 4 6 5 2 5 6 4 4 6
6 4 7 3 6 6 7 7 6 5 5
1 6 7 4 4 3 2 4 4 5 6
4 4 5 3 5 7 4 7 2 7 7
4 5 4 4 4 8 7 6 3 6 5
7 3 4 4 3 4 4 5 5 4 6
4 5 8 4 1 7 7 7 6 3 7
6 7 8 7 3 4 4 6 9 6 6
5
5 5 4
4 4 4
4 5 4
5
Б)
для плотности вероятности
Программа:
x = 0:10;
y = binopdf(x,10,0.5);
plot(x,y,'-')
Результат:
рис.1
В)
для функции распределения
Программа:
x = 0:0.1:10;
y = binocdf(x,10,0.5);
plot(x,y)
Результат:
рис. 2
Программа:
N = 10;
P=0.5;
m=[1 100];
y = binornd(N,P,m)
hist(y,N)
grid on
Результат:
рис.3
А)
для функции распределения
Программа:
n=1000;
k=50:1:n;
a=binocdf(k,n,p);
plot(k,a,'d')
grid on
Результат:
рис.4
Б)
для плотности
вероятности
Программа:
n=1000;
k=50:1:n;
P=binopdf(k,n,p);
plot(k,P,'d')
grid on
Результат:
рис. 5
Comet – это движение
точки по траектории.
Программа:
function [ output_args ] = lab0( input_args )
x=[-0.5,-0.5,0.5,0.5]
y=[0,1,1,0]
plot(x,y,'ow')
hold on
t=-10*pi:pi/250:10*pi;
r=3;
m=1;
x = sin(m/r*sin(t))
y = 1-cos(m/r*sin(t))+0.2
mycomet(x,y);
end
Результат:
рис.6
comet3 – это движение точки по траектории в трехмерном пространстве.
Программа:
R2 = 0.7;
for k2=1:1:100;
x2(k2) = R2 * cos(2*pi/100*k2);
y2(k2) = R2 * sin(2*pi/100*k2);
end
plot(x2,y2,'g.')
hold on
t2 = 1:0.01:100;
h2 = 1;
x2 = cos(t2) * h2;
y2= sin(t2) * h2;
comet3(x2,y2,t2)
Результат:
рис. 7
Программа:
a=2;
b=4;
plot([0 0 6 6 0],[0 5 5 0 0] ,'r');
hold on
x = (a + (b-a))*rand(5, (a + (b-a)));
plot(x,'+')
axis([-1 7 -1 6]);
Результат:
рис. 8
Построить
многоугольник (см. пп. 4), сгенерировать
координаты N точек и с помощью функции
inpolygon определить, какие из них лежат внутри
этого многоугольника.
В системе MATLAB определены функции, вычисляющие площадь полигона и анализирующие нахождение точек внутри полигона. Для вычисления площади полигона используется функция polyarea:
polyarea(X.Y) — возвращает площадь полигона, заданного вершинами, находящимися в векторах X и Y. Если X и Y — матрицы одного размера, то polyarea возвращает площадь полигонов, определенных столбцами X и Y;
polyarea(X.Y.dim)
— возвращает площадь полигона, заданного
столбцами или строками X и Y в зависимости
от значения переменной dim.
Функция Inpolygon используется для анализа того, попадают ли заданные точки внутрь полигона:
IN=inpolygon(X,Y.xv.yv) — возвращает матрицу IN того же размера, что X и Y. Каждый элемент матрицы IN принимает одно из значений — 1, 0.5 или 0 — в зависимости от того, находится ли точка с координатами (X(p,q),Y(p,q)) внутри полигона, вершины которого определяются векторами xv и yv:
IN(p,q) = 1 — если то.чка (X(p.q) ,Y(p,q)) лежит внутри полигона;
IN(p,q) = 0.5 — если точка (X(p,q) ,Y(p,q)) лежит на границе полигона;
IN(p.q)
= 0 — если точка (X(p.q),Y(p,q)) лежит вне полигона.
Программа:
x=[0 0 2 2 0]; y=[0 2 2 0 0];
plot(x,y,'r')
a=polyarea(x,y)
axis([-1 3 -1 3])
Результат:
а= 4
рис.9
Программа:
L = linspace(0,2.*pi,6); xv = cos(L)';yv = sin(L)';
xv = [xv ; xv(1)]; yv = [yv ; yv(1)];
x = randn(250,1); y = randn(250,1);
in = inpolygon(x,y,xv,yv);
plot(xv,yv,x(in),y(in),'r+',x(
Результат:
a = 8.6086
рис. 10
Информация о работе Алгоритм моделирования с использованием среды MatLab