0% нашли этот документ полезным (0 голосов)
18 просмотров16 страниц

ВЕРОЯТНОСТЬ И СТАТИСТИКА ЛР0

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

Загружено:

ilia0510
Авторское право
© © All Rights Reserved
Мы серьезно относимся к защите прав на контент. Если вы подозреваете, что это ваш контент, заявите об этом здесь.
Доступные форматы
Скачать в формате PDF, TXT или читать онлайн в Scribd
0% нашли этот документ полезным (0 голосов)
18 просмотров16 страниц

ВЕРОЯТНОСТЬ И СТАТИСТИКА ЛР0

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

Загружено:

ilia0510
Авторское право
© © All Rights Reserved
Мы серьезно относимся к защите прав на контент. Если вы подозреваете, что это ваш контент, заявите об этом здесь.
Доступные форматы
Скачать в формате PDF, TXT или читать онлайн в Scribd
Вы находитесь на странице: 1/ 16

1

ВВОДНОЕ ЛАБОРАТОРНОЕ ЗАНЯТИЕ


«ОСВОЕНИЕ ИНТЕРФЕЙСА ENGEE»

1 Цель работы

Получение общего представления о среде математических вычислений


Engee –особенностей интерфейса, функциональных основных возможностей,
формирования навыков практической работы в среде Engee, математических вы-
числений, моделирования, разработки приложений и анализа данных.

2 Краткие теоретические сведения

2.1 Что такое Engee?

Engee – это российская платформа корпоративного уровня для разработки


сложных технических систем и алгоритмов с применением современной методо-
логии модельно-ориентированного проектирования.
Российская платформа Engee применяется для решения широкого диапа-
зона задач: от математики, машинного обучения, оптимизации и ИИ, продолжая
прикладными инженерными задачами в области ТАУ, физического моделирова-
ния, цифровой обработки сигналов, радиокоммуникаций, РЛС, навигации и про-
чих в таких отраслях промышленности, как образование, авиация, космос, ОПК,
финансовая отрасль, автомобилестроение, радиоэлектронная отрасль, транспорт
и пр.
Среда математических вычислений Engee разработана с учетом много-
летнего опыта выполнения исследовательских задач с целью обеспечить инжене-
ров наиболее удобной и интуитивно понятной средой для решения повседневных
задач. Парадигма low-code и основные принципы организации среды позволяют
2
минимизировать рутину и автоматизировать многие процессы для ускорения раз-
работок.
Особенности среды математических вычислений:
1) мультиязычность – среда не ограничивает пользователя одним языком и
позволяет использовать огромное мировое наследие для решения своих задач;
2) поддерживаемые языки:
 Engee (jl);
 Python;
 MATLAB;
 С/С++, dll/lib;
3) десятки предустановленных расчетных библиотек;
4) быстрая скорость работы среды – Engee построена на базе языка Julia, ко-
торый является одним из самых быстрых, он принципиально быстрее MATLAB и
Python, может быть сравним с C и Fortran;
5) единое вычислительное пространство для организаций и предприятий;
6) визуализация и научная графика;
7) удобные и эргономичные расчетные интерактивные скрипты, LaTex,
MarkDown; разработано на основе опыта лучших мировых сред разработки инже-
нерного ПО;
8) парадигма Low-code Apps для типовых задач – среда не требует знания
языков программирования и обладает огромным функционалом для инженеров и
ученых;
9) качественная документация и поддержка.

2.2 Интерфейс Engee

Для входа в личный кабинет Engee необходимо открыть ресурс –


https://engee.com/account/login. Если пользователь не был ранее зарегистрирован,
3
необходимо пройти регистрацию. Личный кабинет пользователя представлен на
рисунке 1.

Рисунок 1 – Личный кабинет Engee

Чтобы перейти к рабочему пространству Engee, необходимо нажать кнопку


Старт Engee (рисунок 2). Если сессия Engee уже запущена и пользователь вер-
нется на страницу позже, то кнопка Старт Engee сменится на Открыть Engee.
Чтобы остановить личный экземпляр сервера Engee, необходимо нажать кнопку
Стоп.

