Случайны выбор дневника Раскрыть/свернуть полный список возможностей


Найдено 104453 сообщений
Cообщения с меткой

математика - Самое интересное в блогах

Следующие 30  »
DayZi

Математика

Среда, 27 Июля 2016 г. 15:52 (ссылка)

Это цитата сообщения Ksu11111 Оригинальное сообщение






1.

Математика.page001 (700x494, 323Kb)



Читать далее...
Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

[Перевод] Даты среди цифр числа Пи: некоторые мысли с позиции статистики и нумерологии

Вторник, 26 Июля 2016 г. 13:41 (ссылка)



Перевод поста Майкла Тротта (Michael Trott) "Dates Everywhere in Pi(e)! Some Statistical and Numerological Musings about the Occurrences of Dates in the Digits of Pi".

Код, приведенный в статье, можно скачать здесь.

Выражаю огромную благодарность Кириллу Гузенко KirillGuzenko за помощь в переводе и подготовке публикации

Содержание

Получим все даты за последние 100 лет

Найдём все даты в цифрах числа пи

Статистика всех дат

Первые появления дат

Даты в других представлениях и других константах
В недавнем своём посте (см. перевод поста "3/14/15 9:26:53 Празднование «Дня числа Пи» века, а также рассказ о том, как получить свою очень личную частичку числа пи" на Хабре) Стивен Вольфрам писал об уникальном положении векового дня числа пи и представил разные примеры содержания дат в цифрах числа пи (здесь и далее — в десятичном представлении). В этом посте я рассмотрю статистику распределений всех возможных дат за последние 100 лет в первых 10 миллионах цифр числа пи. Мы увидим, что 99,998% цифр представляют собой какую-то дату, и что можно обнаружить миллионы дат в первых десяти миллионах цифр числа пи.



Я сосредоточусь на датах, которые могут быть заданы не более чем шестью цифрами. То есть я смогу одназначно задавать даты в промежутке длительностью в 36 525 дней, начиная с 15 марта 1915 года и заканчивая 14 марта 2015 года.



Начнём с графической визуализации нашей темы для задания настроения.







Получим все даты за последние 100 лет



Как и обычно, день числа пи в этом году выпал на 14 марта.







С векового дня пи 20 века прошло 36 525 дней.







Создадим список из всех 36 525 рассматриваемых дат.







Для дальнейшей работы определим функцию dateNumber, которая для заданной даты возвращает порядковый номер даты, начиная с первой (15 марта 1915 г. имеет номер 1).







Месяцам с сентября по январь я позволю задаваться лишь одной цифрой — то есть 9 для сентября вместо 09; аналогично и для дней. То есть некоторые даты могут быть заданы разными последовательностями цифр. Функция makeDateTuples генерирует все последовательности целых чисел, представляющих даты. Можно использовать несколько различных обозначений дат — всегда с нулями или всегда в короткой записи. С опциональным включением нулей в запись дней и месяцев получится больше возможных соответствий и больше результатов, так что я буду использовать их в дальнейшем. (А если вы предпочитаете обычный формат записи дат в виде день-месяц-год, то тогда нужно будет просто внести изменения в функцию makeDateTuples).







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







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







Для быстрого (за постоянное время) повторяющегося распознавания последовательности как даты я задам функции dateQ и datesOf. datesOf дает нормализованную форму последовательности цифр даты. Начнем с создания пары последовательностей и их интерпретации как дат.







Вот некоторые примеры.







Большинство (77 350) последовательностей могут быть однозначно истолкованы как даты; некоторые (2700) имеют две возможные интерпретации.







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







Последовательность {1,2,1,5,4} имеет две интерпретации — как 21 января 1954 или как 1 декабря 1954 — восстановленные с помощью функции datesOf.







Это количества четырех-, пяти-, и шестизначных представлений дат.







А это число определений каждого из типов, установленных для функции datesOf.







Найдём все даты в цифрах числа пи



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







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







Используя определенные выше функции dateQ и datesOf, я могу теперь быстро найти все последовательности цифр, которые могут быть интерпретированы как даты.







Вот некоторые найденные интерпретации дат. Каждый подсписок имеет вид:



{date, startingDigit, digitSequenceRepresentingTheDate}

(дата, начальная цифра, последовательность цифр представляющих дату).







Мы нашли около 8,1 млн. дат, представленных четырьмя цифрами; около 3,8 млн. дат — пятью; около 365 тыс. дат — шестью, итого в сумме более 12 млн. дат.







Обратите внимание, что я мог бы использовать строковые функции обработки (особенно StringPosition), для поиска позиций последовательностей дат. И, конечно, я бы получил тот же результат.







В то время как использование StringPosition хорошо подошло бы для поиска одной даты, работа же со всеми 35 000 последовательностей заняло бы гораздо больше времени.







Остановимся на секунду и посмотрим на счётчик найденных последовательностей из 4 цифр. Из 10 000 возможных четырёхзначных последовательностей используется 8 100, при этом каждая из них появляется в среднем (1/10)

https://habrahabr.ru/post/306420/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best

Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

Представление движений в 3D моделировании: интерполяция, аппроксимация и алгебры Ли

Вторник, 26 Июля 2016 г. 11:44 (ссылка)

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



Сколько существует разных способов представить обыкновенный поворот в трехмерном пространстве? Большинство людей, когда-либо занимавшихся 3D-графикой или 3D-моделированием, сходу назовут три основных широко распространенных варианта:




  • Матрица поворота 3x3;

  • Задание поворота через углы Эйлера;

  • Кватернионы.



Люди с богатым опытом добавят сюда почему-то не пользующийся популярностью четвертый пункт:


  • Ось поворота и угол.



