10 класс
Компьютерное моделирование технических систем
Урок 1: Введение в моделирование. Понятие модели

Занятие 1: Введение в моделирование. Понятие модели

📅 7 сентября 2026 ⏱ 1 академический час (40 минут) Занятие 1

📋 План занятия

  1. 00:05 Организационный момент. Знакомство с курсом
  2. 05:15 Введение в моделирование. Понятие модели
  3. 15:30 Основные свойства и требования к моделям
  4. 25:40 Классификация моделей по способу представления
  5. 35:40 Итоги. Домашнее задание

📖 Теоретический материал

Что такое модель?

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

Модель служит инструментом познания и упрощённым отражением важных особенностей реального объекта, процесса или явления.

Ключевые аспекты:

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

Основные свойства моделей

Для эффективного практического использования модель должна обладать рядом свойств:

  • Полнота: Модель должна отражать максимальное количество значимых характеристик объекта.
  • Доступность: Модель должна быть понятна и обозрима, использовать единую терминологию.
  • Информативность: Модель должна сохранять исходную информацию и давать возможность получения новых данных.
  • Адекватность: Свойства модели должны соответствовать характеристикам реального объекта.

Классификация моделей по способу представления

Вид модели Характеристика Примеры
Материальные модели Имеют реальное воплощение Глобус, макет здания, игрушечный автомобиль
Информационные модели Не имеют физического воплощения Схемы, чертежи, таблицы, графики, формулы

Примеры для обсуждения

  1. Материальная модель: Глобус — уменьшенная копия Земли, позволяющая изучать географию.
  2. Информационная модель: Формула площади круга S = πR² — математическое описание.
  3. Материальная модель: Макет здания — помогает визуализировать архитектурный проект.

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

ДЗ #1 📅 Срок сдачи: 14 сентября 2026 🏆 Макс. балл: 5 баллов

Примеры моделей

Задание

  1. Приведите три примера материальных моделей (с кратким описанием).
  2. Приведите три примера информационных моделей (с кратким описанием).
  3. Объясните, для какой задачи используется каждая из приведённых моделей.

Требования к сдаче:

  • Текстовый файл или документ с выполненным заданием.
📚 Материалы курса: МТС 2 модель, понятие назначение и классификация.pdf (стр. 1-2, 7-8)
Урок 2: Математическое моделирование

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

📅 14 сентября 2026 ⏱ 1 академический час (40 минут) Занятие 2

📋 План занятия

  1. 00:05 Проверка ДЗ 1. Обсуждение примеров моделей
  2. 05:15 Что такое математическое моделирование. Основные этапы
  3. 15:30 Идентификация и верификация моделей
  4. 25:40 Разновидности математических моделей (с примерами)
  5. 35:40 Итоги. Домашнее задание

📖 Теоретический материал

Что такое математическое моделирование?

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

Значение: Позволяет проводить виртуальные вычислительные эксперименты, оптимизировать параметры узлов и агрегатов без необходимости изготавливать дорогостоящие натурные прототипы.

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

  1. Задача: Определение целей, точности и физических границ исследования.
  2. Данные: Сбор геометрических, физических и граничных условий системы.
  3. Модель: Математическая формализация (дифференциальные уравнения, законы сохранения).
  4. Идентификация: Подбор постоянных коэффициентов модели под реальные данные.
  5. Верификация: Проверка точности прогноза на контрольных тестах.

⚙️ Разновидности математических моделей

1. Детерминированные модели

Принцип: Строгая причинно-следственная связь. Одинаковый вход всегда дает в точности один и тот же результат (случайности нет).

Технический пример: Траектория полета тела в поле тяжести, кинематика шестеренчатого редуктора.

Границы применимости: Работает идеально, пока внешние случайные помехи пренебрежимо малы по сравнению с основными силами.

⚠️ Где модель ломается: При броске легкого мяча на ветру или на околозвуковых скоростях, где хаотичные завихрения воздуха полностью меняют траекторию.

x y m·g
y(t) = y₀ + v₀·t − (g·t²) / 2

2. Стохастические (вероятностные) модели

Принцип: Описывают не точный исход, а вероятность событий, средние значения и разброс параметров.

Технический пример: Ресурс подшипника до поломки, шумы радиодатчиков, устойчивость дрона к ветру.

Границы применимости: Требуют большого числа наблюдений (закон больших чисел) и неизменных внешних условий во время работы.

⚠️ Где модель ломается: Не применима для единичных нестандартных катастроф (брак конкретной детали при литье) или при непредсказуемой смене условий.

μ (Мат. ожидание) ±σ
f(x) = (1 / (σ√(2π))) · e^−((x−μ)² / 2σ²)

3. Эмпирические модели

Принцип: «Черный ящик»: формула подобрана исключительно под экспериментальные точки, без объяснения внутренней физики.

Технический пример: Износ протектора шин от пробега, сопротивление терморезистора от температуры.

Границы применимости: Справедлива строго в диапазоне проведенных измерений (интерполяция).

⚠️ Где модель ломается: При экстраполяции (прогнозе за пределы замеров). Если испытывали шины от 0 до +40°C, формула покажет ерунду при −30°C, когда резина замерзнет и потеряет сцепление.

Аппроксимация (МНК)
y = k·x + b | S = Σ(yᵢ − ŷᵢ)² → min

4. Аналитические модели

Принцип: Замкнутая формула, выведенная из фундаментальных законов природы. Дает абсолютно точное значение мгновенно.

Технический пример: Закон Ома для электрической цепи ($I = U / R$), период маятника ($T = 2\pi\sqrt{m/k}$).

Границы применимости: Требует жестких идеализаций: плоские/симметричные тела, линейные свойства материалов, малые углы отклонения.

⚠️ Где модель ломается: Закон Ома перестает работать при сильном нагреве проводника (сопротивление меняется), а формула маятника врет при отклонении на углы больше 15–20°.

E R I
I = U / R | T = 2π·√(m / k)

5. Численные модели (FEA / CFD)

Принцип: Компьютер разбивает сложную деталь на миллионы простых элементов (тетраэдров/кубиков) и решает уравнения для каждого узла.

