Pull to refresh

Почему звук в воде затухает?

Reading time12 min
Views10K

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

Начать погружение
Total votes 64: ↑64 and ↓0+64
Comments32

Семь раз отмерь — один раз отрежь, или применяем поговорку на практике

Reading time4 min
Views5.3K
Сидел я значит на курсе Coursera. Курс был нацелен на начинающих по Java, и в одном из видеоуроков была поднята тема 7 Steps for Solving Problems.

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

Остальная часть курса прошла легко, ненапряжно. Но, на одном из предметов в универе, а именно по так называемому «Научному программированию» появилось следующее задание:
Решить систему линейных уравнений $Ax=b$, используя следующее разложение матрицы $A$:

$A = LU,$

где $L$ — нижняя треугольная матрица, а $U$ — верхняя треугольная матрица.

Тема линейной алгебры, которую мы проходили на 1 курсе. Говоря откровенно — я помнил общие принципы операций с матрицами, векторами, ну и святая святых — Метод Гаусса. Если пораскинуть мозгами, то никакого LU-разложения мы не изучали, зато метод «загугли» всегда выручает. Выручал, до этого момента.
Читать дальше →
Total votes 10: ↑7 and ↓3+4
Comments2

MEMS accelerometers, magnetometers and orientation angles

Reading time8 min
Views12K


When it's necessary to evaluate the orientation angles of an object you may have the question — which MEMS sensor to choose. Sensors manufacturers provide a great amount of different parameters and it may be hard to understand if the sensor fit your needs.

Brief: this article is the description of the Octave/Matlab script which allows to estimate the orientation angles evaluation errors, derived from MEMS accelerometers and magnetometers measurements. The input data for the script are datasheet parameters for the sensors. Article can be useful for those who start using MEMS sensors in their devices. You can find the project on GitHub.
Read more →
Total votes 5: ↑5 and ↓0+5
Comments0

Как создать самую компактную имитационную модель системы передачи информации сигналами с BPSK-модуляцией в GNU Octave

Reading time10 min
Views3.4K

Статья может быть интересна студентам, инженерам и разработчикам, работающим над созданием цифровых систем радиосвязи. Рассчитана на пользователей, владеющих минимальными основами работы в среде разработки Octave (MatLab). Однако, для понимания могут потребоваться довольно глубокие знания радиотехники и математики.

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

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments4

Моделирование динамических систем: введение

Reading time9 min
Views24K

Предисловие


Трудно переоценить значение компьютерного моделирования в современном мире. Давным давно канули в Лету времена, когда траектории выведения спутников на околоземную орбиту вычислялись толпой девушек-расчетчиц с «Феликсами» наперевес (была такая вычислительная машина). Сегодня скромных размеров ящик около вашего рабочего стола решает все мыслимые и немыслимые задачи. Но есть одно «но».



Состояние инженерного образования, не знаю, как там в столицах, а здесь, на периферии, выглядит в контексте данного вопроса удручающе. Винить тут стоит подход к преподаванию в вузах таких дисциплин как «Численные методы решения инженерных задач на ЭВМ», «Математическое моделирование в %нужное впишите сами%» и прочих. Эта беда инженерного образования вытекает из того факта, что в курсах, подобным перечисленным, порой напрочь отрублены междисциплинарные связи. У обучаемого не складывается в голове цепочка: фундаментальная теория -> практическое применение -> инструмент решения задачи.

У меня давно зрела мысль написать цикл, в котором будет разобрано по полочкам всё то, что мы называем современным математическим моделированием. Но сделать это просто и доступно для тех, кто только начинает познавать эту необъятную дисциплину современной науки. Что из этого выйдет, неизвестно, но тех кому стало интересно я приглашаю под кат.
Читать дальше →
Total votes 26: ↑26 and ↓0+26
Comments36

Моделирование динамических систем: численные методы решения ОДУ

Reading time6 min
Views15K

Введение


Очень кратко рассмотрев основы механики в предыдущей статье, перейдем к практике, ибо даже той краткой теории что была рассмотрена хватит с головой.



Итак, задача:
Камень бросают вертикально, без начальной скорости с высоты h = 100 м. Пренебрегая сопротивлением воздуха, определить закон движения камня, как функцию высоты камня над поверхностью Земли от времени. Ускорение свободного падения принять равным 10 м/с2
Простая задачка? Да элементарная, имеющее аналитическое решение, которое легко напишет мало-мальски грамотный школьник. Но эта простая задача послужит нам весьма показательным примером
Читать дальше →
Total votes 27: ↑27 and ↓0+27
Comments11

Моделирование динамических систем: введение в GNU Octave

