geladen: (Default)
[personal profile] geladen
УВАГА: Если ты, дорогой читатель, понимаешь что такое нормальное распределение, распределение Рэлея, среднеквадратическое отклонение и доверительный интервал, этот пост тебе, наверное, можно безо всякого ущерба пропустить. Если ты хорошо понимаешь, что это такое, во избежание ущерба читать лучше не надо.

Хорошие новости: разброс пробоин в мишени описывается очень простыми математическими моделями. Разброс по вертикали и по горизонтали независимы друг от друга, и каждый описывается т.н. нормальным распределением, гауссианой.

Те, кто вдруг возжаждал вспомнить формулы и Учоную Тэорию, могут запросто потеребить себя за уикипэдию. Для тех же, кто изначально забил или с удовольствием забыл, принципиальная схема гауссианы в профиль выглядит примерно так (уже предвкушаю корчи математиков, при чтении дальнейшего.):


(картинка попячена с википэдии)

Нормальное распределение пробоин задаётся двумя параметрами:
μ (мю) -- средняя точка попаданий
σ (сигма) -- мера, собственно, разброса
Чем выше кривая в некой точке икс, тем больше вероятность, что пуля попадёт куда-то в район икса. Строго говоря, вероятность определяется площадью под графиком. Например, вероятность того, что пуля попадёт в пределах плюс-минус сигмы от СТП, равна ~68.2%. Плюс-минус двух сигм -- 95.4%. Плюс-минус трёх сигм -- 99.7%.

Общая площадь под графиком равна единице; это означает, что вероятность попадания пули в промежуток плюс-минус бесконечность равна 100%. Если сигма увеличивается, график "растягивается", а чтобы площадь оставалась равной единице, пик -- верхняя точка -- снижается, т. е. уменьшается вероятность, что пули лягут близко к центру. Примерно так:


(картинка попячена с википэдии)

Синяя винтовка = группирует хорошо, красная винтовка = группирует ок, жёлтая винтовка = Ругер Мини. Обратите внимание на зелёную винтовку: кучность ок, но сбит прицел -- СТП конкретно не в центре мишени; этот фактор нужно всегда учитывать, и мы к нему ещё вернёмся.

Если бы сферический конь в вакууме, из винтовки не знающей сноса, залепил бы 10 тысяч патронов в мишень, зрелище было бы примерно такое:



Для нашего случая, про нормальное распределение нужно помнить две вещи:

Нормальное распределение очень полезно для компьюторной моделизации происходящего. В деле статистического анализа разброса, некоторые вопросы невозможно решить аналитически (т.е. взял формулу, подставил значения, получил результат). Ответ может быть получен только численными методами. Призвав на помощь сферического коня в вакууме, с винтовкой не знающей сноса (или, как говорим мы, Учоные, СКВАВИНЗС, для друзей -- СКВА), получаем картинки, очень точно отражающие реальность, сэкономив миллионы патронов и миллионы лет на замеры мишенек.

Для тех, кто пожелает употребить свои счётные мощности на благо народного хозяйства (а не на сраные лайки в сраном фейцбучике), в любом языке есть простой способ сгенерировать псевдослучайное число между 0 и 1 с постоянной функцией распределения (т. е. вероятность равномерно разбросана по всему промежутку). Чтобы получить из этого нормальное распределение, СКВА обращается к преобразованию Бокса-Мюллера. Например на перле это выглядит как-то так:
my $COUNT = 1000000;

my $x;
my $y;

my $PI = 4 * atan2(1, 1);

for my $i (1 .. $COUNT) {
    $x = sqrt(-2 * log(1 - rand())) * cos(rand() * 2 * $PI);
    $y = sqrt(-2 * log(1 - rand())) * cos(rand() * 2 * $PI);

    print "$x,$y\n";
}

В деле генерирования случайных чисел, отдельно должен предостеречь от использования Ыкцеля или Либрофис-Калька; в них функция RAND() -- говно.

Нормальное распределение напрямую никак не применимо к собственно анализу разброса по результатам в мишени.

Гауссиана описывает только одно измерение -- горизонталь или вертикаль; для нас же, на двухмерной мишени, в первую очередь интересно насколько пробоины отстоят от СТП.

Специально для ответа на этот вопрос существует распределение Рэлея, о котором будет следующий выпуск нашего альманаха.

Date: 2014-11-02 01:07 pm (UTC)
From: [identity profile] demeneve.livejournal.com
Мой мозг гуманитария взорвался и взалкал просто картинок с "крутыми пухами". Тем не менее за пост большое спасибо - сохранил, почитаю какнибудь потом, когда мозг остынет))

Date: 2014-11-02 01:45 pm (UTC)
From: [identity profile] geladen.livejournal.com
то ли ещё будет! но, спешу успокоить, выводы в самом конце будут простыми и понятными.