Мне бы хотелось рассказать о пятом способе представления вращений, который симпатичен тем, что удобен для параметризации, позволяет эффективно строить полиномиальные аппроксимации этих параметризаций, проводить сферическую интерполяцию, и главное, универсален — с минимальными изменениями он работает для любых видов движений. Если вам когда-либо был нужен метод, который позволял бы легко сделать «аналог slerp, но не для чистых вращений, а для произвольных движений, да еще и с масштабированием», то читайте эту статью.



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



Группы и алгебры Ли: на стыке алгебры и дифференциальной геометрии



Вращения объекта в трехмерном пространстве (и, обобщая, любые движения объекта) с математической точки зрения являются типичным примером структуры которая называется «группой». Групповой операцией здесь является «комбинирование», когда вначале применяется одно движение, а затем второе; эта комбинация, очевидно, тоже является движением. Единицей группы служит тривиальное движение «ничего не менять». Для любого движения можно отыскать обратное движение, позволяющее «вернуть все как было». С практической стороны, применительно к геометрии, существование группы часто говорит о существовании какой-то «особенности» данного движения, которая сохраняется в пределах группы. Например, если мы передвинули куда-то объект чистым вращением, то вернуть его обратно можно тоже чистым вращением. Группа движений евклидового пространства сохраняет расстояния между точками передвигаемого объекта. Группа симметрий куба состоит из 48 движений, которые переводят куб в самого себя. Это то, что более-менее известно всем.



Легко однако заметить, что группа вращений устроена в определенном смысле «интереснее» чем группа симметрий куба. Так, мы знаем, что для вращений можно интерполировать непрерывное движение между любыми двумя точками (найти функцию, которая плавно и непрерывно повернет объект из одного положения в другое), тогда как для 48 элементов группы симметрий куба это, очевидно, невозможно. Еще одним интересным свойством является возможность локально параметризовывать элементы этой группы тройками чисел (к примеру, углами Эйлера). В математических терминах все эти свойства формализуют фразой «группа вращений является гладким многообразием». То есть мы можем представить себе пространство всех возможных поворотов в трехмерном пространстве как некоторую многомерную поверхность типа сферы. Только вот обычная сфера является двумерной поверхностью и ее можно поместить (вложить) в трехмерное пространство, а пространство вращений является трехмерной гиперповерхностью и для того чтобы ее изобразить потребуется четырехмерное пространство; а чтобы сделать это без самопересечений — шестимерное, причем получившаяся в этом пространстве поверхность для группы вращений топологически будет напоминать скорее бублик, чем сферу. Но математика там получается практически такой же, поэтому я буду использовать обычную двумерную сферу для интуитивной иллюстрации понятия «гладкого многообразия».



Рассмотрим теперь непрерывное движение какого-то объекта, заданное функцией положения объекта в зависимости от момента времени f(t). Скажем, f(0) может определять начально положение объекта, f(1) — конечное, а f(0.5) тогда будет соответствовать положению объекта на «середине дороги» от начальной точки к конечной. Поскольку отдельные положения объекта являются точками на нашем гладком многообразии, то считая f(t) в разных точках, можно построить на нашей «сфере» цепочку из точек, связывающую между собой начальную и конечную точки на «сфере»; в пределе, как несложно понять, эта цепочка объединяется в непрерывную кривую. То есть разные кривые на нашем многообразии являются разными траекториями движения объектов и наоборот.





Рис. 1. Группа вращений как гладкое многообразие (сфера): точки соответствуют начальному и конечному положениям объекта, проходящая по сфере кривая — траектории его движения



Вспомним теперь, что у нас все-таки не некоторое абстрактное многообразие, а группа; и у этой группы есть две операции: «умножение» и «взятие обратного элемента». Мы можем «действовать» этими операциями на «сфере». Например мы можем сделать т.н. «левый сдвиг на элемент g», домножив все точки на сфере слева на g, т.е. заменив каждый элемент a на g*a. Поскольку у нас группа, то это движение сохраняет нашу «сферу» в целом, но перемещает внутри нее отдельные отмеченные точки. Интуитивная интерпретация: раз у нас группа поворотов, то мы можем повернуть нашу сферу любым из этих поворотов.





Рис. 2. Действие группы на себе как поворот сферы



Если подобные операции группы на самой себе (умножение и обращение) не портят гладкости ранее заданных на ней кривых (являются гладкими отображениями сферы на себя), то подобная группа называется группой Ли. Все практически значимые группы движений являются именно группами Ли.



Следующее интересное наблюдение, которое мы можем сделать, состоит в том, что у гладких кривых на гладких многообразиях можно определить понятие скорости движения по кривой — касательного вектора. То есть в нашем случае движущегося объекта можно определить скорость вращения тела в любой момент времени, причем эта скорость будет векторной величиной. В дифференциальной геометрии есть теорема, утверждающая, что пространство всех возможных касательных векторов к кривым в заданной точке n-мерного многообразия является n-мерным же линейным пространством — касательной плоскостью в заданной точке многообразия. Например, скорость вращения тела можно определить осью вращения и угловой скоростью вращения. Если мы перемножим единичный вектор направления оси на скаляр угловой скорости, то получится вектор угловой скорости, направление которого задает ось, а длина — скорость вращения. Этот вектор и будет элементом этого касательного пространства к группе вращений. На иллюстрации я использую в качестве модели двумерную сферу, поэтому и касательное пространство там получается двумерной касательной плоскостью к этой сфере.





Рис. 3. Скорость вращения как касательный вектор к траектории движения объекта и касательная плоскость — как пространство всех возможных скоростей вращения объекта в выбранной точке



