Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Алгоритм seam carving для изменения размера изображения

Алгоритмы *Обработка изображений *Математика *
Tutorial
Seam carving это алгоритм для изменения размера картинки, сохраняющий важный контент и удаляющий менее значимый. Он был описан в статье S. Avidan & A. Shamir. Он дает лучший результат, чем обычное растягивание изображения ввиду того, что не меняет пропорций значимых элементов изображения. Две фотографии ниже демонстрируют работу алгоритма – исходное изображение имеет размер 332x480, в то время как модифицированное seam carving'ом 272x400.


В данной статье я опишу работу алгоритма используя псевдокод и код Matlab. Оригинал статьи, написанный мной на английском доступен тут, исходный код на гитхабе.
Читать дальше →
Всего голосов 84: ↑82 и ↓2 +80
Просмотры 27K
Комментарии 29

Scilab — от поиска факториала до крестиков-ноликов

Ненормальное программирование *Open source *Математика *
Добрый вечер друзья, сегодня пятница и я по традиции хотел бы поделиться с Вами своими изысканиями.
Забавная сложилась ситуация. Те немногие программисты (люди связанные с программированием), которых я знаю лично, никогда не писали игры, а люди которые от понятия «профессиональный программист», далеки примерно так же как белый медведь от принципов гуманизма, нет нет да сварганят какую-нибудь жуткую неиграбельную поделку.
Один из названных выше людей — Я.
В этой статье хочу убить двух зайцев немного рассказать людям о пакете прикладных математических программ Scilab, а заодно продемонстрировать его функции нестандартным образом
Сегодня я расскажу вам, о том, как делал крестики нолики в Scilab. За подробностями милости прошу под кат.

image

За картинку спасибо DrZugrik
Читать дальше →
Всего голосов 23: ↑22 и ↓1 +21
Просмотры 17K
Комментарии 9

Подготовка графиков в MatLab

Программирование *Математика *Matlab *
Из песочницы
В написании научных статей немалую часть времени занимает подготовка иллюстраций, графиков и диаграмм. Хочу поделиться некоторыми мыслями и примерами того, как можно ускорить этот процесс. Материал пригодиться тем, кто пользуется системой MatLab.

MatLab предоставляет широкие возможности по отображению графической информации в виде графиков, диаграмм, и т.п. Однако не всегда получаемые по умолчанию иллюстрации удовлетворяют требованиям оформления статей. Для этого в системе MatLab существует множество настроек. И чтобы ускорить подготовку иллюстраций предлагаю воспользоваться несколькими строчками кода, которые помогут помочь настроить отображение графиков.
Читать дальше →
Всего голосов 11: ↑10 и ↓1 +9
Просмотры 160K
Комментарии 25

Оптимизация оптимизации в MatLab: nested и anonymous functions

Программирование *Matlab *
Из песочницы
Добрый день!
Я занимаюсь научными исследованиями в области систем управления, и Matlab — мой основной рабочий инструмент. Одна из возможностей в MatLab — численная оптимизация. Оптимизировать (минимизировать) можно любую функцию, которая принимает на вход вектор варьируемых параметров и возвращает значение минимизируемого критерия. Естественно, в процессе оптимизации целевая функция вызывается множество раз и ее быстродействие существенно. В матлабе есть хорошие программные средства, которые часто позволяют существенно улучшить быстродействие, сохранив при этом читаемость и удобство сопровождения кода. Я приведу пример задачи, покажу на нём, что такое anonymous functions и nested functions, а потом покажу, как можно совместить эти два инструмента для заметного повышения быстродействия.

Читать дальше →
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 13K
Комментарии 12

Настройка многоконтурной системы управления фиксированной структуры

Программирование *Математика *Matlab *
Этот небольшой ликбез я опубликовал довольно давно в своем ЖЖ, но подумал, что здесь он найдет больше заинтересованных читателей.