Рисунок 2 – Кнопка старта


4
При запуске сессии Engee открывается рабочее пространство, которое вклю-
чает следующие элементы:
 холст – это рабочая область, на которой строятся модели;
 раздел программной разработки – набор инструментов для работы с ко-

дом, состоящий из редактора скриптов , командной строки и окна диагно-

стики модели ;
 раздел файлов и переменных – набор инструментов для работы с фай-

лами и переменными, состоящий из файлового браузера и окна переменных

;
 приложения – набор приложений, состоящий из инспектора данных, ре-
дактора цифровых фильтров. эти приложения открываются в отдельной вкладке
браузера;
 библиотека блоков – набор блоков, из которых собираются модели;
 раздел управления симуляцией – набор опций для управления моде-

лями. на этой панели запускаются , останавливаются , компилируются


модели и настраивается время их симуляции;
 генерация кода – инструмент для генерации кода из моделей. генерация
реализована для языков си, chisel и verilog (hdl). подробнее о генерации кода в
engee читайте в статье;
 панель навигации по моделям – панель для выбора нужной модели и
перемещения по иерархии внутри конкретной модели;
 окно физических переменных – это инструмент, который помогает про-
верять начальные условия и целевые значения моделей;
 раздел настроек и визуализации – набор инструментов, состоящий из

окна настроек и окна графиков ;


 личный кабинет – переход в личный кабинет пользователя;
 документация – переход в документацию engee.
 настройки интерфейса – набор опций для настройки рабочего простран-
ства. включает в себя выбор языка, раскладку интерфейса и многое другое;
5
 обратная связь – инструмент для отправки предложений, сообщений об
ошибках или запросов на новые функции. также с его помощью можно перезапу-
стить ядро engee;
 сделать скриншот – инструмент для сохранения снимков в форматах png
и svg. также поддерживаются закладки, которые позволяют быстро перемещаться
между моделями и их уровнями вложенности;
 настройка масштаба – регулирует масштаб холста, не влияя на масштаб
интерфейса или браузера;
 строка состояния – отображает текущее состояние модели, выбранный
решатель, время симуляции и ее прогресс. также она позволяет переходить к

вкладкам окна настроек .


Важно! Для отображения инструментов моделирования включите

настройку Среда моделирования в Настройках интерфейса , как показано


на рисунке 3.

Рисунок 3 – Настройка среда моделирования

2.3 Переменные в среде Engee

Для ввода команд можно использовать командную строку или редактор

скриптов. Командная строка – это инструмент для выполнения широкого


спектра задач, от исполнения кода до создания сложных моделей в Engee. Благо-
даря поддержке популярных текстовых редакторов, интеграции с Git и различ-
ными режимами работы, а также многочисленным командам управления, команд-
ная строка интегрируется во все сценарии работы Engee.
6
Для выполнения команды её необходимо ввести в командном окне сразу по-
сле подсказки engee>. Для отправки их на исполнение – нажать клавишу Enter
(листинг 1). Напоминание! Engee построена на базе языка Julia.

Листинг 1 – Пример простого вычисления


engee> 3*5
15

Если результат вычислений специально не присваивать какой-нибудь пере-


менной, то Julia просто демонстрирует его, но не сохраняет результат операции.
Знак равенства (=) в Julia – это оператор присваивания, означающий, что
результат вычисления (выражение справа от знака равенства) присваивается пе-
ременной (которая слева от знака) (листинг 2).
Если ввести x = 3 + 4, Julia сперва вычисляет 3 + 4, а затем присваивает
результат (7) переменной x.

Листинг 2 – Пример присваивания


engee> m=3*5
15
engee> m=m+1
16

Все созданные переменные отображаются в окне для переменных (слева).


Для того чтобы открыть окно переменных, необходимо нажать на кнопку {x} (Пе-
ременные) на панели инструментов в левой части экрана (рисунок 4).

Рисунок 4 – Рабочая область (переменные)