Однако в силу того, что касательная плоскость задается для конкретной точки многообразия, пока что мы определили «скорость вращения объекта» только для одной конкретной точки (конкретного положения объекта), а хотелось бы — для любого возможного положения. Тут-то и приходит на помощь характерное для групп Ли «гладкое действие многообразия на самого себя»: определив касательный вектор и касательную плоскость всего в одной точке многообразия (как правило, в единице), мы дальше можем передвинуть получившиеся вектор и плоскость в любую другую точку многообразия. Для этого нам, правда, придется зафиксировать какой-то конкретный способ, которым мы будем это делать, чтобы избежать неоднозначностей, и классический подход — это использовать уже упоминавшийся левый сдвиг, т.е. использовать домножение слева на g для того, чтобы посчитать касательный вектор и касательную плоскость в точке g. Этому легко дать очевидную интерпретацию: допустим, мы определили, что такое «вращение влево со скоростью 5 градусов в секунду» для объекта находящегося в положении A. Как определить «вращение объекта влево со скоростью 5 градусов в секунду» в другом положении Б? Для этого надо просто вначале дать объекту повернуться в старом положении, а затем (умножение слева) поместить объект в нужное место таким же поворотом, который привел бы неподвижный объект из положения А в Б. Подобная нотация, естественно подразумевает, что движения действуют справа налево: действие a*b соответствует действию b, после которого следует действие a. Таким образом, определив скорость вращения в одной точке можно доопределить понятие «скорости вращения» для всех точек пространства. Полученное векторное поле (математик добавит: левоинвариантное векторное поле) на группе Ли естественно ассоциировать с «просто» скоростью вращения, уже без уточнения в какой именно точке.





Рис. 4. Определенная в одной точке «скорость вращения» естественным образом доопределяется для всех точек группы вращений



Как я уже писал ранее, пространство всех возможных угловых скоростей в одной точке является трехмерным касательным пространством. Поскольку указанное построение работает для любых касательных векторов, то слова «в точке» получается убрать и здесь; то есть получается просто «пространство возможных угловых скоростей объекта», и это пространство является обычным линейным пространством всех мыслимых трехмерных векторов. Это пространство называется алгеброй Ли соответствующей данной группе Ли. Почему алгеброй? А потому что для этого пространства уже естественным образом определена операция сложения и умножения на скаляр (пространство линейно) и на нем всегда можно определенным несложным образом ввести специальную «операцию умножения» — скобку Ли со следующими свойствами:




  1. [x,y] является билинейной операцией относительно x и y;

  2. [x,x] = 0 для любого x;

  3. [x, [y,z]] + [y, [z,x]] + [z, [x,y]] = 0 для любых x,y,z.



Для нашего простого случая, вдобавок, из пунктов 1 и 2 так же следует пункт:


  1. [x,y] = -[y,x] для любых x,y.



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



Группы и алгебры Ли играют заметную роль в математике, поскольку алгебра Ли (линейное пространство), как правило, является намного более простым объектом, нежели исходная группа. Скажем, в нашем модельном примере исходная группа Ли была хитрым трехмерным бубликом, вкладываемым в шестимерное пространство, а алгебра Ли — уже обычное трехмерное пространство. Для исходных элементов группы Ли была определена только операция комбинирования вращений и она была не коммутативной, тогда как элементы алгебры Ли можно складывать между собой и умножать на скаляры. Но при этом алгебра Ли однозначно определяет соответствующую группу Ли и позволяет определять ее свойства (например, определять тип группы) через свойства алгебры Ли, которые, по большому счету, сводятся к размерности линейного пространства и матрице, описывающей скобку Ли через ее действие на базисных векторах. Однако для практических целей нам понадобится другое важное свойство.



Рассмотрим произвольную гладкую траекторию движения f(t) в нашей группе Ли. Как уже было сказано, ее можно продифференцировать, определив скорость движения в каждой из точек траектории. Возьмем теперь произвольный элемент x из алгебры Ли (произвольную угловую скорость для нашего модельного примера). Как ранее упоминалось, этот элемент соответствует гладкому векторному полю x(g) касательных векторов ко всем элементам g многообразия группы Ли.

Рассмотрим теперь следующее дифференциальное уравнение:





Другими словами — что будет, если мы стартуем с единичного преобразования в момент t=0 и будем после этого постоянно вращать наше тело с фиксированной угловой скоростью x? В дифференциальной геометрии и теории обыкновенных дифференциальных уравнений доказывается, что для любого наперед заданного элемента x из алгебры Ли это уравнение имеет единственное возможное решение f(x, t), которое называется интегральной кривой. Значение этой функции в момент времени t=1 показывает «как далеко мы уйдем» из начального положения за единицу времени при движении с фиксированной угловой скоростью x и называется экспоненциальным отображением алгебры Ли на группу Ли:





Операция экспоненцирования однозначно определена для всех элементов алгебры Ли и обладает целым рядом удобных свойств:


  • Exp(0) = 1;

  • Exp(-x) = (Exp(x))-1;

  • Exp(n*x) = (Exp(x))n для целых n;



Но важнее всего то, что экспонента позволяет тривиально реконструировать упомянутую интегральную кривую f(x,t) движения с постоянной угловой скоростью f(x,t) = Exp(tx).



Причем эта кривая является геодезикой на исходном многообразии группы Ли и следовательно локально кратчайшей траекторией, соединяющей между собой точку 1 с любой другой точкой. С помощью левого сдвига этот результат можно тривиально обобщить для траектории движения между произвольными положениями a и b. Достаточно просто посчитать g=ab-1, найти такое x, для которого Exp(x) = g=ba-1, и тогда геодезикой, соединяющей a и b будет f(t) = a Exp(xt).