Технический пример: Расчет прочности рамы велосипеда на изгиб (МКЭ), симуляция обтекания спойлера гоночного авто (CFD).

Границы применимости: Подходит для объектов любой сложной геометрии, но точность напрямую ограничена мощностью компьютера и шагом сетки.

⚠️ Где модель ломается: Если сетка слишком крупная, результат будет грубой ошибкой. Кроме того, при пластическом разрушении (металл рвется) базовые линейные уравнения перестают работать.

σ_max (Концентратор)
[K] · {u} = {F} | Δt ≤ h / c

Вопросы для экспресс-проверки на уроке

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

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

ДЗ #2 📅 Срок сдачи: 21 сентября 2026 🏆 Макс. балл: 5 баллов

Анализ математических моделей

Задание

  1. Выберите две модели из рассмотренных пяти типов (детерминированная, стохастическая, эмпирическая, аналитическая, численная).
  2. Для каждой из выбранных моделей приведите конкретный пример применения в современной технике и укажите:
    • Какие параметры подаются на вход, и что является результатом расчета.
    • Главное физическое допущение или ограничение модели.

Требования к сдаче:

  • Электронный документ (.pdf / .docx) или рукописный отчет с расчетной схемой.
📚 Материалы курса: МТС 3 Математическая модель.pdf (стр. 1-3, 7)
Урок 3: Введение в Engee

Занятие 3: Введение в Engee

📅 21 сентября 2026 ⏱ 1 академический час (40 минут) Занятие 3

📋 План занятия

  1. 00:05 Проверка ДЗ 2. Обсуждение математических моделей
  2. 05:15 Знакомство с платформой Engee: возможности и интерфейс
  3. 15:30 Примеры математического моделирования в Engee
  4. 25:40 Командная строка, переменные, простые вычисления
  5. 35:40 Итоги. Домашнее задание

📖 Теоретический материал

Что такое Engee?

Engee — это современная платформа для научных и инженерных вычислений, основанная на языке Julia.

Основные возможности:

  • Высокая производительность для вычислений с массивами.
  • Встроенные библиотеки для визуализации данных.
  • Работа с файлами и импорт данных.
  • Создание моделей и симуляций.
  • Интерактивная среда разработки.

Интерфейс Engee

  • Панель "Файлы": управление файлами и папками.
  • Редактор скриптов: написание и редактирование кода.
  • Окно вывода: отображение результатов вычислений.
  • Панель переменных: просмотр текущих переменных.
  • Командная строка: выполнение отдельных команд.

Примеры математического моделирования в Engee

# Пример 1: Модель движения с постоянной скоростью v = 10.0 # скорость, м/с t = 5.0 # время, с s = v * t # расстояние println("Расстояние: $s м") # Пример 2: Расчёт площади круга r = 3.0 S = π * r^2 println("Площадь круга: $S") # Пример 3: Вычисление корней квадратного уравнения a, b, c = 1.0, -5.0, 6.0 D = b^2 - 4*a*c x1 = (-b + sqrt(D)) / (2*a) x2 = (-b - sqrt(D)) / (2*a) println("Корни: x1 = $x1, x2 = $x2")

Практические задания на уроке

  1. Выполните вычисление: 3 + 5 * 2 в командной строке Engee.
  2. Создайте переменную speed = 25 и вычислите расстояние за 3 секунды.
  3. Вычислите площадь прямоугольника со сторонами 4 и 7.

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

ДЗ #3 📅 Срок сдачи: 28 сентября 2026 🏆 Макс. балл: 5 баллов

Регистрация и знакомство с Engee

Задание

  1. Зарегистрируйтесь на платформе Engee (если ещё не сделали этого).
  2. Изучите интерфейс: найдите панель "Файлы", редактор скриптов, окно вывода.
  3. В командной строке выполните вычисление: sqrt(100) + 25^2.
  4. Создайте скриншот интерфейса с результатом вычислений.

Требования к сдаче:

  • Скриншот интерфейса Engee с результатом вычислений.
📚 Материалы курса: Введение в Engee (интерфейс, командная строка, переменные)
Урок 4: Начало работы. Командная строка

Занятие 4: Начало работы с Engee. Командная строка

📅 28 сентября 2026 ⏱ 1 академический час (40 минут) Занятие 4

📋 План занятия

  1. 00:05 Проверка ДЗ 3. Вопросы по регистрации в Engee
  2. 05:15 Знакомство с интерфейсом Engee. Панели и окна
  3. 15:30 Командная строка: выполнение команд, переменные
  4. 25:40 Базовые операции и встроенные функции
  5. 35:40 Итоги. Домашнее задание

📖 Теоретический материал

Интерфейс Engee

  • Панель "Файлы": управление файлами и папками.
  • Панель "Переменные": просмотр всех созданных переменных.
  • Командная строка: выполнение отдельных команд.
  • Редактор скриптов: создание и редактирование программ.

Работа с командной строкой

Команды вводятся после приглашения >> и выполняются нажатием Enter.

# Простые вычисления >> 3 * 5 15 # Присваивание переменной >> m = 3 * 5 15 # Вывод значения переменной >> m 15 # Подавление вывода (точка с запятой) >> k = 8 - 2;

Встроенные функции и константы

# Константа π >> pi 3.141592653589793 # Тригонометрические функции >> sin(pi/2) 1.0 # Квадратный корень >> sqrt(16) 4.0 # Абсолютное значение >> abs(-5) 5

Практические задания

  1. В командной строке выполните умножение: 4 * 7.
  2. Создайте переменную speed = 25.
  3. Вычислите расстояние за 3 секунды: distance = speed * 3.
  4. Вычислите синус числа π/4 с помощью sin(pi/4).
  5. Создайте переменную x = 10, затем измените её: x = x + 5.

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

ДЗ #4 📅 Срок сдачи: 5 октября 2026 🏆 Макс. балл: 5 баллов

Работа в командной строке

