Обновить
0
0

Пользователь

Отправить сообщение

Фазовые портреты «на пальцах» или что можно узнать о решениях диффура, не решая его

Время на прочтение4 мин
Охват и читатели103K
Очень часто в ряде наук встречается ситуация, когда модель рассматриваемого процесса сводится к дифференциальному уравнению. Причём, в большинстве реальных задач это уравнение довольно сложно решить, или совсем невозможно. И вот тут в полный голос звучит извечный вопрос: как быть?
А вот об этом я как раз и решил вам рассказать

Kotlin ❤ FP

Время на прочтение11 мин
Охват и читатели33K
Предлагаю читателям «Хабрахабра» вольный перевод статьи «Functional programming in Kotlin». Автор публикации — Mike Hearn.

image

Те, кто используют .NET, наверняка слышали про F#, универсальный функциональный язык программирования для CLR. Программисты же вне .NET сообщества скорее всего знают про функциональное программирование в связи с языком Haskell.

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

Язык Kotlin (kotlinlang.org) от JetBrains может показаться всего лишь подслащенной Java: синтаксические конвенции, автовывод типов (type inference) и тому подобные мелочи. Но под незамысловатой оболочкой в нем можно найти все самые популярные и прогрессивные конструкции функциональных языков.
Читать дальше →

Идентификация материальных объектов с помощью оптического маркера

Время на прочтение6 мин
Охват и читатели15K


Для идентификации материальных объектов придумано немало различных методов. Их можно разделить на две основные группы:
  1. Методы, использующие свойство уникальности присущих объектам признаков, которые тем или иным образом поддаются регистрации/измерению и остаются неизменными в течение заданного промежутка времени в пределах допустимой погрешности.
    К этой группе можно отнести методы биометрической идентификации, оптическую идентификацию, идентификацию по пространственным координатам, «утиный» тест и т.д.
  2. Методы, основанные на маркировке объектов идентификационной информацией, которая наносится на поверхность объекта различными способами: в виде надписи и\или изображения, приклеивания этикетки с штрихкодом, привязывания бирки с номером и т.д., и последующей идентификация объектов с помощью этой информации.

Рассматриваемый в данной публикации новый метод идентификации объектов с помощью оптического маркера, по формальным признакам можно отнести ко второй группе, однако в нем также можно найти и признаки первой группы методов.
Читать дальше →

Магия тензорной алгебры: Часть 16 — Свойства тензора инерции твердого тела

Время на прочтение5 мин
Охват и читатели27K

Содержание


  1. Что такое тензор и для чего он нужен?
  2. Векторные и тензорные операции. Ранги тензоров
  3. Криволинейные координаты
  4. Динамика точки в тензорном изложении
  5. Действия над тензорами и некоторые другие теоретические вопросы
  6. Кинематика свободного твердого тела. Природа угловой скорости
  7. Конечный поворот твердого тела. Свойства тензора поворота и способ его вычисления
  8. О свертках тензора Леви-Чивиты
  9. Вывод тензора угловой скорости через параметры конечного поворота. Применяем голову и Maxima
  10. Получаем вектор угловой скорости. Работаем над недочетами
  11. Ускорение точки тела при свободном движении. Угловое ускорение твердого тела
  12. Параметры Родрига-Гамильтона в кинематике твердого тела
  13. СКА Maxima в задачах преобразования тензорных выражений. Угловые скорость и ускорения в параметрах Родрига-Гамильтона
  14. Нестандартное введение в динамику твердого тела
  15. Движение несвободного твердого тела
  16. Свойства тензора инерции твердого тела
  17. Зарисовка о гайке Джанибекова
  18. Математическое моделирование эффекта Джанибекова


Введение


Начав рассматривать динамику твердого тела мы столкнулись интересной тензорной величиной, а именно


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


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

Метод функций Ляпунова в задаче об эффекте Джанибекова

Время на прочтение8 мин
Охват и читатели23K