7
Когда исполняется команда без точки с запятой в конце, Julia выводит ре-
зультат операции в самом командном окне. Если добавить точку с запятой в ко-
нец команды, то результат выполнения этой команды не будет отображаться.
Результат не появится в окне Командная строка, но его можно увидеть его в окне
Переменные.
Переменным можно давать любые названия, с которыми будет удобно ра-
ботать. В Julia очень мало технических ограничений на названия переменных:
названия должны начинаться с буквы, цифры или знака подчеркивания (_) и со-
держать в себе только буквы (латинского, русского или других алфавитов), цифры
и разрешенные знаки. Переменные Julia чувствительны к регистру.
Для очистки истории командной строки можно воспользоваться ко-
мандой Ctrl+L. Вызов этой команды не очищает историю предыдущих ко-
манд.
В Julia есть встроенные константы, например pi хранит значение числа π, а
также встроено множество функций, например abs (абсолютное значение) или
exp (экспонента).

2.4 Векторы и матрицы

Некоторые типы переменных в Julia являются коллекциями, одним из видов


типов данных-коллекций являются массивы. Такие переменные содержат в себе
много чисел, строк и любых других элементов. Можно складывать в массивы раз-
ные данные, характеризующие один общий объект.
Для создания массивов, хранящих несколько значений, используются квад-
ратные скобки (листинг 3).

Листинг 3 – Создание массива


x = [3 5]
1×2 Matrix{Int64}: 3 5
8
Если разделять элементы массива при помощи пробелов Julia объединяет их
в коллекцию типа Matrix – тип коллекций, имеющий одно или несколько измере-
ний и некоторые собственные методы работы. Если, однако, разделить числа за-
пятыми или точкой с запятой, то Julia создаст коллекцию типа Vector (ли-
стинг 4).

Листинг 4 – Создание вектора


x = [3 5]
1×2 Matrix{Int64}: 3 5

Если совместить в одном объявлении разделители в виде пробелов и в виде


точки с запятой, то можно создать матрицу, то есть массив с несколькими стро-
ками и столбцами. Задавая матрицу значений, принято описывать ее построчно,
строка за строкой (листинг 5).

Листинг 5 – Создание матрицы 2х3


x = [3 4 5; 6 7 8]
2×3 Matrix{Int64}:
3 4 5
6 7 8

print(x)
[3 4 5; 6 7 8]

Элементы в квадратных скобках могут быть числами, переменными или ре-


зультатами вычислений каких-либо математических выражений.
Если нужно создать более длинный вектор, вводить числа одно за другим
уже не практично. Более удобный способ задания упорядоченных последователь-
ностей состоит в том, чтобы использовать оператор : для определения диапазона,
заданного границами интервала. Шаг между числами по умолчанию равен 1.
Если написать y = 5:8 или y=[5:8], то будем создан не вектор, а объект типа
диапазон (range). Он будет хранить не сами элементы диапазона, а их функцию-
генератор (листинг 6).
9
Листинг 6 – Создание функции-генератора
y = [5:8]

1-element Vector{UnitRange{Int64}}:
5:8

Если после диапазона добавить точку с запятой (;), то будет получен век-
тор-столбец чисел (листинг 7).

Листинг 7 – Создание вектора-столбца


y = [5:8;]

4-element Vector{Int64}:
5
6
7
8

Оператор диапазона (:) по умолчанию создает ряд чисел с шагом 1, однако


можно указать любой другой шаг (листинг 8).

Листинг 8 – Создание вектором в диапазоне с шагом 2


x = [20:2:26;]

4-element Vector{Int64}: 20 22 24 26

В Julia есть много функций для создания часто требуемых стандартных мат-
риц, например, состоящих из случайных чисел (листинг 9).

Листинг 9 – Использование функции rand


x = rand(2,2)
2×2 Matrix{Float64}:
0.19708 0.546564
0.489922 0.983707