Задание

  1. Откройте командную строку в Engee.
  2. Создайте переменную v = 12 (скорость, м/с).
  3. Создайте переменную t = 4 (время, с).
  4. Вычислите расстояние: s = v * t.
  5. Вычислите ускорение: a = v / t.
  6. Создайте переменную p = 1000 (мощность, Вт).
  7. Вычислите работу: A = p * t.
  8. Выведите все переменные в командной строке.

Требования к сдаче:

  • Скриншот командной строки с выполненными командами.
📚 Материалы курса: 00 - Начало работы.pdf, 01 - Окно команд.pdf (стр. 1-14)
Урок 5: Редактор скриптов

Занятие 5: Редактор скриптов

📅 5 октября 2026 ⏱ 1 академический час (40 минут) Занятие 5

📋 План занятия

  1. 00:05 Проверка ДЗ 4. Разбор работы в командной строке
  2. 05:15 Редактор скриптов: создание и сохранение
  3. 15:30 Кодовые и текстовые ячейки. Запуск кода
  4. 25:40 Практика: создание первого скрипта
  5. 35:40 Итоги. Домашнее задание

📖 Теоретический материал

Редактор скриптов в Engee

Редактор скриптов (Notebook) позволяет создавать интерактивные документы, содержащие код, текст, формулы и изображения.

  • Кодовые ячейки — серые поля для ввода команд на Julia.
  • Текстовые ячейки — для пояснений, заголовков, описаний.
  • Запуск ячейки — кнопка слева от ячейки или Shift+Enter.
  • Результат — отображается сразу под ячейкой.

Создание первого скрипта

# Кодовая ячейка: расчёт параметров движения v = 10 # скорость, м/с t = 5 # время, с s = v * t # расстояние, м println("Расстояние: $s м") # Текстовые ячейки можно добавлять для пояснений # Например: "Расчёт расстояния при равномерном движении"

Работа с ячейками

  • Добавление ячейки: навести курсор на активную зону, нажать "+ Код" или "+ Текст".
  • Запуск: нажать кнопку ▶ или Shift+Enter.
  • Порядок выполнения: ячейки выполняются последовательно, но можно запускать любую отдельно.
  • Переменные: сохраняются между ячейками, как в командной строке.

Практические задания

  1. Создайте новый скрипт с именем "lesson5.jl".
  2. В первой кодовой ячейке задайте r = 3.
  3. Во второй кодовой ячейке вычислите S = π * r^2.
  4. Добавьте текстовую ячейку с пояснением: "Расчёт площади круга".
  5. Запустите все ячейки и проверьте результат.

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

ДЗ #5 📅 Срок сдачи: 12 октября 2026 🏆 Макс. балл: 5 баллов

Создание скрипта для инженерных расчётов

Задание

  1. Создайте новый скрипт "engineer_calc.jl".
  2. В первой ячейке задайте переменные:
    • mass = 1500 (масса, кг)
    • acceleration = 2.5 (ускорение, м/с²)
  3. Во второй ячейке вычислите силу: force = mass * acceleration.
  4. В третьей ячейке вычислите работу: work = force * 10 (путь 10 м).
  5. Добавьте текстовую ячейку с заголовком "Расчёт силы и работы".
  6. Добавьте текстовую ячейку с пояснением каждого шага.
  7. Запустите все ячейки и проверьте результаты.

Требования к сдаче:

  • Файл скрипта "engineer_calc.jl".
  • Скриншот скрипта с результатами.
📚 Материалы курса: 02 - Редактор скриптов.pdf (стр. 1-5)
Урок 6: Векторы и матрицы

Занятие 6: Векторы и матрицы

📅 12 октября 2026 ⏱ 1 академический час (40 минут) Занятие 6

📋 План занятия

  1. 00:05 Проверка ДЗ 5. Разбор работы в редакторе скриптов
  2. 05:15 Скаляры. Векторы: создание, оператор диапазона
  3. 15:30 Матрицы: создание, работа с размерностями
  4. 25:40 Функции для создания массивов (zeros, ones, rand)
  5. 35:40 Итоги. Домашнее задание

📖 Теоретический материал

Скаляры

Скаляр — одиночное числовое значение.

a = 10 # целое b = 3.14 # с плавающей точкой c = 2 + 3im # комплексное

Векторы

Вектор — одномерный массив.

# Ручной ввод v1 = [1, 2, 3, 4] # вектор-столбец v2 = [10 20 30] # вектор-строка # Оператор диапазона v3 = [1:10;] # от 1 до 10 v4 = [1:2:10;] # от 1 до 10 с шагом 2 v5 = LinRange(0, 1, 5) # 5 точек от 0 до 1

Матрицы

Матрица — двумерный массив.

# Ручной ввод M1 = [1 2 3; 4 5 6] # матрица 2×3 M2 = [7 8; 9 10; 11 12] # матрица 3×2 # Функции создания M3 = zeros(3,3) # матрица 3×3 из нулей M4 = ones(2,4) # матрица 2×4 из единиц M5 = rand(4,4) # матрица 4×4 со случайными числами

Практические задания

  1. Создайте вектор speed = [0, 5, 10, 15, 20, 25] (скорость).
  2. Создайте матрицу 3×3: M = [1 2 3; 4 5 6; 7 8 9].
  3. Создайте вектор от 0 до 10 с шагом 0.5.
  4. Создайте матрицу 4×4 из случайных чисел.
  5. Создайте матрицу 3×4 из нулей.

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

ДЗ #6 📅 Срок сдачи: 19 октября 2026 🏆 Макс. балл: 5 баллов

Создание векторов и матриц для технических данных

Задание

  1. Создайте вектор temperature из 7 элементов (температура за неделю).
  2. Создайте вектор pressure из 7 элементов (давление за неделю).
  3. Создайте матрицу 3×4 с помощью rand.
  4. Создайте матрицу 4×4 из нулей с помощью zeros.
  5. С помощью оператора : создайте вектор от 100 до 200 с шагом 10.
  6. Выведите все созданные массивы с помощью println.

Требования к сдаче:

  • Файл скрипта "lesson6.jl".
  • Скриншот результатов выполнения.