Date: 2014-11-03 08:27 am (UTC)
From: [identity profile] po6om.livejournal.com
А каково было мне, гуманитарию (надеюсь, владелей жжурнала извинит за это ругательство у него в блоге, гг), когда нам курсе на втором запилили Тер.вер и мат.стат :))) Бггг.
Зато про нормальные распределения теперь знаю :)

Date: 2014-11-02 01:08 pm (UTC)
From: [identity profile] etwa.livejournal.com
а на чем основывается мнение, что, де, стандартная функция любого языка rand (вкупе с ее неупомянутым сателлитом seed) не дает приличного результата?

я не вижу никакой причины, почему бокс-мюллер (и другие такие же) не могут быть запихан внутрь самой rand.

a?
(deleted comment)

Date: 2014-11-02 01:43 pm (UTC)
From: [identity profile] geladen.livejournal.com
вово, именно.
+1.

Date: 2014-11-02 03:14 pm (UTC)
From: [identity profile] etwa.livejournal.com
я не изучал (серьезно) эту тему, но для моих неглубинных задач связка seed с частью локального времени плюс rand всегда давала нормальные результаты (т.е. никаких повторений я не замечал). но само это мнение о rand (и всегда бес seed, хотя seed всегда идет с rand) много раз слышал. и опять же всегда в текстах о плохости rand дается примитивный алгоритм как, де, этот плохой rand можно обойти.

оттого и вопрос, почему это имплементаторы rand сами не дотумкают до каких-нибудь ботокс-мюллеров.. пока ответ нет..
(deleted comment)

Date: 2014-11-02 04:34 pm (UTC)
From: [identity profile] etwa.livejournal.com
о! вот сейчас доступно

Date: 2014-11-02 01:40 pm (UTC)
From: [identity profile] geladen.livejournal.com
> а на чем основывается мнение, что, де, стандартная функция любого языка rand (вкупе с ее неупомянутым сателлитом seed) не дает приличного результата?

для наших целей, стандартного rand(), как правило, вполне достаточно, чай не по криптографической валидности маньячим. другое дело, что в ыкцеле и либрофисе этот ранд кривой донельзя, в смысле -- распределение совершенно не равномерное.

> я не вижу никакой причины, почему бокс-мюллер (и другие такие же) не могут быть запихан внутрь самой rand.

а зачем их встраивать? если нужен -- посчитал.
во всяких специализированных стат. библиотеках наверняка существуют версии ранда по разным расхожим распределениям, но я не парился.

Date: 2014-11-02 03:20 pm (UTC)
From: [identity profile] etwa.livejournal.com
>а зачем их встраивать?
...
>rand() - генератор псевдослучайных чисел

ну, затем, чтобы когда нам нужен генератор не псевдослöучайных, а случайных чисел, мы бы запускали rand, а не wrapper на rand.

Date: 2014-11-02 03:38 pm (UTC)
From: [identity profile] etwa.livejournal.com
http://perldoc.perl.org/functions/rand.html

вона кстати, для перл-а ничего выдумывать не надо.

Date: 2014-11-03 04:50 am (UTC)
From: [identity profile] svininberg.livejournal.com
Как когда-то давно изучавший всяческие "распределения", увидев картинку с 10 тысячами точек, я вспомнил нечто родственное, но о бомбардировщиках. Суть была в том, что, к примеру, имея информацию о том, что "в квадрате таком-то находится объект противника", авиация могла решить, сколько бомб сбросить на этот квадрат, чтобы гарантированно уничтожить этот объект. В расчете участвовали отношение габаритов цели к общей площади бомбардируемого участка, и характеристики применяемых бомб. Использовался вариант метода Монте-Карло.

Думаю, можно схожим образом рассчитывать минимальное необходимое количество выстрелов для того, чтобы считать цель пораженной. Но, конечно, в реальности эта "математика" больше применима к автоматическим системам вроде CIWS, нежели к ручному стрелковому оружию.

P.S. Вызвала какие-то сомнения независимость разброса по вертикали и по горизонтали. Но внятных аргументов в пользу своих сомнений не придумал.

Date: 2014-11-03 10:54 am (UTC)
From: [identity profile] geladen.livejournal.com
> [...] в реальности эта "математика" больше применима к автоматическим системам вроде CIWS, нежели к ручному стрелковому оружию.

отчего же? в моделизации лёгкой стрелковки это, можно сказать, самый жир -- вероятность поражения цели (ср. конкурс Абакан).

тот же браянлиц, опять-таки, на этом основывает концепцию Weapon Employment Zone -- до каких пределов можно реалистично использовать некий комплекс стрелок-винтовка-патрон.

монтекарла -- дико полезная штука, и с современными счётными мощностями доступна любому телепузику, на сраных смартфонах можно эффективность ротных пулемётов просчитывать.

> P.S. Вызвала какие-то сомнения независимость разброса по вертикали и по горизонтали. Но внятных аргументов в пользу своих сомнений не придумал.

тут-то как раз всё ок, с реальностью совпадает, военные расчёты на этом основаны. единственный фактор, который как-то заметно влияет на обе -- переменный ветер в сложном рельефе, где нужно учитывать восходящие/нисходящие потоки, но до такого моё занудство не доходит.

