Сообщество Engee

Индустриальные прикладные применения Julia

Автор
avatar-alexevsalexevs
Notebook

Индустриальные прикладные применения Julia

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

Введение

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

Все кодовые ячейки для открытия скриптов этого урока закомментированы. Это сделано во избежание путаницы при открытии сразу всех скриптов этого урока по нажатию на кнопку "Запустить скрипт". Чтобы запустить любой из упоминаемых далее примеров, достаточно перейти по соответствующей ссылке в документации или раскомментировать и выполнить соответствующую ему строку кода.

Обрабатывает сигналы

Начнём с простого - получим из сигнала одного вида сигнал другого вида.

In [ ]:
# engee.script.edit("/user/start/examples/dsp/square_wave_from_sine_waves/square_wave_from_sine_waves.ngscript")

Мало измерить или рассчитать сигнал - нужно вычленить главное.

In [ ]:
# engee.script.edit("/user/start/examples/dsp/convolution_filter_to_smooth_data/convolution_filter_to_smooth_data.ngscript")

Мы не знаем, снятся ли роботам электроовцы, но китов они слушают...

In [ ]:
# engee.script.edit("/user/start/examples/dsp/fourier_transforms/fourier-transforms.ngscript")

... и смотрят на солнце, не щурясь.

In [ ]:
# engee.script.edit("/user/start/examples/dsp/periodic_data_fft/periodic_data_fft.ngscript")

Анализирует данные

Робот осваивает индукцию и дедукцию.

In [ ]:
# engee.script.edit("/user/start/examples/data_analysis/excel_table_to_model/excel_table_to_model.ngscript")
In [ ]:
# engee.script.edit("/user/start/examples/math_and_optimization/curve_fitting/curve_fitting.ngscript")

Учится справляться с нехваткой данных.

In [ ]:
# engee.script.edit("/user/start/examples/data_analysis/data_processing/data_processing.ngscript")

Старается представить, что будет дальше.

In [ ]:
# engee.script.edit("/user/start/examples/data_analysis/interpolation_extrapolation/interpolation_extrapolation.ngscript")

И как самый настоящий Железный Дровосек, пытается понять природу человеческого сердца.

In [ ]:
# engee.script.edit("/user/start/examples/edu/ECG/ECG.ngscript")

Обрабатывает и анализирует увиденное

Он обладает "зрением", и ничто человеческое ему не чуждо, например:

Смотреть на котиков,

In [ ]:
# engee.script.edit("/user/start/examples/image_processing/affine_transform/affine.ngscript")
In [ ]:
# engee.script.edit("/user/start/examples/image_processing/video_processing/demo_video_processing.ngscript")

и на звезды.

In [ ]:
# engee.script.edit("/user/start/examples/aerospace/star_sensor_image_processing/stars_filter.ngscript")

Классифицирует и кластеризует данные

Пытливый электронный мозг не может ограничить себя наблюдением, он ищет закономерности:

различает цветы по видам

In [ ]:
# engee.script.edit("/user/start/examples/data_analysis/Classification_Algorithms/Classification_Algorithms.ngscript")

и объединяет их в группы.

In [ ]:
# engee.script.edit("/user/start/examples/data_analysis/clustering_algorithms/clustering_algorithms.ngscript")

Он с уверенностью отличит гуся от самолёта,

In [ ]:
# engee.script.edit("/user/start/examples/image_processing/neural_net_classification_onnx/resnet_classification.ngscript")

и пусть пока что он не существует, но мыслить уже умеет.

In [ ]:
# engee.script.edit("/user/start/examples/integrated_languages/python_network/first_and_second.ngscript")

Говорит на разных языках

Он поймёт речь и мысли роботов-иностранцев, в не зависимости от их языка:

In [ ]:
# engee.script.edit("/user/start/examples/integrated_languages/from_MATLAB_to_Engee/from_MATLAB_to_Engee.ngscript")
In [ ]:
# engee.script.edit("/user/start/examples/integrated_languages/python_demos/UsingPythonInEngee.ngscript")
In [ ]:
# engee.script.edit("/user/start/examples/integrated_languages/calling_c_code/demo_calling_C_code.ngscript")

Кстати, на C / C++ он и сам отлично разговаривает:

In [ ]:
# engee.script.edit("/user/start/examples/integrated_languages/hello_world_gcc/hello_world_gcc.ngscript")

Пишет и читает

Он читает и пишет во многих форматах,

In [ ]:
# engee.script.edit("/user/start/examples/base_simulation/reading_and_writing_files/reading_and_writing_files.ngscript")

даже переводит иностранную литературу.

In [ ]:
# engee.script.edit("/user/start/examples/project_management/mlx_to_ngscript_conversion/mlx_to_ngscript_parser.ngscript")

Занимается графическим представлением

Рисует точки,

In [ ]:
# engee.script.edit("/user/start/examples/math_and_optimization/complex_numbers_plot/complex_numbers_plot.ngscript")

рисует поверхности,

In [ ]:
# engee.script.edit("/user/start/examples/math_and_optimization/graphical_comparison/graphical_comparison.ngscript")

рисует фигуры.

In [ ]:
# engee.script.edit("/user/start/examples/data_analysis/draw_rose/draw_rose_script.ngscript")

Он разбирается во многих видах изобразительного искусства.

In [ ]:
# engee.script.edit("/user/start/examples/data_analysis/plots_gallery/plots_examples.ngscript")

Запускает симуляцию физического процесса

Он понимает, как ведут себя сложные физические объекты и системы.

In [ ]:
# engee.script.edit("/user/start/examples/math_and_optimization/ultrasound_heat_transfer/ultrasound_heat_transfer.ngscript")

Создает "жизнь"!

Наш робот убеждён, что "жизнь" - это игра!

In [ ]:
# engee.script.edit("/user/start/examples/image_processing/Game_Of_Life/GameOfLife.ngscript")

Домашнее задание

В примере GameOfLife.ngscript мы использовали функцию heatmap() для отрисовки мира игры. Этой командой мы будем пользоваться и на следующих уроках. В качестве добровольного домашнего задания мы предлагаем Вам:

  1. Создать свой вариант игры "Жизнь", формируя поле (начальное состояние) игры по своему усмотрению.
  2. Сгенерировать простые базовые фигуры игры "Жизнь", изучить изменение их состояний при взаимодействии. Примеры базовых фигур приведены ниже.

figures.jpg