Введение


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

Интерпретация Мак-Куллага — наверно самое простое объяснение эффекта Джанибекова


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

О сколько нам открытий чудных готовит Office Microsoft

Время на прочтение5 мин
Охват и читатели116K


По сообщениям в комментариях к статье про блокнот, во всех версиях Microsoft Excel, начиная по крайней мере с '97 и до самых новых, в имени листа не всегда можно ввести большую букву Ж. Данная проблема обсуждается в сети уже давно, например на этом форуме забавно наблюдать, как некоторые утверждают, что у них проблемы нет, а у других есть, но не всегда, и никто не понимает, почему так. На первый взгляд можно подумать, что это просто недоработка программистов: они хотели не дать пользователю ввести символ ':', и просто не подумали о том, что Ж находится на той же кнопке.

На деле оказалось всё гораздо хуже. Описать нормальными словами то, что происходит в excel, когда вы просто нажимаете кнопку 'Ж', практически невозможно. Поэтому я попытаюсь обрисовать в целом процесс исследования, сократив его где возможно, и не слишком перегружая статью ассемблерным кодом. В итоге мы узнаем, почему получается так, что не любые символы можно ввести, и как это можно исправить.
Читать дальше →

Пять способов оптимизации кода для Android 5.0 Lollipop

Время на прочтение11 мин
Охват и читатели35K
Как сделать программы быстрее? Один из эффективных способов – оптимизация кода. Зная особенности платформы, для которой создаётся приложение, можно найти эффективные способы его ускорения.


Читать дальше →

Вероятностное программирование

Время на прочтение19 мин
Охват и читатели43K
Вероятностное моделирование является одним из мощнейших инструментов для специалиста по анализу данных. К сожалению, для его использования необходимо не только уверенно владеть аппаратом теории вероятностей и математической статистики, но и знать детали работы алгоритмов приближенного байесовского вывода, что делает порог вхождения очень высоким. Из этой лекции вы узнаете о сравнительно молодой парадигме в машинном обучении — вероятностном программировании. Его задача — сделать всю мощь вероятностного моделирования доступной любому человеку, имеющему опыт программирования и минимальный опыт анализа данных.



Лекция была прочитана Борисом hr0nix Янгелем на факультете компьютерных наук, открытом в Высшей школе экономики при поддержке Яндекса. Сам Борис окончил ВМиК МГУ и Школу анализа данных Яндекса. Работал в Microsoft Research Cambridge в группе Кристофера Бишопа над фреймворком Infer.NET. Сейчас Борис — ведущий разработчик поиска Яндекса.

Под катом — расшифровка рассказа.
Читать дальше →

Магия тензорной алгебры: Часть 15 — Движение несвободного твердого тела

Время на прочтение4 мин
Охват и читатели11K

Содержание


  1. Что такое тензор и для чего он нужен?
  2. Векторные и тензорные операции. Ранги тензоров
  3. Криволинейные координаты
  4. Динамика точки в тензорном изложении
  5. Действия над тензорами и некоторые другие теоретические вопросы
  6. Кинематика свободного твердого тела. Природа угловой скорости
  7. Конечный поворот твердого тела. Свойства тензора поворота и способ его вычисления
  8. О свертках тензора Леви-Чивиты
  9. Вывод тензора угловой скорости через параметры конечного поворота. Применяем голову и Maxima
  10. Получаем вектор угловой скорости. Работаем над недочетами
  11. Ускорение точки тела при свободном движении. Угловое ускорение твердого тела
  12. Параметры Родрига-Гамильтона в кинематике твердого тела
  13. СКА Maxima в задачах преобразования тензорных выражений. Угловые скорость и ускорения в параметрах Родрига-Гамильтона
  14. Нестандартное введение в динамику твердого тела
  15. Движение несвободного твердого тела
  16. Свойства тензора инерции твердого тела
  17. Зарисовка о гайке Джанибекова
  18. Математическое моделирование эффекта Джанибекова


