Замеры коротких интервалов грубым таймером
От: RS Земля ICQ: 148844272
Дата: 05.05.03 07:28
Оценка:
1. Попроще...

Дано:
Есть некоторое действие, имеющее постоянную длительность тау. Это действие можно повторить, и оно всегда будет иметь такую длительность. Есть некоторый счетчик, значение которого увеличивается на 1 с периодом T. Требуется с наперед заданной дисперсией определить тау, если знаем Т. Ограничение: замер значения счетчика производится в таком режиме: замер, действие, замер.
Подсказка: событие увеличения счетчика на 1 и событе начала действия — независимы.

2. Посложнее...

Дано:
Есть некоторое действие, имеющее некоторую длительность тау, распределенную по нормальному закону (то есть случайная величина). Есть некоторый счетчик, значение которого увеличивается на 1 с периодом T. Требуется определить оценку мат. ожидания и дисперсии тау по результатам выполнения N замеров. Ограничение: замер значения счетчика производится в таком режиме: замер, действие, замер.
Подсказка: событие увеличения счетчика на 1 и событе начала действия — независимы.
Re: Замеры коротких интервалов грубым таймером
От: adontz Грузия http://adontz.wordpress.com/
Дата: 05.05.03 22:26
Оценка:
Здравствуйте, RS, Вы писали:

верно ли что

T < tau ?

T << tau ?
A journey of a thousand miles must begin with a single step © Lau Tsu
Re: Замеры коротких интервалов грубым таймером
От: mihoshi Россия  
Дата: 06.05.03 07:27
Оценка:
Здравствуйте, RS, Вы писали:

RS>1. Попроще...


RS>Дано:

RS>Есть некоторое действие, имеющее постоянную длительность тау. Это действие можно повторить, и оно всегда будет иметь такую длительность. Есть некоторый счетчик, значение которого увеличивается на 1 с периодом T. Требуется с наперед заданной дисперсией определить тау, если знаем Т. Ограничение: замер значения счетчика производится в таком режиме: замер, действие, замер.
RS>Подсказка: событие увеличения счетчика на 1 и событе начала действия — независимы.

Ну, это как всегда. Пускаем счетчик, повторяем действие тау. Для каждого окончания тау пишем, сколько T к этому времени прошло. Смотрим, как вилка возможных значений тау стремительно сокращается. В итоге через некоторое время знаем тау не тольуо с заданной дисперсией, но и с известной вилкой возможных значений. Причем вилка примерно равна тау/колв-во прошедших тау

RS>2. Посложнее...


RS>Дано:

RS>Есть некоторое действие, имеющее некоторую длительность тау, распределенную по нормальному закону (то есть случайная величина). Есть некоторый счетчик, значение которого увеличивается на 1 с периодом T. Требуется определить оценку мат. ожидания и дисперсии тау по результатам выполнения N замеров. Ограничение: замер значения счетчика производится в таком режиме: замер, действие, замер.
RS>Подсказка: событие увеличения счетчика на 1 и событе начала действия — независимы.
Эксперимент точно такой же, другая интерпретация результатов. Через некоторое время среднее значение тау знаем довольно точно. Чтобы узнать распределение, берем логи за разные периоды, смотрим отношение тау у Т на них, применяем формулы.

Конкретные формулы и значения — в любом ВУЗовском учебнике тервера.

Народ, что все банальности, да банальности. Давайте что-нибудь, над чем думать интересно. Не из учебника и не очевидное. Вроде той задачки про толщину льда на окошке.
Re[2]: Замеры коротких интервалов грубым таймером
От: MichaelP  
Дата: 06.05.03 11:12
Оценка: +1
Здравствуйте, mihoshi, Вы писали:


M>Ну, это как всегда. Пускаем счетчик, повторяем действие тау. Для каждого окончания тау пишем, сколько T к этому времени прошло. Смотрим, как вилка возможных значений тау стремительно сокращается. В итоге через некоторое время знаем тау не тольуо с заданной дисперсией, но и с известной вилкой возможных значений. Причем вилка примерно равна тау/колв-во прошедших тау