Decentralized and Fixed-Structure H-infinity Control in MATLAB — так называется статья двух авторов (Pascal Gahinet и Pierre Apkarian), о которой я хочу рассказать здесь коротко.
Раз я решил писать для относительно широкой аудитории, предположим, что мы не знаем, что такое система управления. Тем, кому интересна сама тема поста — прокрутите, пожалуйста, текст до второй картинки.
Читать дальше →
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 3.3K
Комментарии 5

Создание и использование Matlab кластеров

Высокая производительность *Matlab *
Из песочницы
Цель статьи: хочу поделится опытом создания трех вычислительных кластеров Matlab, а также их удаленного администрирования.

Небольшое вступление

При исследовании/моделировании разных природных явлений (и не только), изредка появляется потребность в больших вычислительных способностях с которыми домашний ПК справится уже не в силе (каким бы мощным он небыл). В конце концов, эта потребность появились и у меня.

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

Итак, обо всем — по порядку


Железо в наличии:

Дома: комп (Phenom II x4 840, 7x64) и ноут (Athlon II Dual-Core M320, 7x64) соединенные в одну сеть старым добрым маршрутизатором DIR-300.

Дома у девушки: комп (i5 4440, 7x64).

На работе: 10 компов (Athlon II Dual-Core, XPx86) (связанных в одну сеть) в одном помещении и 4 (Athlon II Dual-Core, XPx86) в другом (тоже связанных в одну сеть). Локальной сети между помещениями нет.

На всех вышеперечисленных ящиках присутствует доступ в интернет.
Читать дальше →
Всего голосов 10: ↑10 и ↓0 +10
Просмотры 15K
Комментарии 15

How-to: как выбрать язык программирования для создания торгового робота

Блог компании ITI Capital Разработка веб-сайтов *Matlab *
Перевод
Tutorial
image

Один из самых распространенных вопросов, который задают люди, только начинающие интересоваться алгоритмической торговлей это «Какой язык программирования для этого подходит лучше всего?». Само собой, короткий ответ заключается в том, что никакого «лучшего» варианта не существует. При выборе инструмента следует учитывать параметры торговой стратегии, необходимую производительность, модульность, методологию разработки и требования к отказоустойчивости. В этой статье мы поговорим о главных компонентах архитектуры алгоритмической торговой системы и о том, как каждый из них влияет на выбор языка программирования.
Читать дальше →
Всего голосов 44: ↑30 и ↓14 +16
Просмотры 58K
Комментарии 22

Лечим проблемы с набором номера у GPON роутера от МГТС

Информационная безопасность *Разработка систем связи *Matlab *
Из песочницы
GPON шагает по Москве. Распространяются и связанные с ним проблемы. В данной заметке я хочу поделиться опытом по лечению несовместимости МГТСовксого роутера с имеющимся телефонным аппаратом, проявляющуюся в случайных ошибках при наборе номера.
Подробности
Всего голосов 25: ↑24 и ↓1 +23
Просмотры 46K
Комментарии 12

Создание робота балансера на arduino

Математика *Matlab *
Мне давно не давало покоя желание рассчитать какой-нибудь достаточно сложный механизм и воплотить его жизнь.
Выбор пал на задачу об обратном маятнике. Итог на видео:


Читать дальше →
Всего голосов 88: ↑86 и ↓2 +84
Просмотры 75K
Комментарии 19

Модельно-ориентированное проектирование на коленке, идентификация систем в MATLAB/Simulink

Разработка под Arduino *


Привет, Хабр!

Сегодня я хочу показать простой пример идентификации системы, основываясь на наблюдениях и экспериментальных данных. Это первая и крайне важная ступень в разработке системы управления устройством, которое описать аналитически либо невозможно, либо слишком сложно, либо неохота. Для начала рассмотрим метод «черного ящика с котом», «серый» и «белый» методы оставим на следующий раз.
Интересующихся прошу под кат.
Просто о сложном. Внимание, много картинок!
Всего голосов 31: ↑31 и ↓0 +31
Просмотры 30K
Комментарии 33

Деньги, товар и немного статистики

Математика *Matlab *
Пару лет назад мне попалась интересная статья о взаимосвязи цен на золото и нефть.

И я решил немного расширить модель и провести собственное исследование.
Прежде всего — взять не два товара, а некий более существенный набор.