Ну и в общем случае геодезикой, соответствующей движению с постоянной скоростью x и проходящей через любой элемент g является f(t,x,g) = g Exp(xt).



Таким образом, экспоненцирование элементов алгебры Ли позволяет естественным образом определить оптимальные интерполяционные траектории в исходной группе Ли. Упомянутая при этом «обратная» операция, находящая для заданного элемента группы g соответствующую угловую скорость вращения x, как нетрудно догадаться, называется логарифмированием Exp( Ln( g) ) = g.



Однако в отличие от экспоненты она, как правило, определена неоднозначно; а для некоторых элементов группы логарифм может быть не определен вообще. Например, если группа Ли состоит из нескольких связных компонент (условно говоря, две сферы, а не одна), то интегральные кривые, очевидно, не могут покинуть компонент содержащий единичный элемент и логарифм для любых элементов, лежащих вне этого компонента, не определен. Физический смысл этого довольно тривиален — если мы рассматриваем, к примеру, группу вращений и зеркальных симметрий в трехмерном пространстве, то траектории, которая бы непрерывным образом перевела бы объект к его зеркальному отражению, просто не существует, а неоднозначность определения вращения связана с тем, что если объект непрерывно вращать, он регулярно будет возвращаться к одному и тому же положению.



Матричное экспоненцирование и логарифм



С практической точки зрения теперь важно отметить тот небольшой факт, что все практически используемые движения можно записать в виде действительных матриц того или иного вида. Например, группа вращений в трехмерном пространстве описывается матрицами 3x3 с единичным детерминантом, группа евклидовых движений (rigid body transformation) — матрицами 4x4 следующего вида:





Которые тоже имеют единичный детерминант и т.д. Соответствующие группы являются подгруппами общей Общей Линейной Группы GL(R,n) невырожденных матриц размерности nxn. Эта группа является группой Ли, и ей соответствует алгебра Ли gl(R,n), состоящая из всех матриц размерности nxn, скобкой Ли для которой является матричный коммутатор: [A,B]=AB-BA. И в этой алгебре естественно возникают операции матричного экспоненцирования и матричного логарифмирования, обозначаемые Exp и Ln соответственно. Прелесть этого факта состоит в том, что все прочие частные группы движений являются подгруппами этой группы Ли и им соответствуют линейные подпространства в алгебре gl(R,n). При этом они делят с более общей группой и скобку Ли, и операции матричного экспоненцирования, т.е. независимо от конкретной подгруппы движений, экспонента и логарифм определяются одинаково — через экспоненту и логарифм соответствующих матриц.



Помимо уже упоминавшихся общих свойств:


  • Exp(0) = 1;

  • Exp(-A) = (Exp(A))-1;

  • Exp(n*A) = (Exp(A))n для целых n;

  • f(x,g, t) = g Exp(tx) — геодезика, проходящая через g и соответствующая скорости x

    у матричного экспоненциала есть ряд дополнительных полезных свойств;

  • Если AB=BA то Exp(A+B) = Exp(A) Exp(B);

  • (ряд Тейлора) причем этот ряд везде сходится;

  • (ряд Меркатора), сходится при |A|<1;

  • ;

  • .



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



Давайте посмотрим, как выглядят матрицы алгебр Ли для некоторых практически значимых групп. Например, наша простая группа вращений в матричном виде записывается как «все матрицы 3x3 с единичным детерминантом», а соответствующая ей алгебра Ли состоит из матриц 3x3 следующего вида:







Где (x,y,z) — это уже упоминавшийся вектор угловой скорости, определяющий скорость вращения по принципу «длина вектора = угловая скорость, направление = ось вращения». X, y и z здесь можно рассматривать как кинематический эквивалент углов Эйлера — по сути это угловые скорости вращения относительно осей x, y и z. Но в целом получаем просто другой способ записи вращений в представлении «ось и угол».



Если же мы рассматриваем случай произвольного движения в трехмерном пространстве, записывая его 4x4 матрицами вида , где R — это 3x3 матрица вращения, а T — это 3x1 вектор сдвига, то соответствующая алгебра Ли получается образованной из матриц:







Где (rx,ry,rz) имеет уже упомянутый смысл вектора угловой скорости, а (tx,ty,tz) — это вектор мгновенной скорости тела в точке (0,0,0). Соответствующие пары векторов называют мотором мгновенных скоростей твердого тела, и с их использованием связан изящный и сравнительно малоизвестный математический аппарат так называемого винтового исчисления, которое заслуживает отдельной статьи на Хабре.



Хотим добавить еще и масштабирование? Просто добавляем диагональные элементы (sx,sy,sz), соответствующие скорости «растягивания» по каждой из осей:





А вот для rigid body движения в 2D, которое можно задать матрицами 3x3 алгебра Ли получается из матриц:





…ну и так далее, думаю, идею вы уже уловили :). Но все-таки…



Зачем все это нужно?



Интерполяция



В качестве первого примера давайте возьмем простенькую 2D-фигуру и попытаемся ее передвинуть непрерывным движением из одного положения в другое. Параметризуем положение модели (x,y) и угол поворота (a), проводим линейную интерполяцию…





Все вроде работает, однако есть какая-то слабая, но явно уловимая неестественность движения. В чем же дело? Давайте нарисуем траектории, по которым движутся точки, расположенные поначалу в левой части экрана.





