войти зарегистрироваться

JavaScriptSimplify.js — JavaScript-библиотека для упрощения ломаных линий

Рад представить вашему вниманию еще одну крохотную, но полезную open-source-утилиту своего авторства — Simplify.js.



Simplify.js — очень быстрая реализация упрощения ломаных линий на JavaScript. Изначально написав ее для Leaflet (библиотеки для интерактивных карт), после небольшого эксперимента по оптимизации захотелось выпустить ее в качестве отдельной библиотеки без зависимостей, которую можно использовать как в браузере, так и на серверных платформах, таких, как Node.js, и применять и для 2D, и для 3D-точек.

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

DelphiИспользование dll библиотек математического ядра системы Matlab в приложениях Delphi из песочницы

Матлаб для математика — это… Это не имеет выражения в словах. Это просто наше все. Мощь, предоставляемая этим пакетом математического ПО просто ошеломляет. Если что-то нельзя сделать в матлабе, то это, скорее всего, нельзя сделать на компьютере вообще. А еще вероятнее, что Вы просто не знаете, как это делать.А теперь предадимся мечтам: как бы хотелось иметь всю эту мощь под рукой в родной и милой сердцу Delphi, например… Нет ничего проще!

Маленькое и незаметное примечание

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

О чем речь?

Математическое ядро Матлаба до xx версии (ну забыл я, до какой!) было сосредоточено в пакете dll библиотек. В этих библиотеках хранятся функции для выполнения самых различных вычислений. Если установить Матлаб без единого тулбокса и без Симулинка, то все вычисления, которые можно выполнить в командной строке среды, реализованы через функции из этих самых библиотек. Помните Pascal Numerical Toolbox? Так вот он — игрушечная лопатка, по сравнению с бульдозером Матлаба. А в чем же подвох? Вам придется изрядно потрудиться, чтобы этот бульдозер завести.

Большое и жирное примечание

dll-библиотеки математического ядра Матлаба до определенной версии употребляются самим Матлабом, поэтому лежат среди исполняемых файлов пакета. В последних версиях самим Матлабом они уже не используются, однако архив с ними все равно поставляется вместе с пакетом (Необходим для работы программ, созданных в Matlab Compiler). Теоретически. Я его так и не нашел. Если хотите воспользоватеься библиотеками ищите их в интернете. Обычно, это файл mglinstaller.exe. И не забудьте поинтересоваться условиями использования — тут я тоже не в курсе. Далее я предполагаю, что библиотеки у Вас уже есть.

Ненормальное программированиеСимплекс Серпинского



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

Game DevelopmentКлассическая механика: о диффурах «на пальцах»

Недавно взглянул на сорцы Farseer Physics Engine. Стало интересно как в этом движке реализован динамический объект. Как и ожидал, не встретил там привычных мне дифференциальных уравнений и их дискретных реализаций в виде разностных уравнений или дискретных моделей пространства состояний. Главная отмазка заявляемая причина отказа от «честной» механики во многих игровых физических движках — излишняя сложность работы с дифференциальными уравнениями и слишком большая вычислительная нагрузка.

АлгоритмыРешение обратной задачи аналитической геометрии. Теория R-функций из песочницы

Навеяно недавним постом о построении различных картинок с помощью кривой Гильберта. Будет немного теории и немного картинок.

Немного теории


Компьютерный век породил теорию R-функций — функций с «логическим зарядом», возникшую на стыке дискретного и непрерывного анализов, использующую аппарат булевой алгебры, который органически присущ и ЭВМ. На основе теории R-функций была решена обратная задача аналитической геометрии, появилась возможность строить в виде элементарной функции уравнение границы сложного объекта, и притом такое уравнение, которое обладало бы необходимыми дифференциальными свойствами. В. Л. Рвачев с помощью конструктивного аппарата теории R-функций разработал единый подход к проблеме построения координатных последовательностей для основных вариационных и проекционных методов. К настоящему времени метод R-функций был применен для решения большого числа задач электродинамики, механики деформируемого твердого тела, теории пластин и оболочек, гидродинамики и магнитной гидродинамики, теплофизики и др.

ПрограммированиеРейтинг на основании истории

Постановка задачи


Контекст: есть шахматный турнир с достаточно большим количеством игроков самого разного уровня.
Приняты решения: не разбивать игроков на чётко определённые группы (друг друга не знаем ещё, непонятно, кого куда помещать), не делать турнир «на вылет» (много новичков, им просто обидно будет вылететь после первой партии). Более-менее (вручную) справляемся с выбором партнёром примерно одинакового уровня.

Задача: сделать систему рейтинга по результатам турнира. Поскольку играем не «на вылет», финала нет. Учитывать количество очков несерьёзно из-за разношерстности игроков. То есть система рейтинга должна быть такой, что выигрыш у самого слабого игрока или проигрыш у самого сильного практически не должны влиять на наш рейтинг.

GoogleГугл научился строить графики математических функций


(кликабельно)

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

ПрограммированиеАнализ производительности программного обеспечения при помощи математического планирования эксперимента из песочницы

«Преждевременная оптимизация есть корень всех зол»
Энтони Хоар

Приветствую всех пользователей Хабра!
Данная статья возникла как полезный побочный продукт моих научных изысканий. Буду рад, если идеи, изложенные ниже, покажутся для вас интересными и полезными, а еще лучше, если получат своё применение и дальнейшее развитие в реально существующих проектах.

Производительность программного обеспечения (ПО) является важным аспектом в разработке любого программного продукта. Актуальность вопроса объясняется постоянно возрастающей сложностью и значимостью программных средств. Особое внимание производительности уделяется:
  • в инженерных и научных разработках, где часто производятся сложные длительные вычисления, а процессорное время на кластерных системах дорого и ограничено;
  • в web-приложениях, в которых время генерации страницы критично для пользователя и напрямую зависит от объемов серверных мощностей;
  • в встраиваемых программных продуктах, и т.д.

Социальные сетиО теории социального баланса

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

Учебный процесс в ITЗнания по каким из математических наук пригодились вам в программировании?

Проголосовало 2236 человек. Воздержалось 969 человек.