Pull to refresh
29
0
Send message

Магия тензорной алгебры: Часть 3 — Криволинейные координаты

Reading time8 min
Views67K

Содержание


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


Введение


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

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

А пока что рассмотрим некоторые теоретические основы. Добро пожаловать под кат.
Читать дальше →
Total votes 29: ↑29 and ↓0+29
Comments8

Магия тензорной алгебры: Часть 2 — Векторные и тензорные операции. Ранги тензоров

Reading time10 min
Views130K

Содержание


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


Введение


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

А в прошлый раз мы остановились на том, что рассмотрев представление вектора в косоугольном базисе, и определив, что он представляется двумя разными (ковариантными и контравариантными) наборами координат, получили общие выражения для скалярного произведения, учитывающие изменение метрики пространства. Таким образом, мы весьма осторожно подошли к понятию тензора
Тензор — математический объект, не изменяющийся при изменении системы координат, представленный набором >своих компонент и правилом преобразования компонент при смене базиса.

Скалярное произведение — это хорошо. Но как же быть с остальными операциями? Как они связываются с геометрией пространства и представимы ли в тензорном виде? Разумеется представимы, ведь векторы — это… тензоры! И скаляры — это тоже тензоры. Привычные нам математические объекты лишь частные примеры более общего понятия, коим является тензор.

Вот об этом мы и поговорим под катом.
Читать дальше →
Total votes 33: ↑33 and ↓0+33
Comments3

Хакатон по глубинному обучению (deep learning)

Reading time3 min
Views11K
Глубокое обучение (deep learning) бурно развивается, и стабильно растёт список новых прорывов и областей его применения (обработка изображений, распознавание речи, обучение с подкреплением, нейромашинный перевод, вычислительная фармацевтика 1 и 2 и далее). Как следствие, крупнейшие мировые IT-компании (Google, Facebook, Baidu и многие другие) продолжают активно внедрять технологии глубокого обучения, создавая новые рабочие места.

Тем временем, возникает настойчиво поддерживаемая журналистами иллюзия, что вот-вот технологии глубокого обучения решат проблему создания искусственного интеллекта [1, 2, 3, 4]. Но реальность такова, что круга нерешённых задач хватит ещё на много диссертаций (см. презентация Я. Лекуна (Yann LeCun) на CVPR15, заметка Ю. Шмидтхубера (Jürgen Schmidhuber), пост Б. Гёртцеля (Ben Goertzel), уже упомянутые в статье на Хабре работы Дж. Хинтона (Geoffrey Hinton)). Осознавая этот факт, специалисты в машинном обучении стремятся повысить свою квалификацию; как показатель, на 100 мест в летней школе по глубокому обучению Ёшуа Бенжио (Yoshua Bengio) в этом году было более 600 заявок.

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


О том как это будет
Total votes 14: ↑11 and ↓3+8
Comments9

Держаться корней (к 80-летию Никлауса Вирта)

Reading time5 min
Views15K
Но, чтобы стоять,
я должен держаться корней.
Борис Гребенщиков


Юбилей Никлауса Вирта – очень значимая для меня дата. Вот уже три десятка лет считаю себя его учеником, начиная с 1982 г., когда впервые взял в руки сделанную на ксероксе копию его препринта о языке Модула-2. Примерно в то же время началась работа над нашим «Кроносом».

С профессором Виртом лично познакомился позже, в 1990 г., когда он приезжал к нам в Новосибирский Академгородок. В 1991 году провел, по приглашению Вирта, две недели в его ETH Zurich и заболел Обероном. Потом пошел своим путем, но путь этот был бы невозможен без того, что внёс в мою жизнь профессор Вирт.

Я счастливый человек. Мне невероятно повезло в самом начале пути: довелось оказаться на стыке трёх блестящих школ программирования.