Нижняя часть, где находится наш самолетик, не слишком-то похожа на поворот: разные точки движутся не только с разной скоростью, но и по разным траекториям; однако самое странное происходит в верхнем левом углу, где точки совершают характерное возвратно-поступательное движение. Я не стал делать соответствующую иллюстрацию, поскольку на практике подобный артефакт встречается не очень часто, но думаю, что среди тех, кто занимается трехмерной анимацией, подобную штуку при интерполяции хотя бы пару раз наблюдали многие.



А что будет, если мы возьмем вместо этого экспоненту? Пусть A — это матрица исходного положения объекта, а B — матрица конечного положения. Положим положение объекта в момент времени t как , где .







Как видим, получился чистый плавный поворот, в котором все точки объекта движутся с постоянной скоростью. Конечно, такого же результата можно было бы добиться и не прибегая к экспоненте, а просто вспомнив, что любое движение на плоскости является либо параллельным переносом, либо вращением вокруг некоторой точки на некоторый угол. Достаточно было бы подобрать соответствующий центр вращения и поварьировать угол. Но прелесть экспоненты и логарифма состоит в том, что это абсолютный no-brainer, всего две-три строчки кода, которые с одинаковым успехом будут работать во всех обстоятельствах. Нужно интерполировать движение в 3D? Та же самая формула автоматически выдаст вам винт, даже если вы не знаете теорему Шаля. Нужно интерполировать линейное перемещение? Та же самая формула даст линейный переход. Интересным и полезным попутным свойством экспоненцирования как способа интерполяции является то, что при интерполировании перехода между элементами подгруппы экспонента «работает» сугубо внутри этой подгруппы. То есть если, к примеру, у вас в трехмерном пространстве есть робот, который может двигаться только в определенной плоскости, или, скажем, вращается относительно определенной точки, то интерполяция между двумя его положениями автоматически будет происходить только в этой же плоскости или вращением относительно этой точки.



Параметризация и аппроксимация



Другое полезное свойство вытекает из того, что правильно заданная Exp:


  1. всегда дает элемент интересующей нас группы движений;

  2. разлагается в ряд Тейлора.



Ну то есть, допустим, хотим мы найти матрицу вращения, которая будет наилучшим образом удовлетворять определенному требованию. Скажем, у нас есть два кусочка одной и той же поверхности, и мы хотим склеить их вместе, для чего подбираем матрицу вращения, которая наилучшим образом совместит первый кусочек со вторым. Чтобы реализовать поиск такой матрицы, нам вначале придется как-то параметризовать пространство этих матриц. Это можно сделать, к примеру, с помощью углов Эйлера, но когда мы подставим получившуюся матрицу с кучей синусов и косинусов, то будет непонятно как решать получившуюся оптимизационную проблему. Мы можем вместо этого попробовать использовать в качестве параметров для оптимизации непосредственно элементы самой матрицы движения; при этом получится куда более простая оптимизационная проблема (квадратичное уравнение в случае ICP), но нет никаких гарантий, что посчитанная таким образом матрица аффинного преобразования будет вращением. Существует несколько вариантов обхода этой проблемы: к примеру, в ряде работ предлагается считать афинную матрицу, а затем ортогонализировать ее до «ближайшего» вращения. Экспоненцирование дает один из интересных альтернативных вариантов. Как уже говорилось в начале, алгебра Ли является значительно более простым «аналогом» группы Ли (вращений), которая нас интересует. Поэтому:




  1. мы параметризуем элементы алгебры Ли (а это обычное линейное пространство);

  2. используем экспоненту чтобы вернуться к интересующей нас группе.



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





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





Оно параметризует матрицу вращений хорошо известным всем приближением





Правда, обычно когда это приближение вводят, то не упоминают ни экспонент, ни ряда Тейлора :). Однако «ноги» у этого приближения растут именно из ряда Тейлора, и теперь вы знаете, как эту аппроксимацию без труда продолжить до 2, 3 и вообще какого угодно порядка для произвольных классов движений (а не только вращений). Кстати отсюда же растет хорошо известный OpenCV-стам частный случай для группы трехмерных вращений — формула вращения Родригеса.



Использование подобного рода аппроксимаций позволяет упростить оптимизационную задачу (например, свести ее опять же к квадратичной) и при этом не требует сомнительного перехода с решением задачи для афинных матриц и последующего проектирования результата на нужную группу. Единственным ее ограничением является требование к малости матрицы A, но как правило, обойти его достаточно просто. Достаточно просто параметризовать не непосредственно «матрицу положения объекта», а «матрицу движения, которое нужно применить к объекту». При условии, что объект изначально стоит более-менее где-то в правильном месте, необходимая матрица «подвижки» в целом классе задач получается достаточно маленькой. К примеру, хорошо этот подход работает в итерационных алгоритмах, поскольку шаг перемещения объектов на каждой последующей итерации в них, как правило, быстро уменьшается.



Вот такая вот простая, интересная и на удивление малоизвестная штука. А Вы используете матричные экспоненты и алгебры Ли в своих проектах :)?
Original source: habrahabr.ru.

https://habrahabr.ru/post/306400/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best

Комментарии (0)КомментироватьВ цитатник или сообщество
Van-Toi-Ra

Золотое сечение | Земля - Хроники жизни

Понедельник, 25 Июля 2016 г. 18:31 (ссылка)
earth-chronicles.ru/news/20...7-25-94429


Золотое сечение - это универсальное проявление структурной гармонии. Оно встречается в природе, науке, искусстве – во всем, с чем может сопр

Метки:   Комментарии (1)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

[Перевод] Кем был Рамануджан?

Пятница, 22 Июля 2016 г. 17:10 (ссылка)



