Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

4

.docx
Скачиваний:
5
Добавлен:
16.04.2021
Размер:
402.49 Кб
Скачать

ГУАП

КАФЕДРА № 41

ОТЧЕТ

ЗАЩИЩЕН С ОЦЕНКОЙ

ПРЕПОДАВАТЕЛЬ

ассистент

М. С. Иванова

должность, уч. степень, звание

подпись, дата

инициалы, фамилия

ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №4

Моделирование случайной вектора

по курсу: МОДЕЛИРОВАНИЕ

РАБОТУ ВЫПОЛНИЛА

СТУДЕНТКА ГР.

4716

С.А. Янышева

подпись, дата

инициалы, фамилия

Санкт-Петербург

2020

Лабораторная работа № 4

Моделирование случайной вектора

  1. Цель работы

  1. Ознакомление с графическими возможностями системы MATLAB по изучению основных законов распределений случайных векторов, визуализированное исследование зависимости графиков функций распределения и функций плотности вероятности от параметров распределений;

  2. Изучение возможностей системы MATLAB по моделированию случайных векторов.

  1. Вариант задания

Вариант №20 (2)

Закон распределения – нормальный

  1. Скриншоты выполнения программы

Рисунок 1 – Гистограмма входного двумерного случайного вектора

Рисунок 2 – Гистограмма выходного двумерного случайного вектора

Рисунок 3 – Входной и выходной двумерный случайный вектор

Рисунок 4 - Теоретическая плотность вероятности двумерного случайного вектора

Рисунок 5 – Экспериментальная плотность вероятности двумерного случайного вектора

Рисунок 6 – Контурный график (теоретический) плотности вероятности p(x1,x2) двумерного случайного вектора (x1,x2)

Рисунок 7 – Контурный график (экспериментальный) плотности вероятности p(x1,x2) двумерного случайного вектора (x1,x2)

  1. Программный код

Листинг 1

n=2; %размерность случайного вектора

N=500; %количество наблюдений (объем выборки)

U=randn(n,N);% генерация случайного вектора

cov_u = eye(n,n); %ковариационная матрица

cov_ksi=[1 0;0 1]; %ввод ковариационной матрицы

M_ksi=[0;0]; %ввод матрицы

% M_ksi=zeros(n,1);

A=zeros(n,n);

%вычисление элементов матрицы

for i=1:n,

for j=1:i,

sum=0;

for k=1:(j-1),

sum=sum+A(i,k)*A(j,k)*cov_u(k,k);

end

if i==j

A(i,j)=sqrt((cov_ksi(i,j)-sum)/cov_u(j,j));

else

A(i,j)=(cov_ksi(i,j)-sum)/(A(j,j)*cov_u(j,j));

end

end

end

%построение случайного вектора

for i=1:N,

ksi(:,i)=A*U(:,i)+M_ksi;

end

%транспонирование матрицы случайных векторов

ksi_t=ksi';

disp('Матрица преобразований A');

A

disp('Выборка входных векторов U');

U

disp('Выходные векторы ksi');

ksi

disp('Исходн. матрица cov_ksi');

cov_ksi

%построение выборочной ковариационной матрицы

disp('Выборочн. ков. матрица cov_ksi');

test_cov_ksi=cov(ksi_t)

%проверка правильности преобразований

disp('Матрица cov_ksi (проверка правильности преобразований)');

A*cov_u*A'

%построение гистограмм для входных и выходных векторов

figure();

hist(U',20);

xlabel('Интервалы');

ylabel('Количество попаданий');

title('Гистограмма входного двумерного случайного вектора (x1,x2)');

legend('x1','x2')

figure();

hist(ksi',50);

xlabel('Интервалы');

ylabel('Количество попаданий');

title('Гистограмма выходного двумерного случайного вектора (x1,x2)');

legend('x1','x2')

figure();

subplot(2,1,1),plot(U');

xlabel('номер эксперимента,n');

ylabel('Пара значений (x1,x2) n-го экспе-та');

title('Входной двумерный случайный вектор (x1,x2)');

subplot(2,1,2),plot(ksi_t);

xlabel('Номер эксперимента,n');

ylabel('Пара значений (x1,x2) n-го экспе-та');

title('Выходной двумерный случайный вектор (x1,x2)');

mean(ksi_t)

mean(U')

var(ksi_t)

var(U')

M=300;

z=zeros(M);

test_z=zeros(M);

for i=1:M

x(i)=i/37.5-4;

for j=1:M

y(j)= j/37.5-4;

WW= 1 / ( 2*pi*cov_ksi(1,1)*cov_ksi(2,2)*sqrt( 1-cov_ksi(1,2)^2 )) ;

WW1=-1/(2*(1-cov_ksi(1,2)^2));

WW2= ((x(i)- M_ksi(1))^2)/(cov_ksi(1,1)^2);

WW3=(2*cov_ksi(1,2)*(x(i)-M_ksi(1))*(y(j)- M_ksi(2)))/(cov_ksi(1,1)*cov_ksi(2,2));

WW4= ((y(j)- M_ksi(2))^2)/(cov_ksi(2,2)^2); z(i,j)= exp((WW2+WW4-WW3)*WW1)*WW;

WW= 1 / ( 2*pi*test_cov_ksi(1,1)*test_cov_ksi(2,2)*sqrt( 1- test_cov_ksi(1,2)^2 ) ) ;

WW1=-1/(2*(1-test_cov_ksi(1,2)^2));

WW2= ((x(i)- M_ksi(1))^2)/(test_cov_ksi(1,1)^2);

WW3=(2*test_cov_ksi(1,2)*(x(i)-M_ksi(1))*(y(j)- M_ksi(2)))/(test_cov_ksi(1,1)*test_cov_ksi(2,2));

WW4= ((y(j)- M_ksi(2))^2)/(test_cov_ksi(2,2)^2); test_z(i,j)= exp((WW2+WW4-WW3)*WW1)*WW;

end

end

figure();

mesh(x,y,z);

xlabel('x1');

ylabel('y2');

zlabel(' p(x1,x2)')

title({'Теоретическая плотность вероятности ';'p(x1,x2) двумерного случайного вектора (x1,x2)'});

figure();

mesh(x,y,test_z);

grid on;

xlabel('x1');

ylabel('x2');

zlabel('p(x1,x2)')

title({'Экспериментальная плотность вероятности ';'p(x1,x2) двумерного случайного вектора (x1,x2)'});

figure();

[C,h]=contourf(x,y,z);

clabel(C,h);

grid on;

xlabel('x1');

ylabel('x2');

title({'Контурный график (теоретический) плотности вероятности';'p(x1,x2) двумерного случайного вектора (x1,x2)'});

axis('equal')

figure();

[C,h]=contourf(x,y,test_z);

clabel(C,h);

grid on;

xlabel('x1');

ylabel('x2');

title({'Контурный график (экспериментальный) плотности вероятностиp';'p(x1,x2) двумерного случайного вектора (x1,x2)'});

axis('equal')

  1. Выводы о проделанной работе

В результате выполнения лабораторной работы, были получены практические навыки работы с возможностями системы MATLAB по моделированию случайных векторов, а так же выполнено ознакомление с графическими возможностями системы MATLAB по изучению основных законов распределений случайных векторов, визуализированное исследование зависимости графиков функций распределения и функций плотности вероятности от параметров распределений.

Соседние файлы в предмете Моделирование