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

4

.m
Скачиваний:
4
Добавлен:
16.04.2021
Размер:
3.63 Кб
Скачать
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(x1,x2) двумерного случайного вектора (x1,x2)'});
axis('equal')
Соседние файлы в предмете Моделирование