Более точно:
Пусть проведено N действий. Максимальная ошибка определения интервала, который продолжались действия 2T. Следовательно, если мы определим тау=(TN-T0)/N, то максимальная ошибка будет 2T/N. Т.е., при достаточном количестве повторений, мы всегда можем определить тау с заданной точностью.

Этот результат я получил быстро.

Но, задача сложнее чем кажется с первого взгляда.
Например: Для краткости обозначим тау через t, и будем все мерять в единицах времени T. Пусть t=2/3 и начало первого действия происходит чуть-чуть позже отсчета таймера. Тогда проведя 4 действия получим следующие результаты длительности действий:
0, 1, 1, 0

Если воспользоваться вышеприведенной формулой, получим: t=1/2.
Но при таком значении t мы никогда не получим такие результаты наблюдений, т.к. легко доказать, что при t=1/2 0 и 1 должны чередоваться!

Говоря другим языком, само чередование измеренных интервалов несет в себе много информации о t и обидно было бы его терять.

M>Конкретные формулы и значения — в любом ВУЗовском учебнике тервера.


Интересно было бы посмотреть этот учебник.

Со средним еще как-нибудь можно разобраться. Но дисперсия ставит меня в тупик.
Например: Если у нас измерения дают длинный ряд чередующихся 0 и 1, то мы почти наверняка можем утверждать, что среднее равно 1/2, а дисперсия 0. В тоже время оценка дисперсии по стандартным формулам дает D=1/(4*(N-1)), что, имхо, убывает несколько медленнее чем хотелось бы.


Обобщая вышесказанное, хотелось бы как-нибудь учитывать корреляцию измерений.
Re[2]: Замеры коротких интервалов грубым таймером
От: RS Земля ICQ: 148844272
Дата: 07.05.03 08:27
Оценка:
Здравствуйте, adontz, Вы писали:

A>Здравствуйте, RS, Вы писали:


A>верно ли что


A>T < tau ?


A>T << tau ?


Вообще, T — некоторое большое значение, тау — (см. далее), должно быть измерено с погрешностью, значительно меньшей, чем Т.

Что касается порядка величины тау...
В первой задаче, где тау постоянна, все можно свести к тау<T.
Во второй задаче тау имеет нормальное распределение, которое имеет, как известно, ненулевую плотность распределения вероятности на всем интервале определения. Так что даст ли что-то знание о соотношении Т/тау — я сомневаюсь. Но если хотите, считайте тау<T.
Re[3]: Замеры коротких интервалов грубым таймером
От: RS Земля ICQ: 148844272
Дата: 07.05.03 08:37
Оценка:
Здравствуйте, MichaelP, Вы писали:

MP>Но, задача сложнее чем кажется с первого взгляда.


Значительно сложнее...

MP>Например: Для краткости обозначим тау через t, и будем все мерять в единицах времени T. Пусть t=2/3 и начало первого действия происходит чуть-чуть позже отсчета таймера. Тогда проведя 4 действия получим следующие результаты длительности действий:

MP>
MP>0, 1, 1, 0
MP>


Не получим. Действия выполняются в случайные моменты времени, а не последовательно, без перерывов.

MP>Если воспользоваться вышеприведенной формулой, получим: t=1/2.

MP>Но при таком значении t мы никогда не получим такие результаты наблюдений, т.к. легко доказать, что при t=1/2 0 и 1 должны чередоваться!

А когда монетку кидаете, орел и решка у Вас чередуются?
Здесь момент начала действия относительно последнего переключения счетчика — величина случайная с равномерным распределением, так как счетчик все время тикает.

M>Конкретные формулы и значения — в любом ВУЗовском учебнике тервера.


В каком?

MP>Интересно было бы посмотреть этот учебник.


Ага.

MP>Со средним еще как-нибудь можно разобраться. Но дисперсия ставит меня в тупик.

MP>Например: Если у нас измерения дают длинный ряд чередующихся 0 и 1, то мы почти наверняка можем утверждать, что среднее равно 1/2, а дисперсия 0. В тоже время оценка дисперсии по стандартным формулам дает D=1/(4*(N-1)), что, имхо, убывает несколько медленнее чем хотелось бы.