Введение


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


Однако, внимательно взглянув на эти уравнения, меня следовало бы раскритиковать — дело в том, что в данных уравнениях число неизвестных слишком велико. К неизвестным следует отнести ускорение полюса inline_formula и угловое ускорение тела inline_formula, а также реакции связей inline_formula. И если движение тела ограничено хотя бы одной связью, число неизвестных величин в (1) и (2) превышает число уравнений.

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

Этим мы сейчас и займемся — посмотрим, во что превращаются уравнения (1) и (2) при добавлении уравнений связей, и что дают нам полученные уравнения в практическом смысле.
Читать дальше →

Корреляция, ковариация и девиация (часть 3)

Время на прочтение5 мин
Охват и читатели46K


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

В данной статье покажем, что матрица Грина и матрица корреляции — суть одно и то же.
Читать дальше →

Щупаем Kotlin (и чуть-чуть Gradle) на примере Отправлялки-длинных-твитов (открытые исходники)

Время на прочтение5 мин
Охват и читатели13K
Я никогда не был любителем HelloWorld и туториалов. В них как правило решаются проблемы, которые данным инструментом решаются хорошо, а вот острые углы и недостатки деликатно обходятся. По-настоящему пощупать язык или библиотеку можно только на реальном приложении, написании «бизнес-кода», а не «сервиса фабрики сервисов фабрик моделей сервисов». Пример такого простого приложения — на видео. Ну что, поехали?


Читать дальше →

Как написать пост с формулами: markdown + LaTeX

Время на прочтение3 мин
Охват и читатели25K
Привет! На Хабре периодически появляются статьи, где авторы хотят вставить математические формулы: inline_formula, inline_formula или даже


У некоторых это получается, у некоторых — с трудом. parpalak сделал web-сервис для вставки svg формул, и это очень круто. Я хочу дополнить его небольшим скриптом, с которым вставка многих формул сведется к одной команде.

Читать дальше →

Почему непросто показать все цвета в одномерном пространстве, и сколько раз это можно сделать

Время на прочтение7 мин
Охват и читатели41K
Яндекс умеет подсказывать цвета по их названию и находить близкие к ним. Некоторое время назад эту подсказку (внутри себя мы называем такие штуки «колдунщиками») пришлось переделывать, чтобы она соответствовала виду поисковых результатов после их редизайна. И мы воспользовались этим поводом, чтобы поработать над ним всерьёз, — ведь оказалось, что расположить цвета линейно — очень нетривиальная задача.







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

Skype повернулся лицом к людям?

Время на прочтение2 мин
Охват и читатели56K
Не столь давно Skype открыл для всех Skype for Web (beta).

Официально API (пока) не оглашено, и, вероятно, будет еще изменяться.

Но! Можно забыть мучения со Skype4Com, пляски со Skype4Py, попрощаться со skype-open-source, выкинуть в корзину чтение SQLite'ом из профиля пользователя и т.п.

Итак, с чего начать написание своего клиента/бота —
Читать дальше →

Пример решения типичной ООП задачи на языке Haskell

Время на прочтение6 мин
Охват и читатели26K
Рассмотрим типичную задачу, из тех, что обычно считаются «ООП-эшными». Имеется список данных (объектов) имеющих не одинаковые структуры (по научному, гетерогенный список), при чём, над каждым нужно выполнять одинаковые действия – по простому, каждый можно передать в некую функцию.
Читать дальше →

TIS-100 — паззл про многопоточный ассемблер, который никто не ждал

Время на прочтение3 мин
Охват и читатели95K
image

Удивительно, но никто не написал ничего про игрушку «TIS-100», которая недавно появилась в Steam (стоит всего 150 рублей, уже 460 положительных отзывов против 6 отрицательных).

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

Итак, о чем игра?
Читать дальше →

Используем SVG на сайте

Время на прочтение6 мин
Охват и читатели232K


