(san) Эссе о пользе математики

июня 30, 2009 в 14:02 | Новости |

Мысли через 2 часа после соревнований:

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

И вот, организаторы. Они пытаются зазвать нас в тот мир, заставить нас вывести законы, или поискать законы, которые избавят нас от итераций. Которые позволят сразу сказать, куда кинуть камень, чтобы сила тяготения, изогнув его траекторию, направила его прямо в шишку на сосне. Они зовут тянут нас к себе, в конечном итоге. А мы-то думаем, что мы соревнуемся так, между собой….

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

Понимающие математику! О, они подобны музыканту, берущему нотную запись незнакомого музыкального произведения, и начинающему играть ноты, претворяя их в жизнь. Понимающие математику берут с нужной полочки формулы, и знают, что в них к чему! Для того, чтобы перевести тело из одной любой точки в другую в орбитальном пространстве земли, нет нужды методом приближений искать нужный вектор приложения сил, запуская каждый раз прилагаемую программу, и наблюдая, чем это закончится, а потом чуть-чуть изменять вектор и пробовать еще раз, приближаясь к нужному варианту. Так делаем мы, люди, но не математики. Те лезут в книжки, которых в инете полно, и сквозь дебри интегралов видят то единственное место, которое затем, нависая над нами, объясняют нам, и помогают забить в простую арифметику, ну, с одним маленьким циклом, итераций в 2-5 на вычисление.

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

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

Предположим, вместе с нами по соседней орбите, вытянутой или нет, вращается спутник, к которому нам нужно. Мы находим разнообразными переборами время, в которой нам лучше отправиться, и время, которое нам лучше лететь так, чтобы результирующие импульсы, которые нам нужно давать на старте и торможении, были минимальны, потому что топливо расходуется. Это чистой воды поиск (непростым) перебором, с ограничениями на длину ожидания до стартового импульса (ждать у моря погоды можно вечно) и на длину перелета (потому что время тикает), Взяв интересующие нас t1 и t2, прокручиваем время на t1, получаем нашу исходную точку. Прокручивая еще на t2, получаем спутник назначения в конечной точке. Используя формулу из книги, по двум точкам и по t2 получаем два импульса, которые оцениваем, устраивают они нас или нет. Если нет, то ищем другие. Или может лучше на другой спутник полететь? Так строится маршрут.

Четвертую задачу мы так и решали. В самом начале спутник крутится. Для каждого спутника мы рассчитываем идеальную траекторию и время старта, потом выбираем наименьшую стоимость, и летим. Прилетев на место, мы не выравниваем скорость, а продолжаем лететь по эллиптической орбите, и уже с нее выбираем следующую мишень: с какой точки куда ловить дешевле всего. Это алгоритм решения четвертой задачи, который дал нам неплохие результаты уже в таком простом виде.

По некоторым причинам, всё совсем не так безоблачно. Проблемы начинаются с того, что формулы-то не работают до конца точно! Почему? Потому что в четвертом задании присутствовала Луна! Она дает искажения, не учитываемые в формулах.

И приходится… уточнять! Уточнять можно в реальном времени, пролетев половину пути, затем пересчитав, немного повернуть, пролететь половину пути, снова поправить направление итд. Это чревато большим расходом топлива. Поэтому рассчитать можно заранее точно. Это работает почти всегда нормально, кроме некоторых важных случаев, и медленно. Делается это так: в текущий момент состояние мира (организаторской ВМ) копируется, и появляется условная вселенная, в которой мы долетаем по вычисленным параметрам куда долетится, и получаем некоторую разницу. Потом меняем немножко стартовый импульс, и повторяем процедуру. Похоже на описанного выше человека, но делается это один раз, когда уже выбрали куда лететь. Поэтому, как видите, итерации у нас на несколько ином уровне. Зато вот потом, ежели в условном мире мы туда прилетели, в нашем мире мы гарантированно туда попадем.

Об остальном написал Rst7.

После прошлого контеста, с марсианами и ездящими марсоходами, я ходил между людей и чувствовал, как на меня действует инерция, я рассчитывал повороты, я вписывался в коридоры. Я смотрел на мир по другому.

Нынешний контест нас вплотную познакомил с задачами, которые наши продвинутые ученые решали в 50-х годах. Мы почувствовали, что все мудреные названия, которые мы знаем из области космонавигации, они просто имена определенных физических процессов, которые происходят на орбитах, и что при определенной практике к иной физике привыкаешь, и начинаешь размышлять с ее учетом. И я прочувствовал, что математика это действительно измерение высшее относительно нашего мира. Что из этого измерения наше будущее видно отчетливо, как собственная ладонь.

Комментариев нет »

RSS лента комментариев. Трекбек URI

Оставить комментарий

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <p> <br>

Работает на WordPress с темой Pool (дизайн от Borja Fernandez). Локализация Mywordpress.ru
Записи и комментарии в RSS. Valid XHTML and CSS. ^Top^