Первая — школа академика Андрея Петровича Ершова (1931-1988), которую постигал, в основном, у его ближайшего соратника Игоря Васильевича Поттосина (1933-2001). Вторая — школа Никлауса Вирта. Сначала в Новосибирске, затем в Цюрихе. Была и третья, которую разглядел в себе совсем недавно. Это школа НФ ИТМиВТ (Новосибирский филиал Института точной механики и вычислительной техники).

Читать дальше →
Total votes 84: ↑73 and ↓11+62
Comments39

Система Оберон, реализованная на доступной FPGA-плате

Reading time11 min
Views15K
by Niklaus Wirth
Professor (retired)
Swiss Federal Institute of Technology (ETH)
Zurich, Switzerland

В 1988 году мы с Юргом Гуткнехтом завершили и опубликовали язык программирования Оберон [1, 2], который являлся преемником двух других языков, Паскаля и Модулы-2, разработанных мной ранее. Язык Оберон был спроектирован нами изначально как более рациональный и эффективный, чем Модула-2, что облегчило студентам академической системы образования освоение компьютерной науки. Не останавливаясь на достигнутом, в 1990 году мы построили современную операционную систему (ОС) Оберон для рабочих станций, использующую окна и возможности для обработки текстов. Затем мы опубликовали книгу, раскрывающую детали как компилятора Оберона, так и одноимённой ОС. Книга, названная «Проект Оберон», включала в себя исходные тексты системы.

Несколькими годами позднее мой друг Пол Рид предложил мне издать репринт книги, в силу её значимости для изучения системной архитектуры и дающей хорошую стартовую точку для желающих строить надёжные системы c нуля.
Читать дальше →
Total votes 33: ↑26 and ↓7+19
Comments20

Разработка OS на Go+asm Part 0x00

Reading time3 min
Views27K
Доброго времени суток %username%.

Захотелось мне пописать что-то ненормальное. Выбор пал на ОС, в конце-концов каждый программист должен написать свою ОС, пусть хотя бы учебную.

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

Part 0x00
Part 0x01
Читать дальше →
Total votes 51: ↑50 and ↓1+49
Comments27

Фильтр Маджвика

Reading time38 min
Views135K

Предисловие от переводчика


Здесь представлен один из новейших методов расчёта ориентации в пространстве по показаниям датчиков акселерометра, гироскопа и компаса — фильтр Маджвика, который, по словам автора, даёт результат лучший, чем применение фильтра на основе метода Калмана в результатах и производительности. Автор — Себастьян Маджвик (его интернет-магазин). Метод описан в статье на английском. Данная работа защищена в Университете г. Бристоля Перевода я не нашёл. Переводчик из меня так себе, особенно таких сложных текстов. Но нам же интересно, что за метод?

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


Читать дальше →
Total votes 66: ↑64 and ↓2+62
Comments17

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

Reading time2 min
Views248K

Господа! Я рад сообщить, что наконец-то все желающие могут загрузить бесплатный учебник на более чем 1600 страниц, над переводом которого работало более полусотни человек из ведущих университетов, институтов и компаний России, Украины, США и Великобритании. Это был реально народный проект и пример международной кооперации.

Учебник Дэвида Харриса и Сары Харрис «Цифровая схемотехника и архитектура компьютера», второе издание, 2012, сводит вместе миры программного обеспечения и аппаратуры, являясь одновременно введением и в разработку микросхем, и в низкоуровневое программирование для студентов младших курсов. Этот учебник превосходит более ранний вводный учебник «Архитектура компьютера и проектирование компьютерных систем» от Дэвида Паттерсона и Джона Хеннесси, причем соавтор предыдущего учебника Дэвид Паттерсон сам рекомендовал учебник от Харрисов как более продвинутый. Следуя новому учебнику, студенты строят реализацию подмножества архитектуры MIPS, используя платы с ПЛИС / FPGA, после чего сравнивают эту реализацию с индустриальными микроконтроллерами Microchip PIC32. Таким образом вводится вместе схемотехника, языки описания аппаратуры Verilog и VHDL, архитектура компьютера, микроархитектура (организация процессорного конвейера) и программирование на ассемблере — в общем все, что находится между физикой и высокоуровневым программированием.