Оставим за скобками вопрос о целесообразности использования SVG на сайте. Каждый сам для себя должен определить полезность этой технологии. Тем более что эта тема поднималась уже неоднократно.

Сейчас мы рассмотрим методы встраивания SVG, их плюсы и минусы, а так же возможности манипулирования элементами SVG.

Статья рассчитана в первую очередь на тех, кто до сих пор не использует векторную графику на своих сайтах, но очень хочет быть одной ногой в будущем настоящем.
Для любопытных сразу приведу сводную таблицу:
Иконочный шрифт IMG, background-image Object Inline
CSS Манипуляции Частично1 Нет Частично2 Да
JS манипуляции Частично1 Нет Да Да
SVG анимации Нет Да Да Да
Интерактивные SVG анимации Нет Нет Да Да
Читать дальше →

Размышления о способах обработки ошибок

Время на прочтение12 мин
Охват и читатели20K
Тема обработки ошибок сложна и неоднозначна. До сих пор нет какого-то оптимального подхода или группы подходов к этой проблеме. Все они страдают от тех или иных недостатков. В этой статье я хотел бы поделиться своими мыслями на эту тему, и что не менее важно, почерпнуть новые знания в комментариях.

Код в статье приводится на scala, однако рассматриваемый подход может быть реализован на многих других языках (c++ с помощью макросов, java с помощью JetBrains MPS и т.д.). Наиболее близким аналогом рассматриваемого подхода является способ обработки ошибок в haskell.
Читать дальше →

Проектирование для дислексиков, часть первая

Время на прочтение7 мин
Охват и читатели15K
Как дизайнеры, мы каждый день думаем о том, с какими испытаниями лицом к лицу приходится сталкиваться нашим пользователям, и выбираем те решения, которые могут помочь им. На этой неделе UX дизайнер Andrew Zusman расскажет нам о проблеме, с которой сталкиваются дислексики по всему миру: проблему невосприятия действительности, которая так очевидна многим из нас.
Читать дальше →

Магия тензорной алгебры: Часть 7 — Конечный поворот твердого тела. Свойства тензора поворота и способ его вычисления

Время на прочтение8 мин
Охват и читатели40K

Содержание


  1. Что такое тензор и для чего он нужен?
  2. Векторные и тензорные операции. Ранги тензоров
  3. Криволинейные координаты
  4. Динамика точки в тензорном изложении
  5. Действия над тензорами и некоторые другие теоретические вопросы
  6. Кинематика свободного твердого тела. Природа угловой скорости
  7. Конечный поворот твердого тела. Свойства тензора поворота и способ его вычисления
  8. О свертках тензора Леви-Чивиты
  9. Вывод тензора угловой скорости через параметры конечного поворота. Применяем голову и Maxima
  10. Получаем вектор угловой скорости. Работаем над недочетами
  11. Ускорение точки тела при свободном движении. Угловое ускорение твердого тела
  12. Параметры Родрига-Гамильтона в кинематике твердого тела
  13. СКА Maxima в задачах преобразования тензорных выражений. Угловые скорость и ускорения в параметрах Родрига-Гамильтона
  14. Нестандартное введение в динамику твердого тела
  15. Движение несвободного твердого тела
  16. Свойства тензора инерции твердого тела
  17. Зарисовка о гайке Джанибекова
  18. Математическое моделирование эффекта Джанибекова


Введение


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

А что внутри этого оператора? Для случая декартовых координат легко получить матрицы поворота и легко обнаружить их свойства, связав с ними какой-нибудь способ описание ориентации тела, например углы Эйлера или Крылова. Или вектор и угол конечного поворота. Или кватернион. Но это для декартовых координат.

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

Так что задача этой статьи — не заглядывая внутрь тензора поворота исследовать его свойства и получить тензорное соотношение для его расчета. А раз задача поставлена, то начнем её решать.
Читать дальше →

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность