Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Міністерство освіти і науки, молоді та спорту України
Національний технічний університет України
«Київський політехнічний інститут»
Радіотехнічний факультет
Кафедра радіоконструювання та виробництва радіоапаратури
Лабораторна робота №2
з курсу «Автоматизація обробки технічної інформації»
«Основи статистичних розрахунків»
Перевірили: |
Виконали: студенти гр. РБ-31м |
|
асистент Євко І. Г. |
Ліснічук А.С. Євтушок В.В. |
|
« __ » ______________ 2013р. |
« __ » ______________ 2013р. |
Київ 2013р.
Мета роботи: набуття навичок проведення основних статистичних розрахунків в пакеті MATLAB: генерації випадкових чисел за визначеним законом розподілення, оцінювання параметрів вибірки випадкових чисел, перевірки статистичних гіпотез.
Хід роботи
Лістинг програми
clc; close all; clear;
% Задаем параметры выборок: количество элементов в выборке, математическое
% ожидание, та среднеквадратическое отклонение (СКО) для Гауссовского
% распределения и ? для Релеєвского распределения.
N = [20 100]';
mu = 1.7;
sigma = 3;
b = 3;
% Тест Колмогорова-Смирнова на непротиворечие распредиления значений
% генеральной совокупности значений случайной величины заданному закону.
alpha = 0.01; % критерий правдоподобия
% Задаем пустые массивы ячеек, которые дальше будут использоватся.
% Массив ячеек векторов диапазона случайных величин
x = cell(length(N), 1);
% Массив ячеек векторов диапазона случайных величин
% для проверки в тестах Gauss_vs_Raylay и Raylay_vs_Gauss)
xf = cell(length(N), 1);
% Массив ячеек векторов случайных величин
y = cell(length(N), 1);
% Массив ячеек структур, в которых будут хранится точечные и интервальные
% оценки случайных распределений
D = cell(length(N), 1);
% Массив ячеек для коммулятивных функций распределения (коммулянт)
% (Коммулянта - интеграл от плотности распределения)
cdf = cell(length(N), 1);
% Массив ячеек для таблицы результатов теста Колмогорова-Смирнова
h = cell(length(N), 1);
for k = 1:length(N)
% Генерируем 2 вектора с Гауссовским и Релеевским законом распредиления
y{k}(:,1) = normrnd(mu, sigma, [N(k) 1]);
y{k}(:,2) = raylrnd(b, [N(k) 1]);
% Проводим точечные и интервальные оценки параметров этих случайных
% распредилений
[muhat,sigmahat,muci,sigmaci] = normfit(y{k}(:,1), alpha);
[phat,pci] = raylfit(y{k}(:,2), alpha);
% И все это дело пихаем в структуру. Для каждого обьема выборки по
% одной структуре.
D{k} = struct('R', {struct('phat', phat, 'pci', pci)},...
'N', {struct('muhat', muhat, 'sigmahat', sigmahat,...
'muci', muci, 'sigmaci', sigmaci)});
% Формируем векторы диапазонов значений для коммулянт
x{k}(:,1) = linspace(min(y{k}(:,1)), max(y{k}(:,1)), N(k));
x{k}(:,2) = linspace(min(y{k}(:,2)), max(y{k}(:,2)), N(k));
% Формируем сами коммулянты
cdf{k}(:,1:2) = [x{k}(:,1), normcdf(x{k}(:,1), mu, sigma)];
cdf{k}(:,3:4) = [x{k}(:,2), raylcdf(x{k}(:,2), b)];
% Ну и, собственно проводим тест Колмогорова-Смирнова
% Gauss_vs_Gauss
h{k}(:,1) = kstest(y{k}(:,1), cdf{k}(:, 1:2), alpha);
% Raylay_vs_Raylay
h{k}(:,2) = kstest(y{k}(:,2), cdf{k}(:, 3:4), alpha);
%-------------------А-теперь-по-молдавански!!!-------------------------
% Формируем векторы диапазонов значений для коммулянт
xf{k}(:,1) = linspace(min(y{k}(:,2)), max(y{k}(:,2)), N(k));
xf{k}(:,2) = linspace(min(y{k}(:,1)), max(y{k}(:,1)), N(k));
% Формируем сами коммулянты
cdf{k}(:,1:2) = [xf{k}(:,1), normcdf(xf{k}(:,1), mu, sigma)];
cdf{k}(:,3:4) = [xf{k}(:,2), raylcdf(xf{k}(:,2), b)];
% Gauss_vs_Raylay
h{k}(:,3) = kstest(y{k}(:,1), cdf{k}(:, 3:4), alpha);
% Raylay_vs_Gauss
h{k}(:,4) = kstest(y{k}(:,2), cdf{k}(:, 1:2), alpha);
end
%%
% Результати тест Колмогорова-Смирнова. Каждой строке отвечает определенный
% обьем выборки (первая строка - виборка 20 элементов, вторая - 100).
H = double(cell2mat(h));
fprintf('%5s %20s %20s %20s %20s \r\n',...
'N', 'Gauss_vs_Gauss', 'Rayleigh_vs_Rayleigh',...
'Gauss_vs_Rayleigh', 'Rayleigh_vs_Gauss');
fprintf('%5d %15d %17d %20d %20d \r', N(1), H(1,:))
fprintf('%5d %15d %17d %20d %20d \r', N(2), H(2,:))
%% Графические построения
nbits = 5; % количество столбцов в гистограмме
%--------------------------------------------------------------------------
figure('Name', ['Выборка из N = ' num2str(N(1))], 'NumberTitle', 'off',...
'units', 'normalized', 'position', [.1 .2 .4 .7])
subplot(211); hist(y{1}(:,1), nbits, 'normal'); grid on
xlim([mu-3*sigma mu+3*sigma])
title({'Гістограмма нормального закону розподілу';...
['Об''єм виборки N = ' num2str(N(1))]},...
'fontsize', 12)
xlabel('X'); ylabel('P(X)');
subplot(212); hist(y{1}(:,2), nbits, 'rayleigh'); grid on
xlim([0 3*b])
title({'Гістограмма релеївского закону розподілу';...
['Об''єм виборки N = ' num2str(N(1))]},...
'fontsize', 12)
xlabel('X'); ylabel('P(X)');
%--------------------------------------------------------------------------
figure('Name', ['Выборка из N = ' num2str(N(2))], 'NumberTitle', 'off',...
'units', 'normalized', 'position', [.51 .2 .4 .7])
subplot(211); hist(y{2}(:,1), nbits, 'normal'); grid on
xlim([mu-3*sigma mu+3*sigma])
title({'Гістограмма нормального закону розподілу';...
['Об''єм виборки N = ' num2str(N(2))]},...
'fontsize', 12)
xlabel('X'); ylabel('P(X)');
subplot(212); hist(y{2}(:,2), nbits, 'rayleigh'); grid on
xlim([0 3*b])
title({'Гістограмма релеївского закону розподілу';...
['Об''єм виборки N = ' num2str(N(2))]},...
'fontsize', 12)
xlabel('X'); ylabel('P(X)');
N Gauss_vs_Gauss Rayleigh_vs_Rayleigh Gauss_vs_Rayleigh Rayleigh_vs_Gauss
20 0 0 0 1
100 0 0 1 1
>>
α |
N |
muhat |
sigmahat |
musi |
Sigmaci |
0.05 |
20 |
0 |
0 |
0 |
1 |
0.01 |
20 |
0 |
0 |
1 |
1 |
0.05 |
100 |
1.890402 |
3.3185988 |
1.01880418 |
2.800822 |
0.01 |
100 |
α = 0.01
N = 20
Емпіричний закон \ Теоретичний закон |
Релеєвський |
Нормальний |
Релеєвський |
0 |
1 |
Нормальний |
1 |
0 |
N = 100
Емпіричний закон \ Теоретичний закон |
Релеєвський |
Нормальний |
Релеєвський |
0 |
1 |
Нормальний |
1 |
0 |
α = 0.05
N = 20
Емпіричний закон \ Теоретичний закон |
Релеєвський |
Нормальний |
Релеєвський |
0 |
0 |
Нормальний |
1 |
0 |
N = 100
Емпіричний закон \ Теоретичний закон |
Релеєвський |
Нормальний |
Релеєвський |
0 |
1 |
Нормальний |
1 |
0 |
Висновок: в лабораторній роботі було досліджено можливості системи MATLAB в контексті генерації псевдовипадкових послідовностей з законами розподілу Релея та Гауса. Досліджено вплив обєму вибірки та критерію значущості на результати тесту Колмогорова-Смирнова.
А саме: при збільшенні обєму вибірки ймовірність правильного результату тесту Колмогорова-Смирнова збільшується.