Pull to refresh

Определение площади сложной фигуры с помощью теории вероятностей

Reading time3 min
Views23K

Зачем определять площадь сложной фигуры?


Да мало ли зачем. Например, возникла необходимость определить площадь территории на карте. Конечно, можно посмотреть в справочнике или поискать в интернете, но иногда и территории бывают нестандартными — допустим, вы озаботились проблемами лесов в пойме Амазонки и хотите ежемесячно измерять площадь зелёных пятен на фотографиях со спутника. Если вы ботаник (в хорошем смысле слова), то вам может понадобиться измерить площадь листовой поверхности разных сортов одного растения. Или, к примеру, более прозаичная задача — нужно зашпатлевать кусок стены, а банки шпатлёвки хватает только на 1 кв. м. — нужно выяснить, покупать одну банку или раскошелиться на две.

В чём сложность нахождения площади?


Конечно, если фигура представляет собой прямоугольник, круг или, что хуже, эллипс, то проблема решается с помощью Google и калькулятора. Но где бы найти формулу, да попроще, для нахождения площади, скажем, такого рисунка?
image

Теория вероятностей, Ваш выход!


Сразу оговорюсь, что теория вероятностей по своей сути не подразумевает точного решения задач. Так будет и в этом случае — если вам нужна космическая точность, то предлагаю копать в сторону методов имитационного моделирования. Если же погрешность в пределах 2-5% вас вполне устраивает, то будет достаточно того же калькулятора, базовых навыков программирования и умения считать до ста.

Суть метода


Суть метода проста до банальности. Допустим, мы пасмурным деньком выложили капустный листочек (см. ремарку про биолога выше) на прямоугольный поддон, а поддон выставили под накрапывающий дождик. А потом засекли определённое время (к примеру, пять минут) и посчитали, сколько капелек упало на поддон, а сколько непосредственно на лист. Если принять во внимание, что дождь обычно капает равномерно, то получается простая пропорция — лист во столько раз меньше поддона, во сколько раз на него упало меньше капель дождя, чем на весь поддон.

Возвращаемся к нашей фигуре


Итак, как же определить площадь той розовой пятерни? Да очень просто — заключить фигуру в прямоугольные границы и проставить случайным образом много точек. Чем больше, тем лучше (в соответствии с законом больших чисел). А потом подсчитать количество точек, попавших на фигуру.

Я намеренно не обсуждаю вопросы реализации такого алгоритма, потому что вариантов масса. Можно просто закрыть глаза и наугад тыкать шариковой ручкой, а можно действовать более научно — с помощью языков программирования. Например, код на PHP занял у меня не больше 15 строчек, а в результате получилось вот что:
image

Точки общим числом 300, разумеется, проставлены с помощью генератора случайных чисел. Для удобства подсчета точек я разбил изображение на 36 секторов — теперь нужно подсчитать количество точек, попавших на изображение, в каждом секторе, а результаты сложить. Сведём данные в таблицу (ячейка таблицы соответствует сектору на картинке):
0 4 8 4 0 0
0 7 5 6 0 4
3 6 13 7 8 5
1 10 10 13 7 2
0 2 3 7 10 2
0 0 2 5 3 0

Теперь у нас есть все данные для того, чтобы вычислить площадь розовой пятерни:
площадь описанного прямоугольника — 20 см х 20 см = 400 кв. см;
количество точек в прямоугольнике — 300;
количество точек внутри фигуры (сумма значений из таблицы) — 157;
площадь фигуры - 209,33 кв. см.

И насколько это точно?


Действительно, осталось определиться с точностью данного метода. Конечно, всё зависит от количества точек, и здесь нужно соблюдать золотую середину — десяти для нашего примера было бы явно недостаточно, а от тысячи слишком рябило бы в глазах. Поэтому попробуем определить погрешность для трёхсот точек и описанного квадрата со стороной 20 см. Для этого возьмём фигуру, площадь которой нам известна заранее. Например, такую:
image

Проставляем точки:
image

Результаты заносим в таблицу:
0 6 11 8 5 0
9 15 8 5 13 2
11 8 5 14 13 5
10 11 8 8 4 4
2 14 9 10 4 1
0 3 5 6 0 0


Рассчитываем площадь фигуры:
площадь описанного прямоугольника — 20 см х 20 см = 400 кв. см;
количество точек в прямоугольнике — 300;
количество точек внутри фигуры (сумма значений из таблицы) — 237;
площадь фигуры - 316 кв. см.

Нетрудно посчитать, что реальная площадь круга с радиусом 10 см составляет 314,16 кв. см. Таким образом, погрешность метода составила 0,59%, чего в большинстве случаев достаточно для прикладного использования.
Tags:
Hubs:
-2
Comments16

Articles