но дальше (с распр. Рэлея) будет другое допущение -- равные сигмы по горизонтали и вертикали, что уже конкретно неверно. по горизонтали -- ветер, по вертикали -- разница дульной скорости, без ветра группы по вертикали обычно больше. если это учитывать, расчёты доверительных интервалов становятся не по моим мозгам. буду считать кругом, бо в практическом плане выводы получаются вполне валидные.

Date: 2014-11-03 02:32 pm (UTC)
From: [identity profile] aleksey-lvov.livejournal.com
>>но дальше (с распр. Рэлей) будет другое допущение -- равные сигмы по горизонтали и вертикали, что уже конкретно неверно. по горизонтали -- ветер, по вертикали -- разница дульной скорости, без ветра группы по вертикали обычно больше. если это учитывать, расчёты доверительных интервалов становятся не по моим мозгам. буду считать кругом, бо в практическом плане выводы получаются вполне валидные.

Это для расчета R50? Или для красивых картинок?

Date: 2014-11-03 02:56 pm (UTC)
From: [identity profile] geladen.livejournal.com
в смысле?

КВО, ага, или его производная (типа R95).
если рассматривать не круг, а эллипс или прямоугольник, с оценкой доверительных интервалов начинается лютая запара.

Date: 2014-11-03 03:15 pm (UTC)
From: [identity profile] aleksey-lvov.livejournal.com
С прямоугольником, по-моему вообще никаких проблем. Для эллипса формула вероятности попадания такая же как и для круга. Или что-то другое имеется ввиду?

Или Вы хотите в программе посчитать какой процент попаданий приходится в эллипс с полуосями в сигму, n сигм?

Date: 2014-11-03 04:53 pm (UTC)
From: [identity profile] geladen.livejournal.com
> Или Вы хотите в программе посчитать какой процент попаданий приходится в эллипс с полуосями в сигму, n сигм?

это-то, как раз, фигня, считается запросто.

морока начинается на уровне определения интервала доверия.
для круга я могу сформулировать "на основе экспериментальных данных, с уверенностью 95%, R50 находится в интервале X1..X2", а для эллипса что-то подобное выдать -- хера, мозг перегревается.

в этом, на самом деле, одна из главных целей моего экзерсиса -- вопрос #3 из предыдущего поста -- показать несостоятельность некоторых расхожих оценок, и задать некие минимальные стандарты качества (пусть только среди одного меня).

Date: 2014-11-03 05:15 pm (UTC)
From: [identity profile] aleksey-lvov.livejournal.com
Посмотрите в этой книге. https://yadi.sk/d/cebCIngLcU9vE
Формат djvu

Date: 2016-03-06 12:20 pm (UTC)
From: [identity profile] geladen.livejournal.com
сейчас зашёл по новые комментарии в старый пост, и обнаружил от вас это сообщение, которое в своё время параноидальная жыжа посчитала спамом и от меня скрыла.
очень интересно теперь, что же там было...

Date: 2016-03-06 02:06 pm (UTC)
From: [identity profile] aleksey-lvov.livejournal.com
Уже и не помню, но подозреваю, что та самая "Эффективность стрельбы..." т.к. там и про доверительные интервал и частоту написано, с формулами.

Date: 2016-03-06 02:30 pm (UTC)
From: [identity profile] geladen.livejournal.com
абсолютно офигенная книга!
ещё раз спасибо!
очень от неё мозги на место встают.

Date: 2014-11-04 01:15 pm (UTC)
From: [identity profile] svininberg.livejournal.com
> отчего же? в моделизации лёгкой стрелковки это, можно сказать, самый жир -- вероятность поражения цели

Это да. Понятно. Просто подумалось, что в ручном стрелковом подобные расчеты могут использоваться на этапе проектирования оружия/патрона и написания руководств с наставлениями. А потом стрелку останется только запомнить несложную таблицу или уяснить упрощенную формулу. В автоматических же системах эти расчеты (и другие, естественно) могут с нужной степенью точности проводится компьютером, непосредственно перед и во время ведения огня. Это я имел в виду в плане их "большей применимости". Стрелок-человек пользуется готовым результатом, а автоматическая система и сама вполне успевает провести все вычисления.

> по горизонтали -- ветер, по вертикали -- разница дульной скорости, без ветра группы по вертикали обычно больше

Да, об этом я тоже подумал, глядя на картинку. Но можно пренебречь... Иначе расчеты, хоть и прибавляя в точности, усложняют их практическое применение.

Date: 2014-11-03 10:56 am (UTC)
From: [identity profile] geladen.livejournal.com
юзерпик у тебя, дорогой корресопндент -- мегазачотный.
федерико витали -- мой кумир и жизненный ориентир.

Profile

geladen: (Default)
geladen

January 2026

S M T W T F S
    1 23
45678910
11121314151617
18192021222324
25262728293031

Tags

Expand Cut Tags

No cut tags