Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
A. Встановлення розподілу за експериментальними данимиСодержание книги
Поиск на нашем сайте
Встановлення статистичного розподілу за експериментальними даними потрібно для їх якісного аналізу, і для обчислень з цим розподілом. Для встановлення функцій статистичного опису вибірки розроблено програму create_rozpodil, яка приймає 4 параметри. Це sample_a – масив вибірки, nazva_pok_a – назва вибірки, idd_view – признак, чи виводити графіки шуканих функцій, idd_save – признак, чи зберігати ці графіки у файли. В програмі create_rozpodil вирахувано розподіл – залежність кількості випадків від величини елементів у вибірці, закон розподілу (густину ймовірності) елементів у вибірці, функцію розподілу (інтеграл від густини ймовірності). Ця програма повертає hist_xxi ‑ вузли визначення (дискретно задані аргументи) шуканих функцій, hist_yni_fu ‑ відповідні дискретні значення закону розподілу (кількості випадків); hist_yni_fu ‑ дискретні значення закону розподілу (густини ймовірності), hist_yfi_fu ‑ дискретні значення функції розподілу. Ця функція також повертає об'єкти сплайн-апроксимації цих трьох функцій, і параметр rez_one – який відображає точність вирахування закону розподілу. При успішному встановленні закону розподілу цей параметр має значення, близьке до одиниці. Текст функції create_rozpodil подано нижче.
%-------------------- Програма встановлення розподілу -------------------------- function [hist_xxi,... % аргументи у вузлах інтерполяції hist_yyi_fu,... % дискрентні значення розподілу (кільк. випадків) hist_yni_fu,... % дискренті значення закону розподiлу hist_yfi_fu,... % дискрентні значення функцiї розподiлу hist_yyi_sp,... % сплайн розподілу (кількості випадків) hist_yni_sp,... % сплайн закон розподiлу hist_yfi_sp,... % сплайн функцiї розподiлу rez_one ] =... % контроль точності закону розподілу == 1 create_rozpodil (sample_a, nazva_pok_a, idd_view, idd_save)
%------------------------------------------------------------------------------ % create_rozpodil - Програма створеня масивів і сплайнів, які описують % % Функцція create_rozpodil приймає статистичну вибірку і вираховує для неї % розподіл, густину ймовірності та функцію ймовірності на області, % обмеженій найменшим та найбільшим значенням елементів у вибірці. % % Вхiднi параметри: % sample_a - Вибірка, вектор-стовпчик розміром n*1 % nazva_pok_a - Назва вибірки % idd_view - Признак, чи виводити графіки при зветранні до функції % idd_save - Признак, чи зберігати графіки у файл % % Вихiднi параметри: % hist_xxi - Масив (стовпчик) значення аргументу у вузлах інтерполяції % hist_yyi_fu - Масив (стовпчик) значень розполіду (кількості % випадків) у вузлах інтерполяції % hist_yni_fu - Масив (стовпчик) значень закону розполіду (густини % ймовірності) у вузлах інтерполяції % hist_yfi_fu - Масив (стовпчик) значень функції розполіду (інтегралу % від густини ймовірності) у вузлах інтерполяції % hist_yyi_sp - Об’єкт сплайн-апроксимації розполіду (кількості % випадків) % hist_yni_sp - Об’єкт сплайн-апроксимації закону розполіду % (густини ймовірності) % hist_yfi_sp - Об’єкт сплайн-апроксимації розполіду функції розполіду % (інтегралу від густини ймовірності) % rez_one - Критерій точності приведення розподілу до % гусини ймовірності. Це інтеграл від густини ймовірності. % Має дорівнювати одиниці. Для контролю точності обчислень. % % Спеціальпні зауваження: % При вирахуванні значення аргументів у вузлах інтерполяції вжито явну їх % кількість NNN. Якість встановленого закону розподілу залежить від кількості % відрізнів MMM, на які розбито ширину вибірки. Параметр MMM краще підбирати % експериментально. Оскільки в практичних задачах часто трапляться малі % вибірки, тому в сплайн-інтерполяції вжито нийнижчу (третю) з прийнятних % степенів сплайна. Такж для апроксимації розподілу вжито функцію pchip. %--------------------------------------------------------------------------
% Розмір вибірки [size_row_sample_a, size_col_sample_a] = size(sample_a);
NNN = 100; % Кількість вузлів інтерполяції MMM = 5; % Кількість стовпчиків в гісограмі
% Утворення дискретного розподілу (залежність кількості випадків від значення) [hist_yy1, hist_xx1] = hist (sample_a, MMM); % MMM - кількіст стовпчикiв
% На області визначення розподілу вибираємо вузли інтерполяції hist_xxi = (hist_xx1(1): (hist_xx1(end)-hist_xx1(1))/NNN: hist_xx1(end))';
% Масив - апроксимація розподілу (кількості випадків) hist_yy1_tmp = pchip (hist_xx1, hist_yy1, hist_xxi); % З функції pchip
% Сплайн розподілу (кількості випадків) hist_yyi_sp = spapi (3, hist_xxi, hist_yy1_tmp);
% Масив значень значень сплайна розподілу (кількості випадків) hist_yyi_fu = fnval (hist_yyi_sp, hist_xxi); % за сплайном 3-го степеня
% Грааниці бласті визначення розподілу (сплайна, що його апроксимує) board_1 = [min(hist_xx1), max(hist_xx1)];
% Iнтеграл вiд сплайна розподілу (кількості випадків) на області визначення sss_1 = diff (fnval (fnint (hist_yyi_sp), board_1)); % Коефіціент нормування.
% Закон розподілу визначаємо, ділячи розподіл (клькість випадків) % на коефіцієнт нормування (площу від цього розподілу) hist_yni_fu = hist_yyi_fu./ sss_1;
% Сплайн закону розподілу (густини ймовірності) hist_yni_sp = spapi (3, hist_xxi, hist_yni_fu);
% Інтеграл від закону розподілу на області його визначення == 1 rez_one = diff (fnval (fnint (hist_yni_sp), [min(hist_xxi), max(hist_xxi)]));
% Сплайн Функцiї розподiлу знаходимо, інтгеруючи сплайн закону розподілу hist_yfi_sp = fnder (hist_yni_sp, -1);
% Масив значеннь функції розподілу у вузлах інтеополяції hist_yfi_fu = fnval (hist_yfi_sp, hist_xxi);
%-------------------------------------------------------------------------- % Якщо задно признак виводити графіки if idd_view ff1 = figure('Name', 'hist', 'Position',[180 230 755 340]); % Явно задані ff2 = figure('Name', 'hist', 'Position',[180 230 755 340]); % розміри вікон ff3 = figure('Name', 'hist', 'Position',[180 230 755 340]); % з графіками
ax1 = axes('Parent',ff1); ax2 = axes('Parent',ff2); ax3 = axes('Parent',ff3);
box(ax1, 'on'); hold(ax1, 'all'); box(ax2, 'on'); hold(ax2, 'all'); box(ax3, 'on'); hold(ax3, 'all');
% Графік розподiлу (Залежність кількість випадків від величин) hnd1 = plot (ax1, hist_xxi, hist_yyi_fu);
% Графiк закону розподiлу (густина ймовiрностi) hnd2 = plot (ax2, hist_xxi, hist_yni_fu);
% Графiк функції розподiлу (інтеграл від густини ймовірності) hnd3 = plot (ax3, hist_xxi, hist_yfi_fu);
title (ax1, ' Розподiл', 'FontName', 'Arial Narrow'); % Назва title (ax2, 'Густина ймовiрностi ', 'FontName', 'Arial Narrow'); title (ax3, 'Функцiя розподiлу', 'FontName', 'Arial Narrow');
xlabel(ax1, nazva_pok_a, 'FontName','Arial Narrow'); % Назва xlabel(ax2, nazva_pok_a, 'FontName','Arial Narrow'); % осі xlabel(ax3, nazva_pok_a, 'FontName','Arial Narrow'); % аргументів
ylabel(ax1, 'Кiлькiсть випадкiв', 'FontName','Arial Narrow'); % Назва ylabel(ax2, 'Густина ймовiрностi', 'FontName','Arial Narrow'); % осей ylabel(ax3, 'Функцiя розподiлу', 'FontName','Arial Narrow'); % функцій
set(hnd1(1),'LineWidth',2, 'Color', [0 0 0], 'LineStyle', '-'); % Явно задані set(hnd2(1),'LineWidth',2, 'Color', [0 0 0], 'LineStyle', '-'); % опис ліній set(hnd3(1),'LineWidth',2, 'Color', [0 0 0], 'LineStyle', '-'); % на графіках
% Якщо задано признак зберігати графіки у файл if idd_save set (ff1,'PaperPositionMode','auto'); % Прийняти явно задані set (ff2,'PaperPositionMode','auto'); % розміри зображень set (ff3,'PaperPositionMode','auto'); % при збереженні
saveas(ff1, 'Rozpodil_demo.jpg'); % Явно задані назви файлів saveas(ff1, 'Rozpodil_demo.fig');
saveas(ff2, 'zakon_rozpodilu_demo.jpg'); saveas(ff2, 'zakon_rozpodilu_demo.fig');
saveas(ff3, 'fia_rozpodilu_demo.jpg'); saveas(ff3, 'fia_rozpodilu_demo.fig');
end; % if idd_save
end; % if idd_view %-------------------- Кінець програми вирахування розп оділу -----------------
Для встановлення розподілу достатньо задати значення вибірки, її назви та викликати програму вирахування розподілу.
%-------------- Приклад звертання до програми вирахування розподілу ----------- % Вибiрка, для якої порiбно встановити статистичний розподiл sample_a = [... 26; 20; 32; 19; 24; 32; 33; 38; 26; 28; 28; 26; 37; 29; 21; 26; 21;... 25; 17; 23; 30; 44; 36; 20; 23; 22; 23; 24; 22; 25; 25; 17; 24; 23;... 34; 22; 23; 22; 35; 23; 35; 30; 30; 26; 30; 24; 27; 20; 25; 24; 24;... 21; 18; 23; 24; 17; 19; 21; 23; 28; 28; 32; 18; 19; 27; 28; 22; 24;... 24; 19; 27; 45; 27; 27; 27; 22; 32; 27; 24; 26; 26; 26; 21; 23; 23;... 25; 26; 27; 28; 33; 29; 31; 31; 24; 30; 33; 26; 26; 27; 25; 29; 23;... 24; 23; 31; 26; 27; 23; 25];
% Назва вибiрки name_sample_a = 'Вiк матері';
% Виклик процедури, яка вираховує статистичний розподіл [xxxi, rozp_fu, rozn_fu, rozf_fu, rozp_sp, rozn_sp, rozf_sp, idd_ones ] =... create_rozpodil (sample_a, name_sample_a, 1, 1);
% Вивід показника точності idd_ones %-------------- Кінець прикладу ----------------------------------------------
Рис. А.1. Графік густини ймовірності, отриманий функцією create_rozpodil.
|
||||
Последнее изменение этой страницы: 2016-06-19; просмотров: 363; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.254.72 (0.007 с.) |