Перевод поста Stephen Wolfram "Who Was Ramanujan?".

Выражаю огромную благодарность Полине Сологуб за помощь в переводе и подготовке публикации

Содержание



Удивительное письмо

Начало истории

Кем был Харди?

Письмо и его последствия

Стиль работы Рамануджана

Видеть то, что важно

Истина или объяснение

Переход в Кембридж

Рамануджан в Кембридже

Что было дальше

Что стало с Харди?

Математика Рамануджана

Факты — случайные или нет?

Автоматизация работ Рамануджана

Современные Рамануджаны?

Что было бы, если бы у Рамануджана была Mathematica?
На этой неделе вышел фильм "Человек, который познал бесконечность" (который мне показали еще прошлой осенью Манджул Бхаргава и Кен Оно), так что я не мог не написать о его главном герое — Сринивасе Рамануджане.







Удивительное письмо



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



Около 31 января 1913 года математик по имени Харди из Кембриджа, Англия, получил пакет документов с сопроводительным письмом, которое начиналось так: "Дорогой сэр, хочу представиться вам: я клерк из бухгалтерии порта в Мадрасе с зарплатой lb20 в год. Мне 23 года....». И продолжал: писал о том, что достиг «поразительного» прогресса в теории расходящихся рядов по математике и решил давнишнюю проблему распределения простых чисел. Сопроводительное письмо заканчивалось словами: "Я беден; если вы решите, что здесь есть что-нибудь ценное, я хотел бы, чтобы мои теоремы были опубликованы… Я неопытен, и любые ваши советы ценны для меня. Прошу извинить меня за доставленные неудобства. Искренне ваш, с уважением, С. Рамануджан".



Далее следовало по крайней мере 11 страниц технических результатов из целого ряда областей математики (из которых 2 потеряны). Там было абсурдное на первый взгляд утверждение, что сумма всех положительных чисел равна -1/12:











Были утверждения, предполагающие использование своего рода экспериментального подхода в математике:







Были там и более экзотические страницы с формулами вроде этой:







Что это? Откуда они взялись? Правильны ли они?



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



На сегодняшний день для численной проверки результатов мы можем использовать Mathematica или Wolfram | Alpha. А иногда мы можем даже просто ввести вопрос и сразу же получить ответ:







Можно убедиться (как и Г. Х. Харди в 1913 году), что формулы правильные. Однако что за человек мог их вывести? И как? Являются ли они частью более широкой картины или в каком-то смысле просто хаотичными случайными фактами из математики?



image



Другие страницы
image



image



image



image



image



image



image



image




Начало истории



За этим письмом стоит замечательная история Рамануджана.



Он родился в небольшом городке в Индии 22 декабря 1887 г. (это означает, что ему было не «около 23» лет, когда он писал свое письмо Харди, а все 25). Его семья была небогатой и принадлежала к касте браминов (священников, учителей и др.). Уже в 10 лет Рамануджан явно выделялся среди прочих по результатам экзаменов в обновленной системе школьного образования. Он также был известен из-за своей исключительной памяти: он мог декламировать цифры числа пи так же хорошо, как корни санскритских слов. Когда в возрасте 17 лет он закончил среднюю школу, ему дали стипендию для обучения в колледже.



В средней школе Рамануджан начал самостоятельно изучать математику и проводить собственное исследование численной оценки постоянной Эйлера и свойств чисел Бернулли. Ему повезло, что в 16 лет (в те дни, задолго до Интернета!) он получил копию удивительно хорошего и полного (по крайней мере, по состоянию на 1886 г.) конспекта по математике для студентов высшей школы, состоявшего из 1055 страниц! Книга была написана преподавателем трехлетней программы по математике для подготовки к экзаменам в Кембридж, и его скупой формат в стиле «только факты» был очень похож на тот, что Рамануджан использовал в своем письме к Харди.











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







Рамануджан переехал в Мадрас (теперь Ченнаи), где пробовал учиться в разных колледжах, болел и в результате продолжил свое независимое исследование по математике. В 1909 году, когда ему был 21 год, его мама в соответствии с обычаями того времени договорилась о его свадьбе с 10-летней девочкой по имени Янаки, которая начала жить с ним пару лет спустя.



Рамануджан обеспечивал себя, занимаясь репетиторством по математике, но вскоре он стал известен в окрестностях Мадраса как математик и начал печататься в недавно запущенном Журнале Индийского математического общества. Его первая статья, опубликованная в 1911 году, была посвящена вычислительным свойствам чисел Бернулли (те же числа Бернулли, что Ада Лавлейс (см. статью "Распутывая историю Ады Лавлейс (первого программиста в истории)" на Хабре) использовала в своей статье от 1843 года про аналитическую машину). Хотя его результаты не слишком впечатляли, подход Рамануджана был интересным и оригинальным: в нем сочетались непрерывная («каково численное значение?») и дискретная («какое разложение на простые множители?») математика.







После того, как друзьям-математикам Рамануджана не удается получить ему стипендию, он начинает искать работу, и в марте 1912 года Рамануджан попадает счетоводом в порт Мадрас. Его босс — главный бухгалтер — интересовался академической математикой и стал пожизненным его сторонником. Руководителем порта Мадрас в то время был выдающийся британский инженер-строитель, так что Рамануджан через него начал взаимодействовать с некоторыми британскими экспатриантами. Они рассуждали о том, есть ли у него «способности великого математика» или же он просто «мальчик-калькулятор». Они писали профессору Хилл в Лондон, который посмотрел на ряд диковинных заявлений Рамануджана о расходящихся рядах и заявил, что "г-н Рамануждан, очевидно, человек со вкусом к математике, и даже с некоторыми способностями, но он идет по неверному пути". Хилл предложил Рамануджану изучить некоторые книги.