Reading time7 min
Views16K
Жили-были умные, но очень жадные люди, которые написали замечательную программу Matlab. Умные они были потому, что программа вышла хорошей, а жадными, потому что очень любили деньги. Так любили, что брали их за свой Matlab не только с дядек серьезных, матлабом деньги зарабатывающих, а и с бедных студентов тоже, которым порой и сухую корочку хлеба купить не за что было. И кончилась бы сказочка скоро и невесело, если бы мир был не без добрых и умных людей, написавших похожие на матлаб программы, хоть худо-бедно работающие, да для всех желающих бесплатные. И с открытыми исходными текстами. Так что сами бедные студенты стали те программы дописывать, и работать они лучше и лучше стали с каждым годом. И стали тогда все жить-поживать, да добра наживать...


Введение


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

Вместе с тем, умение использовать универсальный математический софт это must have для современного ученого, потому что изобретая велосипед можно никогда не добраться до решения своей основной задачи. Сегодня мы рассмотрим обещанный Octave, попытавшись решить с его помощью очередную детскую задачу, сделав при этом недетские выводы.
Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments16

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

Reading time6 min
Views14K

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


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



Источник: https://xkcd.com/664/


В общем, всем настоящим студентам от бывшего студента посвящается!


Ожидания


Когда в 2014 году я заканчивал бакалавриат по специальности "Инфокоммуникационные технологии и системы связи" я почти ничего не знал о мире программирования. Да, у меня, как и у многих, был на первом курсе предмет "Информатика" — но, господи, это же было на первом курсе! Прошла целая вечность!


В общем и целом, ничего особенно отличного от бакалавриата я не ждал, и поступая на магистерскую программу "Communication and Signal Processing" Германо-Российского Института Новых Технологий.


А зря...

Читать дальше →
Total votes 25: ↑21 and ↓4+17
Comments5

Лаконичная реализация конечных автоматов в Matlab, Octave, C

Reading time6 min
Views4.2K

Актуальность


Конечные автоматы (finite state machines, fsm) — штука полезная. Особенно они могут быть востребованы в средах, где в принципе нет развитой многозадачности (например, в Octave, который является в значительной степени бесплатным аналогом Matlab) или в программах для микроконтроллеров, где не используется по каким-то причинам RTOS. До недавнего времени у меня не получалось лаконично описать конечный автомат, хотя и очень хотелось это сделать. Лаконично, т.е. без воды, без создания лишних классов, структур данных, и т.д. Сейчас это, кажется, получилось и я спешу поделиться своей находкой. Возможно, я изобрёл велосипед, но возможно также, что кому-нибудь такой велосипед окажется полезен.
Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments7

FOSS решения для математических вычислений на компьютере. Part 1 — Octave

Reading time2 min
Views1.6K
Octave — Высокоуровневый язык в основном предназначенный для математических вычислений. Синтаксис похож а синтаксис Матлаба, кроме того полностью поддерживает его(ну а Матлаб понятное дело не всегда поддерживает синтаксис Октава).
Поддерживает создание графиков с помощью GNUPlot.
Есть версии как для *nix систем, так и для Windows.
Для КДЕ есть KOctave — графический фронтэнд, может быть есть что-то подобное и для остальных WM/DE/систем
Немного детальнее
Total votes 4: ↑3 and ↓1+2
Comments8

Как однажды Emacs из Octave в Latex формулы таскал

Reading time3 min
Views2.3K
Довольно часто приходится для университета проводить различные несложные расчеты лабораторных, расчетных и, в этом семестре, дипломной работы бакалавра. По каждой из них необходимо составить отчет, в котором должны быть приведены все расчеты как в символьном виде, так и в численной форме. Иногда доводилось по три раза перенабирать отчет заново, когда преподаватель обнаруживал ошибку за ошибкой в самом начале.

Отчет в двадцать страниц, из которых пятнадцать — расчетов. Никакой разумной деятельности, только тупой и кропотливый набор формул пальчиками.

Когда я начал писать бакалаврскую работу, стало ясно, что вбивать все эти десятки/сотни формул в отчет раз по десять каждую нет никакого желания, зато есть желание побольше узнать о возможностях Emacs и Emacs Lisp.Так само собой решилось, что надо этот самый набор формул спрограммировать.
Читать дальше →
Total votes 4: ↑4 and ↓0+4
Comments3

FITS (Flexible Image Transport System) формат в Octave

Reading time3 min
Views2.1K
Продолжая свое знакомство с Octave решил я попробовать выполнить элементарные операции с FITS-файлами. Как оказалось, в «умолчательном» Octave средств для работы с FITS'ами нет. Но гугл мне помог.
Читать дальше →
Total votes 8: ↑7 and ↓1+6
Comments5

Применение Octave для вычисления центра вращения звездного поля