Как загрузить? К сожалению, не одним кликом. Сначало надо зарегистрироваться в пользовательском коммьюнити Imagination Technologies, потом зарегистрироваться в образовательных программах на том же сайте, после чего наконец скачать:
Читать дальше →
Total votes 117: ↑114 and ↓3+111
Comments68

Intel Edison. Работа с облаком Intel IoT Analytics: регистрация и отправка данных

Reading time9 min
Views13K
cloud IoT

В статье дается краткое описание облака Intel IoT Analytics, предназначенное для сбора данных и управления устройств. Рассмотрена практическая работа с облаком на примере Intel Edison (Intel Edison. Первый запуск).

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

Для унификации потребовался некоторый универсальный посредник, промежуточный слой для работы с устройством. Так появился новый тип взаимодействия Machine-to-Cloud(M2C), взаимодействия устройства с облаком.

Устройство взаимодействует с облаком, по средством стандартизованного протокола. Облако реализует все логику сбора, хранения, управления данных. Также позволяет отправлять команды на устройства для управления им. Облако является универсальным “клеем” для самых разных устройств, непохожих друг на друга. Пользователь взаимодействует с облаком через веб-интерфейс или публичное API. Ниже пойдет речь об облаке Intel IoT Analytics и взаимодействия с ним Intel Edison.
Читать дальше →
Total votes 5: ↑5 and ↓0+5
Comments7

Оберон умер, да здравствует Оберон! Часть 2. Модули

Reading time4 min
Views11K
О нужности/ненужности, достоинствах/недостатках концепции модулей в языках программирования есть очень много публикаций и обсуждений, поэтому я просто расскажу о реализации системы модулей в языках Оберон-семейства.

Модуль в Оберонах — это не только единица компиляции, загрузки и связывания, это ещё и механизм инкапсуляции. При обращении к сущностям подключенного( импортированного ) модуля, требуется обязательная квалификация этого модуля. Например, если модуль A импортирует модуль B, и использует его переменную v, то обращение к этой переменной должно иметь форму B.v, что снижает количество трудноотcлеживаемых ошибок использования совершенно других сущностей с тем же именем в немодульных языках, зависящих от последовательности подключения файлов и поведения компилятора.
Читать дальше →
Total votes 23: ↑20 and ↓3+17
Comments60

На этой неделе Google может представить ОС для «Интернета вещей»

Reading time1 min
Views6.9K


IoT, или «Интернет вещей» — быстро расширяющаяся сфера, в которую вовлекаются все новые компании, создающие подключенные устройства. При этом какого-то единого стандарта по управлению всеми подобными девайсами и системами нет. Корпорация Google сейчас разрабатывает программную платформу, которая позволит решить эту проблему.

Эта платформа позволяет управлять подключенными умными устройствами, а также обеспечивает возможность таким гаджетам обмениваться данными друг с другом. Что касается ОС от Google, эта операционная система может быть представлена на Google's I/O. Рабочее название проекта — Brillo, основой платформы служит Android.
Читать дальше →
Total votes 14: ↑11 and ↓3+8
Comments2

О переводе проекта с Objective-C на Swift

Reading time9 min
Views19K
Здравствуйте, уважаемые читатели.

Среди самых животрепещущих тем, которые поднимались на наших издательских советах в последние полгода, особое место занимает язык программирования Swift. При огромном интересе к нему со стороны западных разработчиков и при подлинном изобилии книг на эту тему язык пока кажется довольно сырым. Поэтому, прощупывая почву насчет востребованности нового языка, предлагаем познакомиться с постом великолепного Мэтта Нейбурга, автора книги «Programming iOS 8: Dive Deep into Views, View Controllers, and Frameworks». Автор подробно описывает перевод приложения на новый эппловский язык, убедительно доказывая: «глаза боятся — руки делают», а гибридная сборка Objective-C и Swift отнюдь не напоминает смесь французского с нижегородским.

Приятного прочтения и плодотворных экспериментов.
Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments8