В то время, как друзья Рамануджана продолжали искать способ поддержать его, он решил сам начать писать британским математикам — пускай и с некоторой помощью при составлении писем на английском языке. Мы не знаем точно, кому он написал первому, хотя давний соратник Харди Джон Литтлвуд незадолго до своей смерти 64 года спустя упомянул два имени: Х. Ф. Бейкер и Е. В. Хобсон. Они оба были не слишком удачным выбором: Бейкер работал в области алгебраической геометрии, а Хобсон занимался математическим анализом: достаточно далеко от того, что делал Рамануджан. В любом случае, ни один из них не ответил.



И вот в четверг, 16 января 1913 года, Рамануждан пишет свое письмо Г.Х. Харди.



Кем был Харди?







Годфри Харолд Харди родился в 1877 году в семье школьных учителей. Жили они примерно в 30 милях к югу от Лондона. С самого начала он был лучшим учеником — особенно в области математики. Даже когда я рос в Англии в начале 1970-х, такие студенты в средней школе обычно переходили в Винчестер, а после шли в Кембридж. Именно это и сделал Харди. Другие были чуть более известными, чуть менее строгими и менее математически ориентированными — это Итон и Оксфорд (в который я поступил).



Студенты кембриджского бакалавриата занимались в то время решением витиевато сконструированных проблем исчисления (это напоминало серьезные спортивные соревнования), а в конце составлялся рейтинг студентов, занимающих в нем позиции от «Senior Wrangler» (наивысший балл) до «Wooden Spoon» (самый низкий проходной балл). Харди думал, что он будет первым на курсе, однако оказался четвертым. Он пришел к выводу, что ему больше по душе строгий и формальный подход к математике, который затем стал популярным в континентальной Европе.



Британская академическая система работала в то время (и до 1960-х годов) таким образом, что после получения высшего образования лучшие студенты могли быть избраны стипендиатами колледжа и получать стипендии даже пожизненно. Харди был в Тринити-колледже — самом большом и лучшем с научной точки зрения колледже в Кембриджском университете, а после его окончания в 1900 году он был избран стипендиатом колледжа.



Темой первой исследовательской работы Харди были интегралы, подобные этим:







В течение десяти лет Харди работал в основном над тонкостями вычисления, выяснял, как брать различные виды интегралов и их сумм, и настаивал на более строгом подходе к вопросам сходимости и перестановки пределов интегрирования.



Его работы не были ни великими, ни провидческими, однако они стали прекрасными примерами математического мастерства. Как и его коллега Бертран Рассел, он начал заниматься вскоре новой областью — трансфинитными числами, однако работает с ними недолго. Затем в 1908 году он написал учебник "Курс чистой математики" — это была хорошая и даже очень успешная в свое время книга (в предисловии к ней говорилось, что учебник предназначался студентам, чьи способности достигают уровня «стандарта стипендиата»).



К 1910 году Харди в погрузился в рутину жизни профессора Кембриджского университета и занимался академической работой. И тогда он познакомился с Джоном Литтлвудом. Литтлвуд вырос в Южной Африке и был на восемь лет моложе Харди, недавний Senior Wrangler и во многих отношениях гораздо более предприимчивый. И в 1911 году Харди, который ранее работал только сам, влился в сотрудничество с Литтлвудом, продолжавшееся остаток его жизни.



Как человек Харди производил впечатление хорошего школьника, который так никогда и не повзрослеет. Казалось, ему нравится жить в структурированной среде, концентрируясь на своих математических упражнениях. Он был очень занудным — касалось ли это подсчета баллов во время игры в крикет, доказательства отсутствия Бога или написания правил для его сотрудничества с Литтлвудом. Будучи типичным британцем, он мог бы самовыражаться с умом и обаянием, однако он был жестким и отчужденным: он даже называл себя «Г. Х. Харди», будучи «Харолдом» только с матерью и сестрой.



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



Письмо и его последствия



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



Вначале там были довольно расплывчатые заявления. Но на третьей странице были формулы для сумм и интегралов и прочего. Некоторые из них отдаленно напоминали те, что были в работах Харди. А некоторые из них были определенно более экзотические. Их общая структура была характерна для этих типов математических формул, однако некоторые конкретные формулы удивляли: в них утверждалось, что некоторые вещи математически равны, тогда как нельзя было даже ожидать, чтобы они были связаны между собой.



По крайней мере две страницы оригинального письма пропали без вести. Последняя страница, которая у нас есть, снова, кажется, заканчивается неудачно: Рамануджан, описывая достижения своей теории расходящихся рядов, приходит к, казалось бы, абсурдному результату о том, что сумма всех положительных целых чисел 1 + 2 + 3 + 4 +… равна -1 / 12.



Как отреагировал Харди? Во-первых, он проконсультировался у Литтлвуда. Было ли это письмо розыгрышем? Были ли эти формулы уже известны, или, возможно, совершенно неправильны? Некоторые они опознали. А вот остальные — нет. Харди сказал позже, что и они должны быть правильными, "потому что если бы они не были правдой, никому не хватило бы воображения их придумать".



Бертран Рассел писал, что на следующий день он "нашел Харди и Литтлвуда в состоянии дикого возбуждения, потому что они считают, что нашли второго Ньютона — индуистского клерка, который зарабатывает в Мадрасе 20 фунтов в год". Харди многим людям показал письмо Рамануджана, а затем начал делать запросы правительственным департаментам, управляющим Индией. Все это заняло у него неделю, а затем он написал ответное письмо Рамануджану, в котором ясно читается волнение: "Я был чрезвычайно заинтересован вашим письмом и теоремами, которые вы сформулировали".



