Санкт-Петербургский государственный политехнический университет
Кафедра компьютерных систем и программных технологий
ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №1
Дисциплина: Идентификация и диагностика систем управления
Тема: Моделирование случайных факторов
Вариант 10
Выполнил студент гр. 5081/1
Проверил
Санкт-Петербург
2010
1. Провести моделирование генерации нормально-распределенных чисел для следующих значений математического ожидания и дисперсии:
математическое ожидание |
0 |
0 |
1 |
дисперсия |
1 |
4 |
4 |
Выяснить зависимость оценок (точечных и интервальных) математического ожидания и дисперсии от объема выборки () при доверительном уровне .
Графики, иллюстрирующие последовательности случайных чисел и плотности их распределения НЕ приводить.
Точечные оценки математического ожидания и дисперсии:
·
·
Интервальные оценки математического ожидания и дисперсии для случая неизвестной дисперсии:
· , где
– квантиль распределения Стьюдента с степенями свободы.
– доверительная вероятность
– объем выборки
·
– квантиль распределения Хи-квадрат с степенями свободы.
– доверительная вероятность
– объем выборки
Скрипт для проведения моделирования:
clc;
close all;
n=[10,20,50,100,1000];
M=1;
D=4;
q=[0.9, 0.95];
X_=zeros(1,5);
S2=zeros(1,5);
%Для интервалов с доверительной вероятностью 0.9
X_9=zeros(2,5);
S2_9=zeros(2,5);
%Для интервалов с доверительной вероятностью 0.95
X_95=zeros(2,5);
S2_95=zeros(2,5);
for i=1:5
x=normrnd(M,D,1,n(i));
X_(i)=mean(x);
S2(i)=std(x)^2
end
for i=1:5
X_9(1,i) = X_(i)-tinv((1+q(1))/2, n(i)-1)*S2(i)/sqrt(n(i));
X_9(2,i) = X_(i)+tinv((1+q(1))/2, n(i)-1)*S2(i)/sqrt(n(i));
X_95(1,i) = X_(i)-tinv((1+q(2))/2, n(i)-1)*S2(i)/sqrt(n(i));
X_95(2,i) = X_(i)+tinv((1+q(2))/2, n(i)-1)*S2(i)/sqrt(n(i));
S2_9(1,i) = S2(i)*(n(i)-1)/chi2inv((1+q(1))/2,n(i)-1);
S2_9(2,i) = S2(i)*(n(i)-1)/chi2inv((1-q(1))/2,n(i)-1);
S2_95(1,i) = S2(i)*(n(i)-1)/chi2inv((1+q(2))/2,n(i)-1);
S2_95(2,i) = S2(i)*(n(i)-1)/chi2inv((1-q(2))/2,n(i)-1);
end
semilogx (n, S2_9(1,:),'g+',n, S2_95(1,:),'r*', n, S2, 'bx');
xlabel('Объем выборки');
ylabel('S^2');
legend('Доверительный уровень=0.9','Доверительный уровень=0.95', 'Точечная оценка');
hold on
semilogx (n, S2_9(2,:),'g+', n, S2_95(2,:),'r*');
grid
figure
semilogx (n, X_9(1,:),'g+',n, X_95(1,:),'r*', n,X_,'bx');
xlabel('Объем выборки');
ylabel('M');
legend('Доверительный уровень=0.9','Доверительный уровень=0.95', 'Точечная оценка');
hold on
semilogx (n, X_9(2,:),'g+', n, X_95(2,:),'r*');
grid
Рис.1.1. Точечные и интервальные оценки математического ожидания для нормально распределенных чисел с (0,1) при различных объемах выборки
Рис.1.2. Точечные и интервальные оценки дисперсии для нормально распределенных чисел с (0,1) при различных объемах выборки
Рис.1.3. Точечные и интервальные оценки математического ожидания для нормально распределенных чисел с (0,4) при различных объемах выборки
Рис.1.4. Точечные и интервальные оценки дисперсии для нормально распределенных чисел с (0,4) при различных объемах выборки
Рис.1.5. Точечные и интервальные оценки математического ожидания для нормально распределенных чисел с (1,4) при различных объемах выборки
Рис.1.6. Точечные и интервальные оценки дисперсии для нормально распределенных чисел с (1,4) при различных объемах выборки
2. Определить объемы выборки, необходимые для получения доверительного интервала математического ожидания, равного 0,1 при доверительном уровне . Провести моделирование для полученного значения объема выборки.
Объем выборки для оценки математического ожидания:
Скрипт для решения уравнения в MATLAB:
clc
q=[0.9, 0.95];
X_9=zeros(2,1);
X_95=zeros(2,1);
M=0;
D=1;
h=0.1;
n_90=(D/(h/2)^2)*(1.282)^2
x=normrnd(M,D,1,n);
Xsr=mean(x);
S2=std(x)^2;
X_9_l = Xsr-tinv((1+q(1))/2, n-1)*S2/sqrt(n);
X_9_h = Xsr+tinv((1+q(1))/2, n-1)*S2/sqrt(n);
interval_90=abs(X_9_l)+abs(X_9_h)
n_95=(D/(h/2)^2)*(1.645)^2
x=normrnd(M,D,1,n);
Xsr=mean(x);
S2=std(x)^2;
X_95_l = Xsr-tinv((1+q(2))/2, n-1)*S2/sqrt(n);
X_95_h =Xsr+tinv((1+q(2))/2, n-1)*S2/sqrt(n);
interval_95=abs(X_95_l)+abs(X_95_h)
Результат:
n_90 =
657.4096
Warning: Size vector should be a row vector with integer elements.
interval_90 =
0.1008
n_95 =
1.0824e+003
Warning: Size vector should be a row vector with integer elements.
interval_95 =
0.1178
3. Провести моделирование генерации вектора нормально-распределенных чисел при размерности 2 и нулевом математическом ожидании для следующих значений корреляционных матриц:
, , , .
Построить оценки заданной корреляционной матрицы и выяснить зависимость оценок от объема выборки.
Построить доверительные интервалы для оценки коэффициента корреляции в зависимости от объема выборки , при доверительном уровне .
Графики, иллюстрирующие последовательности случайных чисел и плотности их распределения НЕ приводить.
Многомерное нормальное распределение вектора:
где mi – математическое ожидание хi
С – ковариационная матрица
Это распределение моделируется с помощью линейного преобразования:
X=Ay+mx
Матрица A определяется условием С = ААТ, где А – нижняя треугольная матрица.
y – вектор с распределением N(O,E)
Приближенный доверительный интервал для коэффициента корреляции двумерного нормального распределения, коэффициент корреляции неизвестен:
– оценка .
,
,
Скрипт для решения в MATLAB:
clc;
close all;
%10й вариант r=0.13
r=0;
%r=0.13;
%r=0.87;
%r=-0.87;
R=[1,r;r,1];
N=[10,20,50,100,1000];
a=[0.9,0.95];
ccof=zeros(1,5);%оценка корреляционной матрицы
R_9=zeros(2,5);%доверительные интервал для a=0.9
R_95=zeros(2,5);%доверительные интервал для a=0.95
A=(chol(R))'
for i=1:5
z1=zeros(N(i),2); z2=z1;
for j=1:N(i)
x1=randn(2,1); z1(j,:)=x1';
x2=A*x1; z2(j,:)=x2';
end
r2=cov(z2);
cor_cof=r2(1,2)/sqrt(r2(1,1)*r2(2,2));
ccof(i)=cor_cof;
z=1/2*log((1+cor_cof)/(1-cor_cof));
d=norminv((1+a(1))/2)*sqrt(1/(N(i)-3));
R_9(1,i)=(exp(2*z-2*d)-1)/(exp(2*z-2*d)+1);
R_9(2,i)=(exp(2*z+2*d)-1)/(exp(2*z+2*d)+1);
d=norminv((1+a(2))/2)*sqrt(1/(N(i)-3));
R_95(1,i)=(exp(2*z-2*d)-1)/(exp(2*z-2*d)+1);
R_95(2,i)=(exp(2*z+2*d)-1)/(exp(2*z+2*d)+1);
end
semilogx (N, R_9(1,:),'g+',N, R_95(1,:),'r*', N, ccof, 'bx');
xlabel('Объем выборки');
ylabel('Оценка коэффициента корреляции');
legend('Доверительный уровень=0.9','Доверительный уровень=0.95', 'Точечная оценка');
hold on
semilogx (N, R_9(2,:),'g+',N, R_95(2,:),'r*');
grid
Рис.3.1. Точечные и интервальные оценки коэффициента корреляции при различных объемах выборки (r=0)
Рис.3.2. Точечные и интервальные оценки коэффициента корреляции при различных объемах выборки (r=0.13)
Рис.3.3. Точечные и интервальные оценки коэффициента корреляции при различных объемах выборки (r=0.87)
Рис.3.4. Точечные и интервальные оценки коэффициента корреляции при различных объемах выборки (r=-0.87)
4. Провести моделирование генерации случайного процесса, представленного уравнением авторегрессии 1 порядка. Определить оценку коэффициента авторегрессии a1 для 0,3 и 0,75
Уравнение авторегрессии:
,
p – порядок авторегрессии
Уравнение авторегрессии 1-го порядка:
Скрипт для моделирования в Matlab:
clc;
close all;
N=1000;
%a1= 0.3;
a1=0.75;
Mx=0;
Sigma=1;
Beta=Sigma*sqrt(1-a1^2);
X =zeros(1, N);
prevX =0;
for i=1:N
cX = Mx + a1*(prevX-mx) + Beta*randn;
X(1,i)=cX;
prevX =cX;
end
r=covf2(X', 5);
ocenka_a1=r(2)
plot(X)
grid
Рис. 4.1. Процесс авторегрессии при а1 = 0,3
ocenka_a1 =
0.2793
Рис. 4.2. Процесс авторегрессии при а1 = 0,75
ocenka_a1 =
0.7615
5. Для каждого коэффициента авторегрессии для каждого коэффициента авторегрессии c целью получения процесса авторегрессии 2 порядка, исходя из условия стационарности случайного процесса
Уравнение авторегрессии второго порядка:
,
,
Процесс стационарен, если
Для а1 = {0,3; 0,75} выберем а2 = {0,2; 0,1}.
6. Провести моделирование генерации случайного процесса, представленного уравнением авторегрессии 2 порядка. Определить оценку коэффициентов авторегрессии и
Скрипт Matlab
clc;
close all;
N= 10000;
%a1= 0.3;
%a2=0.2
a1=0.75;
a2=0.1;
Mx=0;
Sigma=1;
Beta=sqrt(Sigma^2*(1+a2)*((1-a2)^2-a1^2)/(1-a2));
X=zeros(1,N);
x0=0;
x1=0;
for i=1:N
x= Mx+a1*(x1-Mx)+a2*(x0-Mx)+Beta*randn;
X(1,i)=x;
x0=x1;
x1=x;
end
r=arcov(X(1:N)',2);
ocenka_a1=-r(2)
ocenka_a2=-r(3)
plot(X)
grid
Рис. 6.1. Процесс авторегрессии 2го порядка при а1 = 0,3 и а2=0.2
ocenka_a1 =
0.3016
ocenka_a2 =
0.2101
Рис. 6.2. Процесс авторегрессии 2го порядка при а1 = 0,75 и а2=0.1
ocenka_a1 =
0.7267
ocenka_a2 =
0.1332
Выводы
В данной работе проводилось моделирование и исследование случайных
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.