📚 Материалы курса: 03 - Векторы и матрицы.pdf (стр. 1-14)
Урок 7: Индексация и модификация массивов

Занятие 7: Индексация и модификация массивов

📅 19 октября 2026 ⏱ 1 академический час (40 минут) Занятие 7

📋 План занятия

  1. 00:05 Проверка ДЗ 6. Разбор создания массивов
  2. 05:15 Индексация: правила, индексы с 1
  3. 15:30 Срезы и ключевое слово end
  4. 25:40 Модификация элементов массивов
  5. 35:40 Итоги. Домашнее задание

📖 Теоретический материал

Индексация

Индексы в Julia начинаются с 1.

v = [10, 20, 30, 40, 50] v[3] # 30 M = [1 2 3; 4 5 6; 7 8 9] M[2, 3] # 6 (строка 2, столбец 3)

Срезы и ключевое слово end

v = [10, 20, 30, 40, 50] v[2:4] # [20, 30, 40] v[end-1:end] # [40, 50] M = [1 2 3; 4 5 6; 7 8 9] M[:, 2] # весь 2-й столбец: [2, 5, 8] M[1, :] # вся 1-я строка: [1, 2, 3] M[end, end] # 9

Модификация элементов

v = [1, 2, 3, 4] v[3] = 10 # [1, 2, 10, 4] v[2:3] = [5, 6] # [1, 5, 6, 4] M = [1 2; 3 4] M[1, 1] = 10 # [10 2; 3 4] M[:, 2] = [7, 8] # [10 7; 3 8]

Практические задания

  1. Создайте вектор data = [3.5, 7.2, 1.8, 9.4, 5.6].
  2. Извлеките 2-й и предпоследний элементы.
  3. Замените 3-й элемент на 10.0.
  4. Создайте матрицу A = [1 2 3; 4 5 6; 7 8 9].
  5. Извлеките 2-ю строку и 3-й столбец.
  6. Замените элемент в 1-й строке, 3-м столбце на 0.

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

ДЗ #7 📅 Срок сдачи: 26 октября 2026 🏆 Макс. балл: 5 баллов

Работа с индексами и модификация данных

Задание

  1. Создайте вектор temperatures = [22.5, 24.0, 19.5, 26.0, 21.5, 23.0, 25.5].
  2. Извлеките 3-й и 6-й элементы.
  3. Извлеките элементы со 2-го по 5-й.
  4. Замените 4-й элемент на 27.0.
  5. Создайте матрицу 3×4 с любыми числами.
  6. Извлеките 2-ю строку и 3-й столбец.
  7. Замените элемент в 1-й строке, 2-м столбце на 100.
  8. Используйте ключевое слово end для извлечения последней строки.

Требования к сдаче:

  • Файл скрипта "lesson7.jl".
  • Скриншот результатов.
📚 Материалы курса: 04 - Индексы и модификация массивов.pdf (стр. 1-10)
Урок 8: Операции с массивами

Занятие 8: Операции с массивами

📅 26 октября 2026 ⏱ 1 академический час (40 минут) Занятие 8

📋 План занятия

  1. 00:05 Проверка ДЗ 7. Разбор индексации
  2. 05:15 Поэлементные операции (.+, .-, .*, ./)
  3. 15:30 Скалярные операции с массивами
  4. 25:40 Статистические функции: sum, mean, maximum
  5. 35:40 Итоги. Домашнее задание

📖 Теоретический материал

Поэлементные операции

Операторы с точкой применяются к каждому элементу массива: .+, .-, .*, ./.

a = [1, 2, 3, 4] b = [10, 20, 30, 40] a .+ b # [11, 22, 33, 44] a .* b # [10, 40, 90, 160] a .+ 5 # [6, 7, 8, 9] a ./ 2 # [0.5, 1.0, 1.5, 2.0]

Скалярные операции

x = [5, 10, 15] y = x * 2 # [10, 20, 30] z = x / 5 # [1.0, 2.0, 3.0] t = x .+ 1 # [6, 11, 16]

Статистические функции

data = [3.5, 7.2, 1.8, 9.4, 5.6] sum(data) # 27.5 mean(data) # 5.5 maximum(data) # 9.4 minimum(data) # 1.8 std(data) # стандартное отклонение

Практические задания

  1. Создайте два массива: power1 = [10, 20, 30, 40, 50], power2 = [5, 15, 25, 35, 45].
  2. Вычислите разницу: diff = power1 .- power2.
  3. Найдите сумму, среднее и максимум для diff.
  4. Умножьте power1 на 1.5.
  5. Разделите power2 на 2.

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

ДЗ #8 📅 Срок сдачи: 2 ноября 2026 🏆 Макс. балл: 5 баллов

Операции с массивами для инженерных данных

Задание

  1. Создайте массив voltage = [220, 230, 215, 240, 225, 235] (напряжение).
  2. Создайте массив current = [10, 12, 8, 15, 11, 13] (ток).
  3. Вычислите мощность: power = voltage .* current.
  4. Найдите суммарную мощность: sum(power).
  5. Найдите среднее напряжение и максимальный ток.
  6. Увеличьте все значения напряжения на 5%: voltage_new = voltage .* 1.05.

Требования к сдаче:

  • Файл скрипта "lesson8.jl".
  • Скриншот результатов.
📚 Материалы курса: 05 - Операции с массивами.pdf (стр. 1-5)
Урок 9: Вызов функций

Занятие 9: Вызов функций

📅 2 ноября 2026 ⏱ 1 академический час (40 минут) Занятие 9

📋 План занятия

  1. 00:05 Проверка ДЗ 8. Разбор операций с массивами
  2. 05:15 Функции size, findmax, findmin
  3. 15:30 Множественные возвращаемые значения
  4. 25:40 Игнорирование значений с помощью ~
  5. 35:40 Итоги. Домашнее задание

📖 Теоретический материал

Функция size

size(arr) возвращает кортеж с размерами массива.

M = [1 2 3; 4 5 6; 7 8 9] size(M) # (3, 3) size(M, 1) # 3 (количество строк) size(M, 2) # 3 (количество столбцов)