print(x)
[0.19708032071070547 0.5465642655617113;
0.4899215996759634 0.9837071394460919]
10
Аргумент вида (2,2) в команде rand(2, 2) означает, что команда должна
вернуть матрицу размером 2 на 2 элемента, содержащую равномерно распре-
деленные от 0 до 1 случайные числа.
Если передать в функцию инициализации матриц одно число (n), то будет
получен одномерный вектор.
Если указать два аргумента (n, m), будет создана матрица с n строками и
m столбцами.
Тот же синтаксис, что и rand, используют многие другие функции создания
массивов. К примеру, функции zeros и ones создают матрицы, целиком запол-
ненные нулями или единицами соответственно.
Можно получить значения из матрицы при помощи индексов, но нужно учи-
тывать порядок размерностей: строка, столбец. Слово end можно использовать
тогда, когда нужно получить последний элемент строки или столбца массива (ли-
стинг 10).

Листинг 10 – Обращение к элементам массива


x=data[6,3]
9.0698
y=data[end,3]
5.3002

Оператор двоеточие (:) можно использовать в качестве индекса массива. То-


гда он обозначает, что нужно вернуть «все элементы по некоторой размерности
массива».
Так что код x = A[:,1] создаст вектор-столбец, в котором содержатся все
элементы из первого столбца матрицы A.
Добавление точки перед оператором (.*, .^, ./) превращает его в опера-
цию над массивами, что позволяет применять их конкретному элементу мас-
сива.
11
2.5 Построение графиков

Два вектора одинаковой длины можно вывести на график (рисунок 5), ис-
пользуя их как координаты точек, при помощи функции plot (листинг 11).

Листинг 11 – Построение графика


plot(sample,mass1)

Рисунок 5 – Результирующий график

Результат – график с вектором sample по оси X и mass1 по оси Y.

В функцию plot можно передать еще много параметров, устанавливающих


цвет и стиль линий и маркеров.
plot(x, y, color=:red, linestyle=:dash, mark-
ershape=:o)
Указанная команда выводит пунктирную линию (linestyle=:dash) красного
цвета (color=:red) с маркерами в виде кругов (marker=:o).
У всех аргументов есть укороченные версии команд, и такой же график
можно построить другим образом, как показано в листинге 12 (рисунок 6).

Листинг 12 – Построение графика


plot(x, y, c=:red, s=:dash, m=:o)
12

Рисунок 6 – Результирующий график

Чтобы каждый новый график строился на уже существующем графическом


полотне, его построение нужно осуществлять при помощи модифицированной ко-
манды: после нее должен стоять восклицательный знак (!). Пример показан в
листинге 13 (рисунок 7).

Листинг 13 – Построение нескольких графиков на одном полотне


plot(sample, mass2, c=:red, s=:dash, m=:o)
plot!(sample,mass1,c=:black,m=:square,la=0)

Рисунок 7 – Результирующий график