А с чего у Вас дисперсия оказалась нулевая. Если склероз мне не изменяет, дисперсия — это мат. ожидание квадрата разности измеренной величины и ее мат. ожидания. Величина неотрицательная, и нулем она будет, если только все эксперименты дали одинаковый результат.

MP>Обобщая вышесказанное, хотелось бы как-нибудь учитывать корреляцию измерений.


Считаем их независимыми.
Re[4]: Замеры коротких интервалов грубым таймером
От: MichaelP  
Дата: 07.05.03 08:41
Оценка:
Здравствуйте, RS, Вы писали:


RS>Не получим. Действия выполняются в случайные моменты времени, а не последовательно, без перерывов.


А вот это надо было обязательно оговорить в условиях! А то сразу мысли пошли в другом направлении.
Re[3]: Замеры коротких интервалов грубым таймером
От: mihoshi Россия  
Дата: 07.05.03 09:32
Оценка:
Здравствуйте, MichaelP, Вы писали:

MP>Здравствуйте, mihoshi, Вы писали:



M>Ну, это как всегда. Пускаем счетчик, повторяем действие тау. Для каждого окончания тау пишем, сколько T к этому времени прошло. Смотрим, как вилка возможных значений тау стремительно сокращается. В итоге через некоторое время знаем тау не тольуо с заданной дисперсией, но и с известной вилкой возможных значений. Причем вилка примерно равна тау/колв-во прошедших тау


MP>Более точно:

MP>Пусть проведено N действий. Максимальная ошибка определения интервала, который продолжались действия 2T. Следовательно, если мы определим тау=(TN-T0)/N, то максимальная ошибка будет 2T/N. Т.е., при достаточном количестве повторений, мы всегда можем определить тау с заданной точностью.

MP>Этот результат я получил быстро.


MP>Но, задача сложнее чем кажется с первого взгляда.

MP>Например: Для краткости обозначим тау через t, и будем все мерять в единицах времени T. Пусть t=2/3 и начало первого действия происходит чуть-чуть позже отсчета таймера. Тогда проведя 4 действия получим следующие результаты длительности действий:
MP>
MP>0, 1, 1, 0
MP>

Ты не понял. Мы получим не 0, 1, 1, 0. А 0, 1, 2, 2. Мы иеряем сколько _всего_ прошло Т и тау
Re[4]: Замеры коротких интервалов грубым таймером
От: RS Земля ICQ: 148844272
Дата: 07.05.03 09:59
Оценка:
Здравствуйте, mihoshi, Вы писали:

M>Ты не понял. Мы получим не 0, 1, 1, 0. А 0, 1, 2, 2. Мы иеряем сколько _всего_ прошло Т и тау


Чтобы больше никого не сбивать с пути (уж извините ), я опишу условие поподробнее, на живом примере.

Есть некоторый счетчик. Пусть это будет QueryPerformanceCounter(). В Вашей проге есть кусок кода, время выполнения которого Вы хотите замерить. Вырвать его из контекста нельзя. Но повторять его вместе с контекстом можно любое количество раз. Этот кусок мы обрамляем вызовами QueryPerformanceCounter и каждый раз определяем разницу между двумя его показаниями: в конце выполнения куска кода и до его начала. Вот так:
/*
  Some code
*/

::QueryPerformanceCounter(&before);
/*
  Код, время выполнния которого хотим замерить.
*/
::QueryPerformanceCounter(&after);

duration=after-before;

/*
  Some other code
*/

И весь этот кусок будет повторяться много-много раз (N).

Нужно после N выполнений участка кода определить время его выполнения в виде:

тау = тау.ср. +- 3*сигма.

(считаем, что времы выполнения нормально распределено, тогда указанное выражение справедливо с вероятностью 99.7%)

Время начала выполнения измеряемого действия относительно последнего переключения счетчика считаем равномерно распределенной случайной величиной.

Все измерения независимы.

Мы не можем сделать замер, выполнить наш участок сто тысяч миллионов раз, сделать еще замер, и поделить на сто тысяч миллионов. Как я уже сказал, кусок кода нельзя вырвать из контекста.
Re[5]: Замеры коротких интервалов грубым таймером
От: mihoshi Россия  
Дата: 07.05.03 10:08
Оценка:
Здравствуйте, RS, Вы писали:

RS>Здравствуйте, mihoshi, Вы писали:


M>Ты не понял. Мы получим не 0, 1, 1, 0. А 0, 1, 2, 2. Мы иеряем сколько _всего_ прошло Т и тау


RS>Чтобы больше никого не сбивать с пути (уж извините ), я опишу условие поподробнее, на живом примере.


RS>Есть некоторый счетчик. Пусть это будет QueryPerformanceCounter(). В Вашей проге есть кусок кода, время выполнения которого Вы хотите замерить. Вырвать его из контекста нельзя. Но повторять его вместе с контекстом можно любое количество раз.


Дык, один черт. Пускаешь тикать таймер, во время начала и конца действия замечаешь кол-вот тиков. Ожидаемое время выполнения равнов Т кол-ву тиков, пришедшихся на время исполнения к числу запусков. Для уменьшения разброса желательно вставлять между запусками случайные задержки.
Re[5]: Замеры коротких интервалов грубым таймером
От: Кодт Россия  
Дата: 07.05.03 10:31
Оценка:
Здравствуйте, RS, Вы писали:

<>

Пусть Tau = N*T + tau

T    ....0...........1...........2...........
tau      |--> ###
         |--------->###
             dt

dt равномерно распределена на интервале [0,T)
При этом результат замеров Q = (dt < T-tau) ? 0 : 1
(Для Tau -- будет N+Q)

P(Q=0) = P(dt < T-tau) = (T-tau)/T
P(Q=1) = tau/T

Таким образом, если мы за K замеров получили K0 раз Q=N, а за K1 раз Q=N+1,
tau/T = K1/K
tau = K1/K) * T
Tau = (N + K1/K) * T
(=^.^=) Neko ... << RSDN@Home 1.0 beta 6a >>
Перекуём баги на фичи!
Re[6]: Замеры коротких интервалов грубым таймером
От: RS Земля ICQ: 148844272
Дата: 14.05.03 07:22
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Tau = (N + K1/K) * T


Ну не совсем так.

Другая задачка: есть монетка со смещенным центром тяжести Есть формула, позволяющая определить вероятность выпадания орла от величины смещения. А требуется вот что: есть у Вас монетка, надо определить величину смещения центра тяжести с погрешностью не выше 1 микрометра. Сколько раз бросать будете? 100? 1000? inf?

Это я к тому, что можно определить вероятность по соотношению Т и тау. Но проделать то же самое в обратную сторону нельзя, так как результаты эксперимента — это еще не вероятность. Это оценка вероятности... Тут нужно указать, как будет распределена вероятность в зависимости от ее оценки и от количества экспериментов.

Вот тут-то я и заглох.

А формулу для Тау получил такую же.
Re[7]: Замеры коротких интервалов грубым таймером
От: MichaelP  
Дата: 14.05.03 08:34
Оценка: 9 (1)
Здравствуйте, RS, Вы писали:

RS>Здравствуйте, Кодт, Вы писали:


К>Tau = (N + K1/K) * T


RS>Ну не совсем так.


RS>Другая задачка: есть монетка со смещенным центром тяжести Есть формула, позволяющая определить вероятность выпадания орла от величины смещения. А требуется вот что: есть у Вас монетка, надо определить величину смещения центра тяжести с погрешностью не выше 1 микрометра. Сколько раз бросать будете? 100? 1000? inf?


RS>Это я к тому, что можно определить вероятность по соотношению Т и тау. Но проделать то же самое в обратную сторону нельзя, так как результаты эксперимента — это еще не вероятность. Это оценка вероятности... Тут нужно указать, как будет распределена вероятность в зависимости от ее оценки и от количества экспериментов.


RS>Вот тут-то я и заглох.


RS>А формулу для Тау получил такую же.


Извиняюсь за краткость, но работы много.