Функции findmax и findmin

Возвращают значение и индекс максимального/минимального элемента.

data = [4.5, 2.3, 7.8, 1.2, 9.0] findmax(data) # (9.0, 5) findmin(data) # (1.2, 4) # Распаковка результата (val_max, idx_max) = findmax(data) # val_max = 9.0, idx_max = 5

Игнорирование возвращаемых значений

Символ ~ используется для пропуска значений.

data = [4.5, 2.3, 7.8, 1.2, 9.0] # Нужен только индекс максимума (_, idx_max) = findmax(data) # idx_max = 5 # Нужно только значение минимума (val_min, _) = findmin(data) # val_min = 1.2

Практические задания

  1. Создайте массив data = rand(10).
  2. Определите его размер с помощью size.
  3. Найдите максимальное значение и его индекс с помощью findmax.
  4. Найдите минимальное значение, игнорируя индекс.
  5. Найдите индекс максимального значения, игнорируя само значение.

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

ДЗ #9 📅 Срок сдачи: 9 ноября 2026 🏆 Макс. балл: 5 баллов

Поиск максимумов и минимумов в технических данных

Задание

  1. Создайте массив efficiency = [78.5, 82.3, 79.1, 85.0, 80.7, 83.6, 77.9, 81.2] (КПД, %).
  2. Найдите размер массива с помощью size.
  3. Найдите максимальный КПД и его индекс.
  4. Найдите минимальный КПД (значение, игнорируя индекс).
  5. Найдите индекс максимального КПД (игнорируя значение).
  6. Выведите все результаты с пояснениями.

Требования к сдаче:

  • Файл скрипта "lesson9.jl".
  • Скриншот результатов.
📚 Материалы курса: 06 - Вызов функций.pdf (стр. 1-3)
Урок 10: Построение графиков

Занятие 10: Построение графиков

📅 9 ноября 2026 ⏱ 1 академический час (40 минут) Занятие 10

📋 План занятия

  1. 00:05 Проверка ДЗ 9. Разбор функций
  2. 05:15 Библиотека Plots: plot, scatter, histogram
  3. 15:30 Настройка графиков: заголовки, подписи осей
  4. 25:40 Несколько графиков на одном полотне (plot!)
  5. 35:40 Итоги. Домашнее задание

📖 Теоретический материал

Библиотека Plots

using Plots default(fmt = :png) # Основные функции: plot() # линейный график scatter() # точечный график histogram() # гистограмма bar() # столбчатая диаграмма

Создание графиков

x = 0:0.1:2π y = sin.(x) plot(x, y, title="График синуса", xlabel="x", ylabel="sin(x)", label="sin(x)") scatter(rand(20), rand(20), title="Случайные точки") histogram(randn(1000), bins=30, title="Гистограмма")

Несколько графиков на одном полотне

x = 0:0.1:2π plot(x, sin.(x), label="sin(x)", linewidth=2) plot!(x, cos.(x), label="cos(x)", linestyle=:dash) plot!(title="Синус и косинус", xlabel="x", ylabel="y")

Практические задания

  1. Создайте массив x от 0 до 4π с шагом 0.1.
  2. Постройте график sin(x) с красной линией.
  3. Постройте график cos(x) на том же полотне с синей пунктирной линией.
  4. Добавьте заголовок, подписи осей и легенду.

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

ДЗ #10 📅 Срок сдачи: 16 ноября 2026 🏆 Макс. балл: 5 баллов

Визуализация инженерных данных

Задание

  1. Создайте массив времени: t = 0:0.5:10.
  2. Создайте массив скорости: v = 5 .+ 3*sin.(0.5*t) .+ 0.5*t.
  3. Создайте массив мощности: P = 10 .* v .+ 0.1 .* v.^2.
  4. Постройте график скорости (синяя линия).
  5. Постройте график мощности (красная линия) на том же полотне.
  6. Добавьте заголовок "Зависимость скорости и мощности", подписи осей и легенду.
  7. Сохраните график в файл "graph.png".

Требования к сдаче:

  • Файл скрипта "lesson10.jl".
  • Скриншот графика.
📚 Материалы курса: 07 - Построение графиков.pdf (стр. 1-13)
Урок 11: Циклы for

Занятие 11: Циклы for

📅 10 ноября 2026 ⏱ 1 академический час (40 минут) Занятие 11

📋 План занятия

  1. 00:05 Проверка ДЗ 10. Разбор условных операторов
  2. 05:15 Концепция циклов. Цикл for
  3. 15:30 Итерация по диапазонам и массивам
  4. 25:40 Накопление результатов в цикле
  5. 35:40 Итоги. Домашнее задание

📖 Теоретический материал

Цикл for

Цикл for — позволяет многократно выполнять блок кода, перебирая элементы диапазона или массива.

# Базовый синтаксис for i in 1:5 println("Итерация $i") end # Итерация по массиву fruits = ["яблоко", "банан", "апельсин"] for fruit in fruits println(fruit) end

Итерация по диапазонам

Диапазоны можно задавать с шагом или с помощью LinRange.

# Диапазон с шагом for x in 1:2:10 println(x) # 1, 3, 5, 7, 9 end # LinRange for x in LinRange(0, 1, 5) println(x) # 0.0, 0.25, 0.5, 0.75, 1.0 end

Накопление результатов

Часто циклы используются для накопления суммы или других агрегатов.

# Сумма чисел от 1 до 100 sum = 0 for i in 1:100 sum += i end println("Сумма: $sum") # 5050 # Накопление в массиве squares = [] for x in 1:5 push!(squares, x^2) end println(squares) # [1, 4, 9, 16, 25]

Практические задания

  1. Вычислите сумму чётных чисел от 2 до 50.
  2. Создайте массив из первых 10 квадратов чисел.
  3. Выведите все элементы массива data = [3.5, 7.2, 1.8, 9.4] с индексами.
  4. Найдите сумму всех элементов массива data с помощью цикла.

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

ДЗ #11 📅 Срок сдачи: 17 ноября 2026 🏆 Макс. балл: 5 баллов