После долгих поисков по интернету, я нашел этот сайт, с которого скачал архив цен (скачать XLS) на товары за 35 лет.

Все данные я обрабатывал в MATLAB.
Читать дальше →
Всего голосов 26: ↑24 и ↓2 +22
Просмотры 22K
Комментарии 47

Разработка угловой стабилизации квадрокоптера

Математика *Matlab *
Данная статья скорее логическое продолжение моей статьи о балансере: «Создание робота балансера на arduino».
В ней будут очень кратко освещены: простая модель угловой стабилизации квадрокоптера с использованием кватернионов, линеаризация, построение управления для объекта и проверка его в Matlab Simulink, а так же проверка на реальном объекте. В качестве подопытного будет выступать Crazyflie 1.0.

Сейчас оно летает так (на момент съемок я не очень правильно выставил управление):


Читать дальше →
Всего голосов 42: ↑41 и ↓1 +40
Просмотры 38K
Комментарии 17

Деньги, товар и немного статистики. Часть вторая

Математика *Matlab *
В первой части статьи я писал о статистической обработке данных по ценам на товары за более чем 30 лет.
Здесь я попробую отследить взаимосвязи между отдельными товарами.
Если быть более точным, под катом немного matlab-кода и изображения графов.
Читать дальше →
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 7.5K
Комментарии 8

Просто о сложном: высокопроизводительные вычисления для инженерных и научно-исследовательских задач

Высокая производительность *Matlab *
Из песочницы
Что нужно чтобы вскопать огород? При наличии огорода, нужны рабочие инструменты и рабочая сила (работники). А что делать если нужно вскопать быстрей или больше? Можно позвать друзей или нанять других людей, то есть увеличить число работников. Вот это и является примером высокопроизводительного вскапывания огорода. Не всегда можно увеличивать производительность вскапывания огорода путём поиска сильных работников, так как производительность каждого отдельно взятого работника ограничена. Потому и приходится прибегать к услугам большего числа работников.

Аналогично и с высокопроизводительными вычислениями. Работниками (анг. workers) так и называются отдельные компьютеры и процессорные ядра в вычислительных кластерах, если опираться на терминологию пакета МАТЛАБ (англ. MATLAB). В документации других кластеров эти ядра и компьютеры называются нодами (англ. nodes), так и буду их называть в этой заметке.
Читать дальше →
Всего голосов 19: ↑16 и ↓3 +13
Просмотры 17K
Комментарии 3

Деньги, товар и немного статистики. Дополнение

Математика *Matlab *
В статье «Деньги, товар и немного статистики» я описывал метод статистического анализа долгосрочной динамики цен и построения диверсифицированного продукта — некой корзины товаров, для которой стандартное отклонение его относительной цены за определенный период времени минимально.
Напомню, в начале вычисляются относительные цены товаров, затем их матрица ковариаций и с помощью метода множителей Лагранжа вычисляется условный минимум.

В этой статье я попробую исследовать еще несколько зависимостей.
Под катом графики.
Читать дальше →
Всего голосов 12: ↑10 и ↓2 +8
Просмотры 4.4K
Комментарии 6

ВВП, денежная масса и динамическое равновесие

Математика *Matlab *
В статье «Сбалансированная денежная единица и многосторонний клиринг» я описывал модель международных расчетов, построенную на клиринге и СДЕ — сбалансированной денежной единице.

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

Начну с описания численной модели.

Пусть в экономике страны участвуют 20 независимых субъектов.
Каждый производит некий абстрактный продукт — на сумму 100 СДЕ в единицу времени.
Задана начальная сумма денег у каждого субъекта.
Будем проводить три испытания — с начальными суммами соответственно 50, 100 и 150 единиц национальной валюты.
Начальный курс СДЕ к национальной валюте положим равным 1.
В каждую единицу времени каждый субъект может продать от 0 до 15 процентов (случайное число) продукта за границу и заработать на этом денег.
Остальной продукт потребляется.
Так же субъект может потратить от 0 до 15 процентов (случайное число) своих денег на приобретение импортных товаров.