В обоих этих случаях (для основного варианта это показал Кодт) мы имеем классическую схему ипытаний Бернулли с вероятностью одного испытания p=tau/T, которая приводит к классической задаче оценки параметров биноминального распределения. Оценка параметра (вероятности единичного события) для него у Кодта уже получена. Обозначим через P=K1/K оценку парметра p в схеме Бернулли.
Теперь займемся оценкой доверительного интервала для P. Для биномиального распределения величина
Pn = sqrt(p*N)(P-p)/sqrt(p*(1-p))

имеет ассимптотически нормальное распределение с параметрами (0, 1).

Следовательно, найдя по стандартным формулам доверительный интервал для Pn (обозначим Pnd) , и решив относительно p квадратное уравнение
(N+Pnd^2)*x^2 - (2*N*P+Pnd^2)*x + N*P^2 = 0

получим два решения, которые являются верхним и нижним занчением доверительного интервала для P.


Второй вариант (с нормальным распределением) значительно более сложный, и я пока ничего про него сказать не могу , кроме того. что среднее значение по выборке, как и в первом случае, почти наверняка будет правильной оценкой среднего для нормального распределения.
Re[8]: Замеры коротких интервалов грубым таймером
От: RS Земля ICQ: 148844272
Дата: 14.05.03 09:04
Оценка:
Здравствуйте, MichaelP, Спасибо, то, что надо!

MP>Следовательно, найдя по стандартным формулам доверительный интервал для Pn (обозначим Pnd)...


Не подскажите ли, что это за стандартные формулы? (а существуют ли вообще стандартные формулы?)
Re[9]: Замеры коротких интервалов грубым таймером
От: MichaelP  
Дата: 14.05.03 09:19
Оценка:
Здравствуйте, RS, Вы писали:

RS>Здравствуйте, MichaelP, Спасибо, то, что надо!


MP>Следовательно, найдя по стандартным формулам доверительный интервал для Pn (обозначим Pnd)...


RS>Не подскажите ли, что это за стандартные формулы? (а существуют ли вообще стандартные формулы?)


Описка! Конечно имелись ввиду стандартные функции для нормального распределения! Если ограничится доверительным интервалом для одного заданного значения вероятности, например 0.9 — можно взять и из таблиц.
Re[10]: Замеры коротких интервалов грубым таймером
От: RS Земля ICQ: 148844272
Дата: 14.05.03 09:27
Оценка:
Здравствуйте, MichaelP, Вы писали:

MP>Описка! Конечно имелись ввиду стандартные функции для нормального распределения! Если ограничится доверительным интервалом для одного заданного значения вероятности, например 0.9 — можно взять и из таблиц.


Кажется, начинаю понимать... Это который +/- 3 сигма — 99.7%? Или я глючу? Есть Pn. Как найти Pnd? Вот конкренто, как?
Re[11]: Замеры коротких интервалов грубым таймером
От: MichaelP  
Дата: 14.05.03 09:42
Оценка:
Здравствуйте, RS, Вы писали:

RS>Здравствуйте, MichaelP, Вы писали:


MP>Описка! Конечно имелись ввиду стандартные функции для нормального распределения! Если ограничится доверительным интервалом для одного заданного значения вероятности, например 0.9 — можно взять и из таблиц.


RS>Кажется, начинаю понимать... Это который +/- 3 сигма — 99.7%? Или я глючу? Есть Pn. Как найти Pnd? Вот конкренто, как?


Именно это! Только надо учесть, что мы уже привели распределение к стандартизованному нормальному, следовательно сигма = 1. Т.е если интересует диапозон, вероятность попадания оцениваемого значения (p=tau/T, в обозначениях Кодта) в который составляет 99,7%, то надо взять Pnd = 3.
Re[12]: Замеры коротких интервалов грубым таймером
От: RS Земля ICQ: 148844272
Дата: 14.05.03 09:47
Оценка:
Здравствуйте, MichaelP, Вы писали:

MP>Именно это! Только надо учесть, что мы уже привели распределение к стандартизованному нормальному, следовательно сигма = 1. Т.е если интересует диапозон, вероятность попадания оцениваемого значения (p=tau/T, в обозначениях Кодта) в который составляет 99,7%, то надо взять Pnd = 3.


Большое человеческое СПАСИБО!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.