godebug — кроссплатформенный дебаггер для Go

Reading time3 min
Views13K
Ребята из компании Mailgun презентовали новый кроссплатформенный дебаггер для Go, который использует оригинальную технологию, в корне отличающуюся от стандартных подходов. Забегая наперед — с помощью Gopherjs этот дебаггер работает даже в браузере.

image
Читать дальше →
Total votes 28: ↑27 and ↓1+26
Comments8

Deconvolutional Neural Network

Reading time9 min
Views61K
Использование классических нейронных сетей для распознавания изображений затруднено, как правило, большой размерностью вектора входных значений нейронной сети, большим количеством нейронов в промежуточных слоях и, как следствие, большими затратами вычислительных ресурсов на обучение и вычисление сети. Сверточным нейронным сетям в меньшей степени присущи описанные выше недостатки.

Свёрточная нейронная сеть (англ. convolutional neural network, CNN) — специальная архитектура искусственных нейронных сетей, предложенная Яном Лекуном и нацеленная на эффективное распознавание изображений, входит в состав технологий глубокого обучения (англ. deep leaning). Эта технология построена по аналогии с принципами работы зрительной коры головного мозга, в которой были открыты так называемые простые клетки, реагирующие на прямые линии под разными углами, и сложные клетки, реакция которых связана с активацией определённого набора простых клеток. Таким образом, идея сверточных нейронных сетей заключается в чередовании сверточных слоев (англ. convolution layers) и субдискретизирующих слоев (англ. subsampling layers, слоёв подвыборки).[6]

image
Рис 1. Архитектура сверточной нейронной сети

Ключевым моментом в понимании сверточных нейронных сетей является понятие так называемых «разделяемых» весов, т.е. часть нейронов некоторого рассматриваемого слоя нейронной сети может использовать одни и те же весовые коэффициенты. Нейроны, использующие одни и те же веса, объединяются в карты признаков (feature maps), а каждый нейрон карты признаков связан с частью нейронов предыдущего слоя. При вычислении сети получается, что каждый нейрон выполняет свертку (операцию конволюции) некоторой области предыдущего слоя (определяемой множеством нейронов, связанных с данным нейроном). Слои нейронной сети, построенные описанным образом, называются сверточными слоями. Помимо, сверточных слоев в сверточной нейронной сети могут быть слои субдискретизации (выполняющие функции уменьшения размерности пространства карт признаков) и полносвязные слои (выходной слой, как правило, всегда полносвязный). Все три вида слоев могут чередоваться в произвольном порядке, что позволяет составлять карты признаков из карт признаков, а это на практике означает способность распознавания сложных иерархий признаков [3].

Что же именно влияет на качество распознавания образов при обучении сверточных нейронных сетей? Озадачившись данным вопросом, наткнулись на статью Мэттью Зайлера (Matthew Zeiler).
Читать дальше →
Total votes 20: ↑18 and ↓2+16
Comments0

Интерпретатор Оберона на Go

Reading time6 min
Views11K

Введение


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

Сегодня язык Оберон забыт, но дело Вирта проявилось в языке Go совершенно неожиданно. В некоторых аспектах реализации сходство подходов не вызывает сомнений. Конечно, каждый язык по-своему уникален и нет нужды из одного языка делать другой. Время не повернуть назад. Но в разное время люди стремились сохранить технологии, ушедшие в прошлое. Чего стоят бережно хранимые эмуляторы Спектрума и MSX, музеи старых компьютеров в разных странах. Эмуляция, как один из способов остановить мгновение прочно зарекомендовал себя.

Общепринято считать, что язык Go нашел себя в нише сетевых сервисов. Но мы пойдем другим путем.
BEGIN
Total votes 22: ↑21 and ↓1+20
Comments9

Стэнфордская стартап-школа: Нетривиальные аспекты командной работы [часть 1]

Reading time15 min
Views9.5K


Cтэнфордский курс CS183B: How to start a startup. Стартовал в 2012 году под руководством Питера Тиля. Осенью 2014 года прошла новая серия лекций ведущих предпринимателей и экспертов Y Combinator:


Первая часть курса
Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments0

Почему меньше, не значит скучнее

Reading time4 min
Views5K
В своей книге «Envisioning Information» Эдвард Тафти пишет (в переводе Сергея Сурганова и далее):
«МЫ визуализируем информацию — чтобы осмыслить её; чтобы донести, записать и сохранить эти знания — и практически всегда это делается на плоскости бумаги или компьютерного экрана. Бегство из плоскости и увеличение плотности подаваемой информации — это ключевые задачи информационного дизайна. Бегство из плоскости становится все более сложным — по мере того, как связь между изображаемыми данными и нашим трехмерным миром слабеет (с увеличением абстрактных величин) и по мере того, как число изображаемых измерений растет (с усложнением данных). И, тем не менее, вся история изображаемой информации и статистических графиков — и даже более того, любых способов коммуникации — это, в большей степени, история развития приемов, работающих на увеличение плотности информации, её сложности, многомерности, и даже иногда красоты».
Читать дальше →
Total votes 9: ↑5 and ↓4+1
Comments10

Обзор наиболее интересных материалов по анализу данных и машинному обучению №36 (16 — 22 февраля 2015)

Reading time3 min
Views10K

Представляю вашему вниманию очередной выпуск обзора наиболее интересных материалов, посвященных теме анализа данных и машинного обучения.
Читать дальше →
Total votes 16: ↑15 and ↓1+14
Comments0

Введение в курс «Анализ изображений и видео». Лекции от Яндекса

Reading time8 min
Views70K
Мы начинаем публиковать лекции Натальи Васильевой, старшего научного сотрудника HP Labs и руководителя HP Labs Russia. Наталья Сергеевна читала курс, посвящённый анализу изображений, в петербургском Computer Science Center, который создан по совместной инициативе Школы анализа данных Яндекса, JetBrains и CS клуба



Всего в программе — девять лекций. В первой из них рассказывается о том, как применяется анализ изображений в медицине, системах безопасности и промышленности, какие задачи оно еще не научилось решать, какие преимущества имеет зрительное восприятие человека. Расшифровка этой части лекций — под катом. Начиная с 40-й минуты, лектор рассказывает об эксперименте Вебера, представлении и восприятии цвета, цветовой системе Манселла, цветовых пространствах и цифровых представлениях изображения. Полностью слайды лекции доступны по ссылке.
Читать дальше →
Total votes 60: ↑54 and ↓6+48
Comments5

Objective-C Runtime для Си-шников. Часть 2

Reading time8 min
Views20K


Снова здравствуйте. Мой цикл статей посвящён тем программистам, которые перешли с языка C на Objective-C, и хотели бы ответить для себя на вопросы «каким именно образом Objective-C основывается на языке C?» и «как это все происходит изнутри?».

Большое спасибо всем за обратную связь, именно проявленный вами интерес служит для меня стимулом продолжать свои статьи по доскональному изучению Objective-C Runtime. Я начал эту часть именно с тематики своих статей, потому что хочу сделать пару уточнений:

  1. Мои статьи — не руководство по Objective C. Мы изучаем именно Objective-C Runtime настолько низкоуровнево, чтобы понимать его на уровне языка C.
  2. Мои статьи — не руководство по языку C и дебаггерам. Мы опускаемся до уровня языка C, но не ниже. Поэтому такие вопросы, как представление данных в памяти, я не затрагиваю. Предполагается, что вы знаете все это и без меня.


Конечно, статьи будут интересны так же и другим категориям программистов. Но имейте ввиду эти два пункта.

Если вы еще не читали первую статью, то настоятельно рекомендую прочитать сначала её: http://habrahabr.ru/post/250955/. А если уже читали, то добро пожаловать под кат.
Читать дальше →
Total votes 38: ↑37 and ↓1+36
Comments16

Information

Rating
Does not participate
Location
Нижний Новгород, Нижегородская обл., Россия
Date of birth
Registered
Activity