В инженерных командах редко бывает так, что все работают на одном языке. Где-то исторически остался MATLAB, новые алгоритмы пишутся на Julia, а для анализа данных и сторонних библиотек используется Python.
Но какой язык лучше выбрать для вычислений? Хорошая новость в том, что в Engee ничего из этого выбирать не нужно. Все три языка могут работать вместе.
Недавно мы подготовили три материала, посвящённых этой теме.
➡️ Сравнение синтаксиса Julia, MATLAB и Python
Если приходится регулярно переключаться между языками, постоянно ловишь себя на мысли: "А как это пишется в MATLAB? А как в Python?"
Мы собрали для вас наиболее часто используемые конструкции в одном месте: работа с массивами и матрицами, линейная алгебра, функции, словари, исключения, ввод-вывод и многое другое. Пользуйтесь!
Например:
Поэлементное умножениеJulia: A .* B
MATLAB: A .* B
Python: A * B
Матричное умножениеJulia: A * B
MATLAB: A * B
Python: A @ B
Логическая индексацияJulia: A[A .> 0]
MATLAB: A(A>0)
Python: A[A>0]
➡️ Интеграция Julia, MATLAB и Python
Самое интересное — языки можно использовать совместно.
Например, передать массив из Julia в MATLAB:
x = rand(1000)
@mput x
mat"""
y = fft(x);
"""
@mget yИли сразу обратиться к библиотеке NumPy:
np = pyimport("numpy")
np.mean(y)В опубликованном проекте показана полноценная цепочка вычислений: Julia формирует исходные данные, MATLAB выполняет быстрое преобразование Фурье, Python анализирует результат через NumPy, после чего данные возвращаются обратно в Julia. Всё это происходит внутри одного проекта без экспорта файлов и ручной конвертации данных.
➡️ А что по производительности?
Заодно решили сравнить Julia, MATLAB и Python на нескольких типовых инженерных задачах.
В тест вошли:
• векторные вычисления на массивах из 10⁷ элементов;
• умножение матриц 5000×5000;
• решение СЛАУ размерностью 8000×8000;
• быстрое преобразование Фурье для 10⁷ отсчётов;
• численное интегрирование;
• метод Монте-Карло;
• решение уравнения теплопроводности.
Картина получилась вполне ожидаемой:
🔹На линейной алгебре Julia и MATLAB работают практически одинаково — обе используют высокооптимизированные BLAS/LAPACK.
🔹А вот там, где начинается большое количество последовательных вычислений — циклы, Монте-Карло, численные схемы, — Julia начинает заметно уходить вперёд. В некоторых задачах преимущество над MATLAB достигает порядка, а над Python — нескольких порядков.
Если вам интересны Julia, MATLAB или Python в инженерных расчётах — рекомендуем посмотреть все три материала. Они хорошо дополняют друг друга: сначала можно быстро найти нужную конструкцию, затем разобраться с интеграцией языков, а после посмотреть, как они ведут себя на реальных вычислительных задачах.
📎 Все материалы уже доступны в каталоге проектов сообщества Engee:
• Cравнение синтаксиса Julia, MATLAB и Python
• Интеграция Julia, MATLAB и Python
• Тестирование производительности: Julia, MATLAB, Python