Вычисление суммы чисел от 1 до 100

Задание

  1. Напишите цикл for для вычисления суммы чисел от 1 до 100.
  2. Выведите результат с пояснением.
  3. Добавьте цикл для вычисления суммы чётных чисел от 1 до 100.

Требования к сдаче:

  • Файл скрипта "lesson11.jl".
  • Скриншот результатов.
📚 Материалы курса: 10 - Программирование.pdf (стр. 5-7) — циклы for
Урок 12: Вложенные циклы и работа с матрицами

Занятие 12: Вложенные циклы и работа с матрицами

📅 17 ноября 2026 ⏱ 1 академический час (40 минут) Занятие 12

📋 План занятия

  1. 00:05 Проверка ДЗ 11. Разбор циклов
  2. 05:15 Вложенные циклы: цикл внутри цикла
  3. 15:30 Создание таблиц и матриц с помощью циклов
  4. 25:40 Практика: таблица умножения
  5. 35:40 Итоги. Домашнее задание

📖 Теоретический материал

Вложенные циклы

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

# Вложенный цикл: внешний по строкам, внутренний по столбцам for i in 1:3 for j in 1:3 print("($i,$j) ") end println() # переход на новую строку end # Вывод: # (1,1) (1,2) (1,3) # (2,1) (2,2) (2,3) # (3,1) (3,2) (3,3)

Создание матриц с помощью циклов

Циклы позволяют заполнять матрицы по заданному правилу.

# Создание матрицы 3x3 со случайными числами M = zeros(3, 3) for i in 1:3 for j in 1:3 M[i, j] = rand() end end println(M) # Создание матрицы по формуле M[i,j] = i + j M = zeros(3, 4) for i in 1:3 for j in 1:4 M[i, j] = i + j end end println(M) # [[2,3,4,5], [3,4,5,6], [4,5,6,7]]

Таблица умножения 5×5

# Таблица умножения 5×5 table = zeros(5, 5) for i in 1:5 for j in 1:5 table[i, j] = i * j end end println("Таблица умножения 5×5:") for i in 1:5 for j in 1:5 print(lpad(table[i, j], 4)) end println() end # Вывод: # 1 2 3 4 5 # 2 4 6 8 10 # 3 6 9 12 15 # 4 8 12 16 20 # 5 10 15 20 25

Практические задания

  1. Создайте матрицу 4×4, где каждый элемент равен произведению индексов.
  2. Создайте матрицу 3×5, где элемент M[i,j] = i^2 + j.
  3. Выведите на экран таблицу умножения 3×3.

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

ДЗ #12 📅 Срок сдачи: 24 ноября 2026 🏆 Макс. балл: 5 баллов

Создание таблицы умножения 5×5

Задание

  1. С помощью вложенных циклов создайте таблицу умножения 5×5.
  2. Выведите таблицу в виде матрицы.
  3. Добавьте заголовки строк и столбцов (1,2,3,4,5).

Требования к сдаче:

  • Файл скрипта "lesson12.jl".
  • Скриншот таблицы умножения.
📚 Материалы курса: 10 - Программирование.pdf (стр. 5-7) — вложенные циклы
Урок 13: Визуализация данных

Занятие 13: Визуализация данных

📅 24 ноября 2026 ⏱ 1 академический час (40 минут) Занятие 13

📋 План занятия

  1. 00:05 Проверка ДЗ 12. Разбор вложенных циклов
  2. 05:15 Библиотека Plots: plot, scatter, histogram
  3. 15:30 Настройка графиков: заголовки, подписи осей
  4. 25:40 Практика: построение графика синуса
  5. 35:40 Итоги. Домашнее задание

📖 Теоретический материал

Библиотека Plots

Plots — основная библиотека для визуализации в Julia.

using Plots default(fmt = :png) # формат графиков # Базовые функции: # plot() — линейный график # scatter() — точечный график # histogram() — гистограмма # bar() — столбчатая диаграмма

Создание графиков

# Линейный график x = 0:0.1:2π y = sin.(x) plot(x, y, title="График синуса", xlabel="x", ylabel="sin(x)", label="sin(x)") # Точечный график x = rand(20) y = rand(20) scatter(x, y, title="Случайные точки", label="точки") # Гистограмма data = randn(1000) histogram(data, bins=30, title="Гистограмма", label="данные")

Несколько графиков на одном полотне

# Использование plot! x = 0:0.1:2π plot(x, sin.(x), label="sin(x)", linewidth=2) plot!(x, cos.(x), label="cos(x)", linestyle=:dash) plot!(title="Синус и косинус", xlabel="x", ylabel="y")

Практические задания

  1. Постройте график синуса с настройками: заголовок, подписи осей, цвет.
  2. Постройте график косинуса на том же полотне.
  3. Постройте гистограмму случайных данных.

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

ДЗ #13 📅 Срок сдачи: 1 декабря 2026 🏆 Макс. балл: 5 баллов

Построение графика синуса с настройками

Задание

  1. Создайте массив x от 0 до 2π с шагом 0.05.
  2. Постройте график sin(x) с красной линией и маркерами в виде кругов.
  3. Добавьте заголовок "График синуса", подписи осей.
  4. Установите легенду.

Требования к сдаче:

  • Файл скрипта "lesson13.jl".
  • Скриншот графика.
📚 Материалы курса: 07 - Построение графиков.pdf (стр. 1-8)
Урок 14: Настройка графиков

Занятие 14: Настройка графиков

📅 1 декабря 2026 ⏱ 1 академический час (40 минут) Занятие 14

📋 План занятия

  1. 00:05 Проверка ДЗ 13. Разбор графиков
  2. 05:15 Легенда, цвета, стили линий
  3. 15:30 Несколько графиков на одном рисунке (plot!)
  4. 25:40 Сохранение графиков (savefig)
  5. 35:40 Итоги. Домашнее задание

📖 Теоретический материал

Настройка графиков

Основные параметры настройки графиков в Plots.