Затем он продолжил: "Однако вы должны понять, что, прежде чем я смогу судить правильно о ценности того, что вы сделали, я должен увидеть доказательства некоторых из ваших утверждений". Любопытно, что он сказал это. Для Харди недостаточно было просто знать, что это правда; ему нужны были доказательства. Конечно, Харди мог бы самостоятельно их найти. Однако мне кажется, что отчасти он написал так потому, что хотел получить более полное представление о том, насколько хорошим математиком был Рамануджан.



В своем письме с характерной для него точностью Харди разделил содержимое письма Рамануджана на три категории: то, что уже было известно; новое и интересное, но не очень важное; и, наконец, новое и потенциально важное. Однако единственным, что он отнес к третьей категории, было заявление Рамануджана о подсчете простых чисел, добавив при этом, что "почти все зависит от точности и строгости методов доказательства, которые вы использовали".



Харди, очевидно, сделал к тому моменту некоторые предварительные исследования работ Рамануджана, так как в своем письме он ссылается на его статью, посвященную числам Бернулли. Он пишет: "я очень надеюсь, что вы отправите мне как можно быстрее… некоторые из ваших доказательств", а затем заканчивает словами: "в надежде как можно скорее получить от вас ответ".



Рамануджан действительно быстро отреагировал на письмо Харди. Во-первых, он писал, что он ожидал такого же ответа от Харди, как и от одного "профессора математики в Лондоне", который просто сказал ему "не попадать в ловушку расходящихся рядов". Затем он отвечает на пожелание Харди строгих доказательств, говоря: «если бы я продемонстрировал вам мои методы доказательства, то, уверен, вы присоединились бы к мнению лондонского профессора". Далее он упоминает свой результат



1 + 2 + 3 + 4 +… = -1 / 12,



и добавляет, что "… если я скажу вам, то вы ответите, что мое место — в психушке". И продолжает: "я говорю об этом только для того, чтобы убедить вас, что вы не в состоянии будете следовать моим методам доказательства… основанным на одной букве". Он говорит, что его первая цель состоит в том, чтобы найти кого-то вроде Харди, чтобы проверить свои результаты, а значит, иметь возможность получить стипендию, так как "я уже живу впроголодь. Чтобы сохранить мозги, мне нужна еда...".







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



Как же он получал свои результаты? Позже я расскажу об этом подробнее. Но он, конечно, делал все виды расчетов с числами и формулами — по сути, занимался экспериментами. И, вероятно, он смотрел на результаты этих вычислений, чтобы понять, какие из них верны. До сих пор неизвестно, как он определял это; к тому же некоторые его результаты в конце концов не выдержали критики. Возможно, он использовал как традиционные приемы математических доказательств и подтверждение с помощью вычислений, так и доверял своей интуиции. Однако ничего из этого он не сказал Харди.



Вместо этого он просто вел с ним переписку о деталях результатов, а также приводил фрагменты доказательств, которые он был в состоянии дать. Казалось, Харди и Литтлвуд намеренно нивелируют его усилия: например, Литтлвуд писал о каких-то его результатах: "(d) — это, конечно, неверно". При этом они оба задавались вопросом, был ли Рамануджан "Эйлером" или просто "Якоби". Однако Литтлвуд сказал: «материал о простых числах неверен» — в том смысле, что Рамануджан неправильно допускал, что дзета-функция Римана не имеет комплексных нулей, хотя на деле их бесконечно много (на эту тему у Римана была целая гипотеза). Гипотеза Римана — известная и до сих пор нерешенная математическая задача, которую оптимист-преподаватель предложил Литтлвуду в качестве проектной работы, когда тот был еще студентом.



А что насчет странного выражения Рамануджана 1 + 2 + 3 + 4 +… = -1/12? Оно также имеет отношение к дзета-функции Римана. Для положительных целых чисел

https://habrahabr.ru/post/306250/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
Veta_160

Для любителей занимательной математики

Пятница, 22 Июля 2016 г. 18:16 (ссылка)

1 (384x147, 20Kb)Для любителей занимательной математики

Можно ли бутерброд из хлеба, сыра и колбасы разрезать одной плоскостью на две части поровну? А вы умеете ездить на квадратных колёсах? Бывают ли невидимые тела? Перелетая из Москвы во Владивосток, самолёты забираются высоко вверх по карте. Зачем делать такой крюк, а не лететь по прямой?
Не знаете?
Тогда вам сюда
2 (108x103, 5Kb)

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

Ну, а если хочется попытать силы в решении необычных задач,
тогда идем сюда
3 (112x100, 4Kb)
Как получить синусоиду, имея батон колбасы?
Возможны ли невозможные фигуры?
А Вы можете отложить на счётах 25 рублей таким же количеством костя­шек?
Почему люки на дорогах всегда делают круг­лыми?
Эти и многие другие задачи представлены в разделе "Миниатюры".
Решения задач сопровождаются наглядной анимацией, что способствует лучшему их пониманию.

Интересная миниатюра в этом разделе называется "В уме".
Решение задач в уме очень хорошо развивает его. В конце XIX века сельские школьники решали задачи из сборника С. А. Рачинского «1001 задача для умственного счёта» в уме.

Попробуйте и вы!


Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество

Следующие 30  »

<математика - Самое интересное в блогах

Страницы: [1] 2 3 ..
.. 10

LiveInternet.Ru Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат
О проекте: помощь|контакты|разместить рекламу|версия для pda