Автор работы: Пользователь скрыл имя, 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