Вернуться на страницу <Методические разработки>
В начало | Л.р.1 | Л.р.2 | Л.р.3 | Л.р.4 | Л.р.6 | Л.р.7 | Л.р.8
| Л.р.9 | Л.р.10 | Л.р.11 | Л.р.12 | Л.р.13 | Л.р.14 | Л.р.15
Лабораторная работа 5
Моделирование повторения испытаний
Построим модель опыта с бросанием монеты: функция rand(0..1) генерирует в "случайном" порядке числа 0 и 1, которые означают наступление случайных событий "герб" и "решетка" соответственно. Для проведения опыта напишем процедуру, которая возвращает частоту выпадения герба gerb/k в k опытах:
> ### WARNING: `gerb` is implicitly declared local
### WARNING: `i` is implicitly declared local
### WARNING: `rn` is implicitly declared local
ex_stat:=proc(k):gerb:=0:for i from 1 to k do rn:=rand(0..1):if rn()=0 then gerb:=gerb+1 fi: od:gerb/k;end;
Warning, `\`gerb\` is implicitly declared local`
Warning, `\`i\` is implicitly declared local`
Warning, `\`rn\` is implicitly declared local`
Если вероятность наступления события равняется p, 1-p=q - вероятность противоположного события, то согласно теореме Чебышева вероятность отклонения относительной частоты k/n наступления события в n испытаниях от теоретической вероятности p менее, чем на >0, удовлетворяет следующей оценке:
Например, для p=0.5, , n=100 оценим вероятность отклонения относительной частоты наступления события (выпадение "герба") теоретической вероятности p=0.5
> n:=100:p:=0.5:q:=0.5:epsilon:=0.2:1-p*q/(n*epsilon^2);
Таким образом, искомая вероятность будет не менее, чем 0.9375.
В опыте из 100 бросаний монеты вычислим относительную частоту s выпадения "герба" и величину ее отклонения от теоретической вероятности p
> n:=100:s:=ex_stat(n);abs(0.5-s);
В проделанном опыте величина отклонения относительной частоты от вероятности составила 0.11<0.2. Повторим опыт (бросание монеты 100 раз) в цикле 10 раз
> for i from 1 to 10 do s:=ex_stat(n):abs(0.5-s):od;
Во всех 10 опытах отклонение относительной частоты от теоретической вероятности ни разу не превысило 0.2.
Увеличим повторение испытаний до 1000
> n:=1000;s:=ex_stat(n);abs(0.5-s);
Найдем нижнюю границу оценки вероятности отклонения относительной частоты от вероятности не более чем на 0.09
> epsilon:=0.09:1-p*q/(n*epsilon^2);
Таким образом, мы увеличили число повторений до 1000, уменьшили отклонение , а искомая вероятность оказалась достаточно близкой к 1. Повторим опыт в цикле 5 раз
> for i from 1 to 5 do s:=ex_stat(n);abs(0.5-s);od;
Во всех 5 опытах относительная частота отклонилась от вероятности на величину, меньшую 0.09.
Задание 1 . По теореме Чебышева оцените вероятность отклонения относительной частоты от теоретической вероятности при n=10000. Проведите опыт с бросанием монеты 10000 раз. Как влияет увеличение количества испытаний на величину отклонения относительной частоты от теоретической вероятности?
Задание 2 . Постройте модель опыта с бросанием игральной кости.
Задание 3 . Пусть в урне x белых и y красных шаров. Постройте модель извлечения шара из урны с последующим возвращением (без возвращения).
Задание 4 . В лабораторной работе № 4 была предложена следующая задача: В поселке А 2500 жителей. Каждый из них примерно 6 раз в месяц ездит на поезде в город В, выбирая дни поездок независимо от остальных жителей. Какой наименьшей вместительностью должен обладать поезд, чтобы он переполнялся в среднем не чаще одного раза в 100 дней? (Поезд идет раз в сутки.)
Построим модель задачи. Процедура ex_stat1 моделирует число пасажиров в поезде по следующей схеме: генерируются случайные величины от 1 до 5. Если случайная величина =1, то житель города А становится пассажиром, так как частота поездок = 6/30.
> restart:
> ### WARNING: `pass` is implicitly declared local
### WARNING: `i` is implicitly declared local
### WARNING: `rn` is implicitly declared local
ex_stat1:=proc(k):pass:=0:for i from 1 to k do rn:=rand(1..5):if rn()=1 then pass:=pass+1 fi: od:pass;end;
Warning, `\`pass\` is implicitly declared local`
Warning, `\`i\` is implicitly declared local`
Warning, `\`rn\` is implicitly declared local`
Пусть поезд имеет вместительность 547 мест, количество дней = 150, количество жителей города А 2500. В следующей программе фиксируются случаи переполнения поезда:
> n:=150:perep:=0:for i from 1 to n do s:=ex_stat1(2500):if s>547 then perep:=perep+1:print("Пассажиров ",s):fi:od:print("Количество переполнений поезда =",perep);
Исполните опыт несколько раз. Задайте n=100, 200 и повторите опыт.
В начало | Л.р.1 | Л.р.2 | Л.р.3 | Л.р.4 | Л.р.5 | Л.р.7 | Л.р.8
| Л.р.9 | Л.р.10 | Л.р.11 | Л.р.12 | Л.р.13 | Л.р.14 | Л.р.15
Вернуться на страницу <Методические разработки>
|