Как стать автором
Обновить
4.6

Julia *

Высокоуровневый высокопроизводительный язык

Сначала показывать
Порог рейтинга
Уровень сложности

Julia: функции и структуры-как-функции

Время на прочтение12 мин
Количество просмотров5K
Несмотря на то, что в языке Julia по замыслу отсутствует «классическое» объектно-ориентированное программирование с классами и методами, язык предоставляет средства абстрагирования, ключевую роль в которых играет система типов и элементы функционального программирования. Рассмотрим подробнее второй пункт.
Читать дальше →

Ускорение запуска Julia при помощи PackageCompiler.jl

Время на прочтение2 мин
Количество просмотров1.5K

Зайдя на официальный сайт языка программирования Julia, можно увидеть утверждение: "Julia is fast!". Однако, новые пользователи на практике сталкиваются с проблемой медленной загрузки модулей, в особенности графических [1,2]. Диалектически, причиной медленного запуска является использование JIT компиляции, использование которой и обеспечивает высокую производительность языка. При желании, с особенностями JIT можно ознакомиться в других статьях. В данной статье пойдёт речь о более практической задаче — о том, как ускорить запуск модулей в Julia при помощи PackageCompiler.jl.

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

Julia: типы, мультиметоды и арифметика над полиномами

Время на прочтение13 мин
Количество просмотров5.8K
В этой публикации речь пойдёт об основной, на мой взгляд, отличительной особенности языка Julia — представлении функций в виде методов с множественной диспетчеризацией. Это позволяет повысить производительность вычислений, не снижая читаемости кода и не портя абстрагируемость, с одной стороны, и позволяет работать с математическими понятиями в более привычной нотации, с другой. Для примера рассмотрен вопрос единообразной (с точки зрения линейных операций) работы с полиномами в представлении списка коэффициентов и с интерполяционными полиномами.
Читать дальше →

Julia. Веб-сервисы

Время на прочтение14 мин
Количество просмотров4.7K


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


Отметим, что в силу молодости Julia, имеется набор конкурирующих пакетов. Поэтому попробуем разобраться как и для чего их использовать. Попутно сравним реализации одного и того же JSON-веб-сервиса с их помощью.

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

Истории

Джулия в латексе

Время на прочтение3 мин
Количество просмотров9.9K


В научной среде очень важную роль играет визуализация данных и оформление теории. Для удобного и красивого представления формул часто используются инструменты реализующие LaTeX-команды, например Markdown и MathJax.


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

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

Настройка LaTeX в Sublime Text

Время на прочтение3 мин
Количество просмотров14K


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

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

6 нежданчиков от Джулии

Время на прочтение19 мин
Количество просмотров9.7K


Наконец-таки появилось русскоязычное руководство по языку Julia. Там реализовано полноценное введение в язык для тех, у кого мало опыта в программировании (остальным будет полезно для общего развития), так же имеется введение в машинное обучение и куча заданий для закрепления материала.


Во время поисков наткнулся на курс программирования для экономистов (помимо Джулии там есть и Питон). Опытные могут пробежаться по экспресс курсу или ознакомиться с книгой How to Think Like a Computer Scientist


Далее предоставлен перевод материала из блога Christopher Rackauckas 7 Julia Gotchas and How to Handle Them

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

Julia и оптимизация

Время на прочтение9 мин
Количество просмотров4.5K


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

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

Julia и рой частиц

Время на прочтение5 мин
Количество просмотров8.9K


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

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

Julia, Градиентный спуск и симплекс метод

Время на прочтение10 мин
Количество просмотров15K


Продолжаем знакомство с методами многомерной оптимизации.


Далее предложена реализация метода наискорейшего спуска с анализом скорости выполнения, а также имплементация метода Нелдера-Мида средствами языка Julia и C++.

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

Julia и метод покоординатного спуска

Время на прочтение5 мин
Количество просмотров21K


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


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

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

Julia. Генераторы отчётов и документации

Время на прочтение13 мин
Количество просмотров11K


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


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

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

Julia. Строки и Метапрограммирование

Время на прочтение8 мин
Количество просмотров4.2K


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

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

Ближайшие события

27 марта
Deckhouse Conf 2025
Москва
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань

Julia. Скрипты и разбор аргументов командной строки

Время на прочтение10 мин
Количество просмотров5.2K


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

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

Julia. Работа с таблицами

Время на прочтение13 мин
Количество просмотров9.6K


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


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


Безусловно, одним из важнейших этапов работы программы, выполняющей анализ данных, является их импорт и экспорт. Причем, наиболее распространенный формат представления данных — это таблица. Существуют библиотеки для Julia, которые предоставляют доступ к реляционным СУБД, используют обменные форматы типа HDF5, MATLAB, JLD. Но в данном случае нас будет интересовать только текстовый формат представления таблиц, типа CSV.

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

Julia и движение заряженной частицы в электромагнитном поле

Время на прочтение6 мин
Количество просмотров9.1K


Закрепляем навыки решения и визуализации дифференциальных уравнений на примере одного из самых распространенных эволюционных уравнений, вспоминаем о старом-добром Scilab и пытаемся понять, а надо ли оно нам… Под катом картинки (килобайт на семьсот)

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

Julia и уравнения в частных производных

Время на прочтение6 мин
Количество просмотров10K


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

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

Julia и фазовые портреты динамических систем

Время на прочтение5 мин
Количество просмотров5.9K


Продолжаем осваивать молодой и перспективный язык общего назначения Julia. Но для начала нам нужна как раз таки сугубо узкая возможность применения — для решения типичных задач физики. Это самая удобная тактика освоения инструмента: чтоб набить руку, будем решать насущные проблемы, постепенно увеличивая сложность и находя способы облегчения своей жизни. Короче, будем решать дифуры и строить графики.

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

Как я с Python на Julia переходил (и зачем)

Время на прочтение7 мин
Количество просмотров20K

Немного предыстории о Python


Python — замечательный язык. Несколько языков я и до него пробовал: Pascal в школе; Си, Си с классами, Си++ — в университете. Последние два (три) привили стойкое отвращение к программированию: вместо решения задачи возишься с аллокациями и деструкторами (страшные слова из прошлого), мыслишь в терминах низкоуровневых примитивов. Мое мнение — Си не подходит для решения учебных и научных задач (во всяком случае, в области математики). Уверен, что мне возразят, но я никому не пытаюсь ничего навязать, просто высказываю своё мнение.

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

Я бы так наверное всю жизнь и писал бы на Python, если бы не пришлось внезапно реализовывать статистические тесты NIST. Казалось бы, задача очень простая: есть массив длины несколько (>= 10) мегабайт, есть набор тестов, которые надо применить к данному массиву.
Читать дальше →

Графика в Julia. Странные паттерны, отражение треугольника от прямой и построение нормалей сферического кота в вакууме

Время на прочтение5 мин
Количество просмотров12K


Продолжаем знакомство с очень молодым, но невероятно красивым и мощным языком программирования Julia. Шестилетняя бета наконец-таки закончилась, так что теперь можно не бояться изменений синтаксиса. И пока все спорят, хорошо или плохо начинать индексацию с единицы, взбудораженное сообщество активно закопошилось: выходят новые библиотеки, старые обновляются, стартуют серьёзные проекты, и в университетах этому языку активно учат студентов. Так не будем же отставать! Завариваем чай покрепче, потому что этой ночью будем кодить!

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