using Plots x = 0:0.1:2π # Основные параметры plot(x, sin.(x), title="Заголовок", xlabel="Ось X", ylabel="Ось Y", label="sin(x)", color=:red, linestyle=:dash, linewidth=2, marker=:circle, markersize=4, legend=:topright )

Несколько графиков на одном рисунке

# Первый график plot(x, sin.(x), label="sin(x)", color=:blue, linewidth=2) # Добавление второго графика plot!(x, cos.(x), label="cos(x)", color=:red, linestyle=:dash) # Добавление третьего графика plot!(x, sin.(x).*cos.(x), label="sin*cos", color=:green, linewidth=1) # Настройки общего графика plot!(title="Тригонометрические функции", legend=:outerright)

Сохранение графиков

# Сохранение в файл savefig("my_plot.png") # PNG savefig("my_plot.pdf") # PDF savefig("my_plot.svg") # SVG

Практические задания

  1. Постройте график скорости и мощности на одном рисунке.
  2. Добавьте легенду, разные цвета и стили линий.
  3. Сохраните график в файл "speed_power.png".

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

ДЗ #14 📅 Срок сдачи: 8 декабря 2026 🏆 Макс. балл: 5 баллов

График скорости и мощности на одном рисунке

Задание

  1. Создайте массив времени t от 0 до 10 с шагом 0.5.
  2. Создайте массив скорости: v = 5 + 2*t.
  3. Создайте массив мощности: P = 10 * v.
  4. Постройте оба графика на одном рисунке с разными цветами и стилями.
  5. Добавьте легенду, заголовок, подписи осей.
  6. Сохраните график в файл.

Требования к сдаче:

  • Файл скрипта "lesson14.jl".
  • Скриншот графика и сохранённый файл.
📚 Материалы курса: 07 - Построение графиков.pdf (стр. 8-13)
Урок 15: Создание функций

Занятие 15: Создание функций

📅 8 декабря 2026 ⏱ 1 академический час (40 минут) Занятие 15

📋 План занятия

  1. 00:05 Проверка ДЗ 14. Разбор графиков
  2. 05:15 Определение функций в Julia
  3. 15:30 Аргументы и возвращаемые значения
  4. 25:40 Практика: функция для расчёта статистики
  5. 35:40 Итоги. Домашнее задание

📖 Теоретический материал

Определение функций

Функции в Julia определяются с помощью ключевого слова function.

# Базовый синтаксис function имя_функции(аргумент1, аргумент2) # тело функции return результат end # Пример: функция для вычисления площади круга function circle_area(radius) area = π * radius^2 return area end # Вызов функции r = 5 S = circle_area(r) println("Площадь круга: $S")

Краткая форма записи

Для простых функций можно использовать краткий синтаксис.

# Краткая форма circle_area(r) = π * r^2 # Функция с несколькими аргументами hypotenuse(a, b) = sqrt(a^2 + b^2) # Вызов println(hypotenuse(3, 4)) # 5.0

Возврат нескольких значений

# Функция, возвращающая несколько значений function stats(data) n = length(data) avg = sum(data) / n max_val = maximum(data) min_val = minimum(data) return avg, max_val, min_val end # Использование x = [2.5, 3.8, 5.1, 4.2, 6.0] mean_val, max_val, min_val = stats(x) println("Среднее: $mean_val, Макс: $max_val, Мин: $min_val")

Практические задания

  1. Напишите функцию для вычисления средней скорости (путь / время).
  2. Напишите функцию, которая возвращает сумму, максимум и минимум массива.
  3. Напишите функцию для расчёта статистики (среднее, медиана, стандартное отклонение).

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

ДЗ #15 📅 Срок сдачи: 15 декабря 2026 🏆 Макс. балл: 5 баллов

Функция для расчёта статистики

Задание

  1. Напишите функцию stat_analysis(data), которая принимает массив чисел.
  2. Функция должна возвращать: сумму, среднее, максимум, минимум.
  3. Протестируйте функцию на массиве из 10 случайных чисел.

Требования к сдаче:

  • Файл скрипта "lesson15.jl".
  • Скриншот результатов работы функции.
📚 Материалы курса: 06 - Вызов функций.pdf (стр. 1-3) + практика по созданию функций
Урок 16: Практическая работа №1

Занятие 16: Практическая работа №1

📅 15 декабря 2026 ⏱ 1 академический час (40 минут) Занятие 16

📋 План занятия

  1. 00:05 Постановка задачи практической работы
  2. 05:15 Самостоятельная работа: применение всех изученных операций
  3. 25:40 Разбор решений. Ответы на вопросы
  4. 35:40 Итоги. Завершение практической работы

📝 Практическая работа

Задание практической работы

Цель: Применить все изученные навыки для решения комплексной задачи.

# Задание: Анализ данных эксперимента # 1. Создание данных # Создайте массив времени t от 0 до 10 с шагом 0.5 (21 элемент) # Создайте массив скорости v = 2 + 3*sin(0.5*t) + 0.5*t # Создайте массив мощности P = 5 * v + 0.2 * v^2 # 2. Анализ данных # Найдите среднюю скорость и максимальную мощность # Найдите индексы максимальной скорости и минимальной мощности # Создайте маску для значений скорости > 5 # 3. Визуализация # Постройте график скорости и мощности на одном рисунке # Добавьте заголовок, подписи осей, легенду # Сохраните график в файл # 4. Функция # Напишите функцию для расчёта статистики (сумма, среднее, максимум, минимум) # Примените функцию к массивам скорости и мощности

Порядок выполнения

  1. Создайте новый скрипт "practical_work.jl".
  2. Выполните все шаги задания.
  3. Добавьте комментарии к каждому блоку кода.
  4. Проверьте корректность работы всех частей.
  5. Сохраните скрипт и сделайте скриншоты результатов.

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

ДЗ #16 📅 Срок сдачи: 22 декабря 2026 🏆 Макс. балл: 10 баллов

Завершение практической работы

Задание

  1. Завершите все этапы практической работы.
  2. Убедитесь, что скрипт работает без ошибок.
  3. Добавьте дополнительные комментарии к коду.
  4. Подготовьте отчёт по результатам работы.