Начальный баланс страны в клиринговой системе равен нулю.

Рассмотрим три случая:
1. Курс СДЕ фиксирован.
2. Между клиринговым балансом страны и курсом СДЕ существует обратная связь, не зависимая от времени.
3. Зависимая от времени обратная связь.

Результаты численного моделирования под катом.

Читать дальше →
Всего голосов 9: ↑6 и ↓3 +3
Просмотры 6.7K
Комментарии 23

Научно-исследовательское программное обеспечение в ВУЗах Великобритании

Разработка веб-сайтов *Программирование *Разработка под MacOS *Matlab *Разработка под Windows *
От переводчика

В этой заметке коротко о том:
  • сколько исследователей пользуется научно — исследовательским программным обеспечением (ПО) в ВУЗах Великобритании?
  • какое именно ПО используется?
  • сколько исследователей разрабатывает свое исследовательское ПО, сколько является просто пользователями исследовательского ПО, как это зависит от дисциплины, их пола и других факторов?
  • какая компьютерная операционная система выбирается разработчиками и пользователями исследовательского ПО?

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


Читать дальше →
Всего голосов 11: ↑10 и ↓1 +9
Просмотры 10K
Комментарии 2

Примеры использования машины реального времени (MATLAB, Simulink, Программно-аппаратный симулятор)

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



Всех интересующихся запуском алгоритмов управления и физических моделей в виде моделей Simulink в режиме жесткого реального времени с минимальными трудозатратами — прошу под кат!
Внимание, много изображений!
Читать дальше →
Всего голосов 12: ↑11 и ↓1 +10
Просмотры 16K
Комментарии 8

Генетический алгоритм — наглядная реализация

Программирование *Математика *Matlab *
Из песочницы
Года четыре назад, в универе услышал о таком методе оптимизации, как генетический алгоритм. О нем везде сообщалось ровно два факта: он клёвый и он не работает. Вернее, работает, но медленно, ненадежно, и нигде его не стоит использовать. Зато он красиво может продемонстрировать механизмы эволюции. В этой статье я покажу красивый способ вживую посмотреть на процессы эволюции на примере работы этого простого метода. Нужно лишь немного математики, программирования и все это приправить воображением.

Кратко об алгоритме


Итак, что же такое генетический алгоритм? Это, прежде всего, метод многомерной оптимизации, т.е. метод поиска минимума многомерной функции. Потенциально этот метод можно использовать для глобальной оптимизации, но с этим возникают сложности, опишу их позднее.

Сама суть метода заключается в том, что мы модулируем эволюционный процесс: у нас есть какая-то популяция (набор векторов), которая размножается, на которую воздействуют мутации и производится естественный отбор на основании минимизации целевой функции. Рассмотрим подробнее эти процессы.
Читать дальше →
Всего голосов 34: ↑31 и ↓3 +28
Просмотры 94K
Комментарии 12

Лучшие подходы переноса кода MATLAB в фиксированную точку

Разработка веб-сайтов *Matlab *
Перевод
При конвертации проекта из плавающей точки в фиксированную точку инженеры должны определить оптимальные типы данных в фиксированной точке. Эти типы данных должны удовлетворять ограничениям встраиваемой аппаратуры, при этом удовлетворяя системным требованиям по точности вычислений. Fixed-Point Designer помогает разрабатывать алгоритмы в фиксированной точке и конвертировать алгоритмы из плавающей точки в фиксированную точку, автоматически предлагая типы данных и атрибуты арифметики в фиксированной точке. При этом предоставляется возможность сравнения результатов симуляции в фиксированной точке с точностью до бита с эталонными результатами в плавающей точке.

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

Подготовка кода к переводу в фиксированную точку
Есть три шага, которые следует предпринять для обеспечения плавного процесса конвертации:
  1. Отделить основной алгоритм от остального кода.
  2. Подготовить код для инструментирования и ускорения.
  3. Проверить используемые функции на поддержку фиксированной точки.


Читать дальше →
Всего голосов 12: ↑10 и ↓2 +8
Просмотры 12K
Комментарии 0