Reading time11 min
Views4.3K
Я уже частично говорил о работе с FITS-файлами в Octave. Теперь расскажу о применении этого математического пакета для обработки конкретных данных, а именно: для вычисления центра вращения звездного поля по набору снимков, полученных с определенным интервалом.
Читать дальше →
Total votes 31: ↑27 and ↓4+23
Comments12

Вебсервер nginx + fastcgi-wrapper + matlab

Reading time2 min
Views6.1K

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


Читать дальше →
Total votes 35: ↑29 and ↓6+23
Comments27

Программирование в Maxima

Reading time5 min
Views27K

Урок Maxima


Введение

Maxima — свободная система компьютерный алгебры (Computer algebra system — CAS), основанная на Common Lisp. В своих функциональных возможностях она едва уступает другим современным платным CAS, таким как Mathcad, Mathematica, Maple; может проводить аналитические (символьные) вычисления, численные расчеты, строить графики (при помощи gnuplot). Имеется возможность написания скриптов и даже трансляции их в код на Common Lisp с последующей компиляцией. В виду того, что maxima писалась из разрабатывалась программистами lisp, ее синтаксис может показаться несколько запутанным, поскольку язык является сразу и императивным и функциональным. Я попытаюсь разъяснить именно эти моменты и доступно изложить суть функционального подхода, и совсем не буду акцентировать внимания на конкретных математических функциях: их довольно легко освоить самостоятельно. В данной статье рассматривается именно особенности исчисления и синтаксических конструкций maxima.
Читать дальше →
Total votes 53: ↑50 and ↓3+47
Comments24

Планшет — не роскошь

Reading time8 min
Views77K
«У современных мобильных телефонов такая же вычислительная мощь, что и у компьютеров NASA в 60-е годы. И в то время этого хватало, чтобы запустить человека в космос, а сегодня — только чтобы запускать птиц в свиней.»
Фольклор


«Вы назовете это извращением. Но кто сказал, что извращение — это плохо?»
Один доцент нашей кафедры


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

Читать дальше →
Total votes 122: ↑103 and ↓19+84
Comments74

SciPy, ввод и вывод в MATLAB

Reading time4 min
Views6.9K

SciPy (произносится как сай пай) — это пакет прикладных математических процедур, основанный на расширении Numpy Python. С SciPy интерактивный сеанс Python превращается в такую же полноценную среду обработки данных и прототипирования сложных систем, как MATLAB, IDL, Octave, R-Lab и SciLab. В этом посте я хотел бы рассказать о возможностях пакета ввода/вывода scipy.io, который позволяет работать с файлами данных Octave и MATLAB.

Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments2

Методика сравнения алгоритмов и для чего она ещё может пригодиться

Reading time6 min
Views16K
Прочитав недавно статью «Введение в оптимизацию. Имитация отжига» захотел принять участие в сравнении алгоритмов оптимизации. Но ведь их действительно хорошо бы сравнить. А в материалах исходной статьи не приводится никаких количественных данных. Значит, подумал я, надо сначала сформулировать критерии сравнения. Чем и предлагаю заняться в данной статье.

Читать дальше →
Total votes 25: ↑22 and ↓3+19
Comments1

Новые инструменты (Octave и Scilab) во FlyElephant и анонс вебинаров

Reading time2 min
Views4.9K


Команда FlyElephant поздравляет всех с наступившим Новым Годом. Мы начинаем этот год с расширения списка инструментов, вебинаров и формирования сообщества вокруг проекта.

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

Для пользователей платформы FlyElephant стали доступны Octave и Scilab, таким образом полный список поддерживаемых языков и инструментов следующий: GCC (с поддержкой OpenMP), R, Python (v2 & v3), Octave и Scilab. Для участников программы бета-тестирования стал доступен следующий инструментарий: Java (v7 & v8), Julia, OpenFOAM, GROMACS и Blender. Если Вы еще не являетесь пользователем платформы FlyElephant, то зарегистрироваться можно здесь. В честь Нового Года Вы можете пополнить свой счет на $300 введя в Личном кабинете специальный промо-код: 195708679772.
Читать дальше →
Total votes 13: ↑12 and ↓1+11
Comments2

Работа с приватными репозиториями и другие обновления платформы FlyElephant

Reading time2 min
Views3.7K


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

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

В качестве вычислительного ресурса используется облако Azure. Пользователи могут запускать вычислительные задачи, написанные с помощью С++ (с поддержкой OpenMP), R, Python, Octave, Scilab, Java, Julia, OpenFOAM, GROMACS, Blender на серверах с количеством ядер от 1 до 32 и оперативной памятью до 448 ГБ.

Среди нововведений можно отметить следующие:
Читать дальше →
Total votes 11: ↑9 and ↓2+7
Comments0
1