13
Прописать заголовок графика (и другие параметры аннотации) можно при
помощи дополнительных аргументов функции plot либо через функции-модифи-
каторы. Например, через параметр title или через функцию title!. Этой функции
нужно передать текст заголовка графика как аргумент. Текстовые строки в Julia
хранятся в двойных кавычках (").

2.6 Функции в Engee

В языке Julia функция представляет собой объект, который сопоставляет


кортеж значений аргументов с возвращаемым значением. Базовый синтаксис
определения функций в Julia следующий:

function f(x,y)
x + y
end

Эта функция принимает два аргумента, x и y, и возвращает значение послед-


него вычисленного выражения: x + y.
Есть и второй, более сжатый синтаксис для определения функции в Julia.
Традиционный синтаксис объявления функций, показанный выше, эквивалентен
следующей компактной форме присваивания:

f(x,y) = x + y

В форме присваивания тело функции должно быть одним выражением. Вы-


зывается функция всегда с помощью употребления ее имени вместе со спис-
ком значений параметров, взятым в круглые скобки.
Значение, возвращаемое функцией, – это значение последнего вычис-
ленного выражения, которое по умолчанию является последним выраже-
нием в теле определения функции. В примере функции f из раздела Создание
функций это значение выражения x + y. В качестве альтернативы ключевое слово
14
return заставляет функцию немедленно выполнить возврат, предоставляя выраже-
ние, значение которого возвращается.
Пример в листинге 14 – функция quadratic, которая вычисляет корни квад-
ратного уравнения. Аргументами функции являются коэффициенты a, b и c.

Листинг 14 – Функция quadratic


function quadratic(a,b,c)
D = b^2 - 4*a*c
if D < 0
return "действительных корней нет"
elseif D == 0
return -b/2a
else
return ((-b+sqrt(D))/2a, (-b-sqrt(D))/2a)
end
end

Пример вызова функции представлен на рисунке 8.

Рисунок 8 – Вызов функции quadratic

3 Порядок выполнения работы

1. Проработать необходимый теоретический материал, опираясь на сведе-


ния и указания, представленные в предыдущем пункте. Все разработанные при-
меры разобрать на практике, проведя аналогичные операции в среде Engee (для
графиков изменить оформление).
15
2. ОБЯЗАТЕЛЬНО! Пройти ознакомительный курс по ссылке:
https://engee.com/helpcenter/stable/ru/courses/engee-onramp.html. В качестве под-
тверждения прохождения приложить сертификат об успешном прохождении.
3. Выполнить задание согласно варианту.
3.1 Вычислить значения функции f(x) на отрезке [a; b] с шагом h. Написать
функцию в редакторе скриптов. Оформить подпись ФИО, группа, вариант.

Таблица 1 – Варианты заданий


Вариант f(x) a b h
𝑥2
1 0.7 7.5 0.45
1 + 0,25√𝑥
𝑥 3 − 0,3𝑥
2 2.06 8.1 1.2
√1 + 2𝑥
2𝑒 −𝑥
3 0 1.5 0.15
2𝜋 + 𝑥 3
𝑐𝑜𝑠𝜋𝑥 2
4 -1 0 0.1
√1 − 3𝑥
𝑥
5 𝑒2 1.4 5 0.5
1 + 𝑥2
−2𝑥
6 𝑒 + 𝑥4 + 1 3.2 6.6 0.7
7 (𝑒 + 𝑥)sin⁡(𝜋√𝑥 − 1) 0.25 2.25 0.2
𝑥 3 − 0,3𝑥
8 𝑥 3 − 3𝑥 + 0 4.5 0.5
√1 + 2𝑥
2𝑒 −2𝑥
9 sin(𝑥) +⁡ 0 1.6 0.25
3𝜋 + 𝑥 3
𝑠𝑖𝑛𝜋𝑥 4
10 -1 0 0.1
√1 − 14𝑥
cos⁡(𝑥)⁡𝜋 2
11 -1 0 0.1
√1 − 𝑥
3
2𝑒 −𝑥
12 2𝑥 + 𝑥 + 1.4 5 0.5
2 + 𝑥3
7
𝑥 3 − 0,3𝑥
13 𝑥 − sin⁡(3𝑥) + 3.2 6.6 0.7
√1 + sin⁡(2𝑥)
14 ln(𝑥) + 7𝑥 5 + sin(2𝑥)5 0.25 2.25 0.2
(2 ln(4𝑥))
15 e−6x + 0.7 7.5 0.45
6𝑥 5
sin(x) ∗ ln⁡(𝑥)⁡𝜋 2
16 2.06 8.1 1.2
√1 − cos⁡(𝑥)
17 sin(𝑥) + cos⁡(7𝑥)𝑒 5𝑥 + sin(2𝑥)5 0 1.5 0.15
16
Продолжение таблицы 1.
Вариант f(x) a b h
𝑥
18 𝑒2 -1 0 0.1
1 + sin⁡(𝑥)2
sin(𝑥)2 cos⁡(𝜋𝑥)2
19 1.4 5 0.5
ln⁡(√1 − 3𝑥)
𝑡𝑔(2𝑥)
20 0.7 7.5 0.45
1 + sin⁡(𝑥)2

Важно! Если в процессе вычислений требуется поэлементно умножить, раз-


делить или возвести в степень элементы вектора или матрицы, то для этого ис-
пользуются операторы:
 .* – поэлементное умножение;
 ./ и .\ – поэлементные деления;
 .^ – поэлементное возведение в степень.

3.2 Построить график функции: настроить его оформление, добавить под-


пись осей и название графика.
4. Оформить отчет.

4 Содержание отчета

Цель работы; разобранные примеры из пункта 2; сертификат о прохождении


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

Вам также может понравиться