Требования к сдаче:

  • Файл скрипта "practical_work.jl".
  • Скриншоты всех графиков.
  • Краткий отчёт с результатами анализа.
📚 Материалы курса: Все предыдущие темы (занятия 1-15)
Урок 17: Экзамен (1-е полугодие)

Занятие 17: Экзамен (1-е полугодие)

📅 22 декабря 2026 ⏱ 1 академический час (40 минут) Занятие 17

📋 План занятия

  1. 00:05 Организационные вопросы. Выдача экзаменационных билетов
  2. 05:15 Выполнение контрольной работы
  3. 30:00 Сбор работ. Разбор типичных ошибок
  4. 35:40 Итоги полугодия. Обсуждение результатов

📝 Контрольная работа

Экзаменационные вопросы

Контрольная работа охватывает все темы, изученные в 1-м полугодии:

  • Тема 1: Введение в моделирование. Понятие модели.
  • Тема 2: Математическое моделирование.
  • Тема 3: Скаляры, векторы и матрицы.
  • Тема 4: Индексация и модификация массивов.
  • Тема 5: Операции с массивами.
  • Тема 6: Статистический анализ данных.
  • Тема 7: Вызов функций.
  • Тема 8: Бинарные массивы и логические операторы.
  • Тема 9: Логические операторы .&, .|, .!.
  • Тема 10: Условные операторы if-elseif-else.
  • Тема 11: Циклы for.
  • Тема 12: Вложенные циклы.
  • Тема 13: Визуализация данных (Plots).
  • Тема 14: Настройка графиков.
  • Тема 15: Создание функций.

Примеры заданий

  1. Создайте матрицу 4×4 и извлеките 2-ю строку и 3-й столбец.
  2. Напишите функцию для вычисления среднего и стандартного отклонения.
  3. Создайте маску для значений в диапазоне [10, 30] и выберите элементы.
  4. Постройте график функции y = x^2 на интервале [-5, 5].
  5. С помощью цикла вычислите сумму квадратов чисел от 1 до 20.

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

ДЗ #17 📅 Срок сдачи: 29 декабря 2026 🏆 Макс. балл: 10 баллов

Подготовка к экзамену

Задание

  1. Повторите все темы полугодия.
  2. Выполните дополнительные задания для подготовки.
  3. Исправьте ошибки в своих работах.

Требования к сдаче:

  • Файл с решением дополнительных заданий.
  • Скриншоты выполненных заданий.
📚 Материалы курса: Все материалы 1-го полугодия
Итоговый тест: Моделирование технических систем

📝 Итоговый тест по курсу
«Моделирование технических систем»

📅 12 мая 2026 ⏱ 40 минут 🏆 25 баллов максимум

ФИО: _______________________________ Группа: _____

⬇️ Скачать шаблон кода для заполнения (.jl)

Файл: test_template.jl — откройте в Engee и заполните пропуски

Задача 1 5 баллов

📊 Массивы и индексация

Дан массив результатов измерения температуры (°C) каждый час в течение 12 часов:

temperature = [15.2, 16.1, 17.3, 18.0, 18.5, 19.2, 20.1, 19.8, 19.0, 18.2, 17.1, 16.0]
  1. Извлеките первое и последнее измерение (1.5 балла)
  2. Извлеките измерения с 3-го по 7-й час (1.5 балла)
  3. Измените значение на 6-м часу на 19.5 (2 балла)
✍️ Место для кода:
first_temp = ________
last_temp = ________
subset_temp = ________
________ = 19.5
Задача 2 5 баллов

📈 Операции с массивами и функции

Дан массив расстояний (в метрах), пройденных роботом за каждую секунду:

distances = [0.5, 0.6, 0.8, 1.0, 1.2, 1.1, 0.9, 0.7, 0.6, 0.5]
  1. Переведите расстояния в сантиметры (1 м = 100 см) (1.5 балла)
  2. Найдите максимальное пройденное расстояние в см (1.5 балла)
  3. Найдите среднее пройденное расстояние в см (2 балла)
✍️ Место для кода:
distances_cm = ________
max_distance = ________
avg_distance = ________
Задача 3 5 баллов

🎯 Бинарные массивы и условия

Дан массив показаний датчика движения (1 - движение, 0 - покой):

motion = [1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0]
  1. Создайте маску для моментов движения (1.5 балла)
  2. Найдите индексы (номера замеров), когда было движение (2 балла)
  3. Подсчитайте общее время движения (количество замеров) (1.5 балла)
✍️ Место для кода:
is_moving = ________
moving_indices = ________
moving_time = ________
Задача 4 5 баллов

🔄 Циклы и моделирование

Смоделируйте заполнение бассейна водой. Каждую минуту уровень воды поднимается на 2 см. Начальный уровень: 0 см. Время симуляции: 30 минут.

  1. Создайте массивы времени (0-30 минут) и уровня воды (2 балла)
  2. Используйте цикл для расчёта уровня воды каждую минуту (3 балла)
✍️ Место для кода:
initial_level = 0.0
rise_rate = 2.0
time_max = 30
time_array = ________
level_array = ________
for i in ________
    ________
end
Задача 5 5 баллов

📉 Полный анализ данных с графиками

Дан массив ежедневных продаж (в тысячах рублей) за 14 дней:

sales = [12, 15, 14, 18, 20, 22, 25, 24, 21, 19, 17, 16, 18, 20] days = 1:14
  1. Постройте график продаж по дням (2 балла)
  2. Найдите максимальные и минимальные продажи и дни, когда они были (1.5 балла)
  3. Найдите средние продажи (1.5 балла)
✍️ Место для кода:
plot(________, ________, title="Динамика продаж", xlabel="День", ylabel="Продажи (тыс. руб.)", linewidth=2, marker=:circle)
savefig("sales_plot.png")
max_sales, max_day = ________
min_sales, min_day = ________
avg_sales = ________

📌 Указание: Скопируйте код из скачанного файла в Engee, заполните все пропуски (________) и выполните ячейки.
После выполнения запустите ячейку с проверкой для автоматического подсчёта баллов.

Made on
Tilda