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

ПР1_Заболотников_9373

.pdf
Скачиваний:
2
Добавлен:
20.06.2023
Размер:
887.53 Кб
Скачать

СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ

1.

База

данных

//

Kaggle.

URL:

https://www.kaggle.com/jeanmidev/smart-meters-in-london/version/11 (дата

обращения: 11.09.2021)

11

ПРИЛОЖЕНИЕ А

ПРОГРАММНЫЙ КОД (ЯЗЫК ПРОГРАММИРОВАНИЯ – MATLAB)

%%Выборка clear; clc; grid on;

SAMPLE = [97 102 83 90 102 109 108 98 107 53 54 77 ...

94 84 212 71 105 98 79 90 62 108 153 69 60 58 ...

91 64 97 75 95 154 242 295 87 94 203 22 96 103 ...

138 140 138 89 20 81 30 72 112 158 125 36 77 154 ...

107 99 44 47 120 108 115 75 97 44 78 110 101 98 ...

105 84 73 108 106 106 107 105 110 98 72 83 87 79 ...

107 109 113 110 100 92 81 75 93 123 139 115 97 69 ...

49 108 166 69 123 147 42 75 117 103 98 98 90 99 113];

%%Построение интервалов

N = 111;

MAX = max(SAMPLE); MIN = min(SAMPLE);

amplitude = MAX - MIN; amount_of_gaps = 1 + ceil(log2(N));

gap_length = amplitude / amount_of_gaps; GAPS = randi(1, N, 2);

GAPS(1, 1) = MIN - 0.5 * gap_length; GAPS(1, 2) = GAPS(1, 1) + gap_length; for i = 2 : amount_of_gaps

for j = 1 : 2 if(j == 2)

GAPS(i, j) = GAPS(i, j - 1) + gap_length; else

GAPS(i, j) = GAPS(i - 1, j + 1); end;

end;

end;

while(GAPS(i, 2) < MAX) i = i + 1;

for j = 1 : 2 if(j == 2)

GAPS(i, j) = GAPS(i, j - 1) + gap_length; else

GAPS(i, j) = GAPS(i - 1, j + 1); end;

end;

end; amount_of_gaps = i;

%% Построение ранжированного ряда

SORTED = sort(SAMPLE); amount_of_diff_elements = 1; for i = 2 : N

if(SORTED(i) ~= SORTED(i - 1))

amount_of_diff_elements = amount_of_diff_elements + 1;

end; end;

12

%% Построение вариационного ряда

VARIATION = randi(1, 3, amount_of_diff_elements); i = 0;

j = 1;

while i ~= (N - 1) i = i + 1;

VARIATION(1, j) = SORTED(i); while(SORTED(i) == SORTED(i + 1))

VARIATION(2, j) = VARIATION(2, j) + 1; i = i + 1;

end;

VARIATION(3, j) = VARIATION(2, j) / N; j = j + 1;

end

if(SORTED(N - 1) ~= SORTED(N))

VARIATION(1, amount_of_diff_elements) = SORTED(N); VARIATION(2, amount_of_diff_elements) = 1; VARIATION(3, amount_of_diff_elements) = 1 / N;

end;

%%Построение интервального ряда

GAPS_ROW = randi(1, 4, N); j = 1;

for i = 1 : amount_of_gaps GAPS_ROW(1, i) = GAPS(i, 1); GAPS_ROW(2, i) = GAPS(i, 2); GAPS_ROW(3, i) = 0;

while(VARIATION(1, j) > GAPS_ROW(1, i) && VARIATION(1, j) <= GAPS_ROW(2, i))

GAPS_ROW(3, i) = GAPS_ROW(3, i) + VARIATION(2, j); j = j + 1;

if(j > amount_of_diff_elements) break;

end;

end;

GAPS_ROW(4, i) = GAPS_ROW(3, i) / N;

end;

%%Построение полигона абсолютных частот интервального ряда grid on;

GAP_MIDS = randi(1, 1, amount_of_gaps); GAP_FREQS = randi(1, 1, amount_of_gaps); for i = 1 : amount_of_gaps

GAP_MIDS(i) = GAPS_ROW(1, i) + 0.5 * gap_length; GAP_FREQS(i) = GAPS_ROW(4, i);

end;

plot(GAP_MIDS, GAP_FREQS, '-*'); hold on;

%%Построение эмперической Функции распределения

hold on; grid on;

ACC_FREQS = randi(1, 1, amount_of_gaps); ACC_FREQS(1) = GAPS_ROW(4, 1);

for i = 2 : amount_of_gaps

ACC_FREQS(i) = ACC_FREQS(i - 1) + GAPS_ROW(4, i);

13

end;

F_EMP = randi(1, 1, amount_of_gaps); for i = 1 : amount_of_gaps

F_EMP(i) = ACC_FREQS(i);

end;

plot([10 GAP_MIDS(1)], [0 F_EMP(1)], 'blue'); plot([GAP_MIDS(amount_of_gaps) (GAP_MIDS(amount_of_gaps) + 10)], [F_EMP(amount_of_gaps) 1], 'blue');

plot(GAP_MIDS, F_EMP, '-*blue');

%%Построение кумуляты grid on;

ACCUM_FREQS = randi(1, 1, amount_of_gaps); ACCUM_FREQS(1) = GAPS_ROW(4, 1);

for i = 2 : amount_of_gaps

ACCUM_FREQS(i) = ACCUM_FREQS(i - 1) + GAPS_ROW(4, i);

end;

plot(GAP_MIDS, ACCUM_FREQS, '-*'); hold on;

%%Построение гистограммы

grid on;

for i = 1 : amount_of_gaps

rectangle('Position', [GAPS_ROW(1, i) 0 gap_length GAPS_ROW(4, i)/gap_length], 'FaceColor', [0.9290 0.6940 0.1250]);

end;

14