Перейти до змісту

Лабораторна робота 08. Коли проводити профілактичне обслуговування

Коротко про роботу

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

Ця робота виконується після лекцій 11–12. Вона спирається лише на матеріал, який уже пройдено до цього заняття.

▶ Відкрити робочий зошит у браузері

1. Ситуація

Якщо обслуговувати обладнання надто часто, підприємство витрачає зайві гроші. Якщо надто рідко — зростає ризик дорогих відмов. Треба знайти інтервал між обслуговуваннями, який дає найменші очікувані витрати.

Головне питання роботи: Як довести, що знайдений інтервал справді мінімізує витрати на заданому проміжку?

2. Що вже потрібно знати

Перед початком достатньо розуміти такі речі з попередніх лекцій:

  • функція однієї змінної;
  • похідна;
  • стаціонарна точка;
  • перевірка мінімуму на відрізку;

Якщо якийсь пункт забувся, поверніться до відповідної лекції. У цій роботі нова теорія не вводиться без пояснення.

3. Як перейти від ситуації до математики

Інтервал \(t\) — це кількість умовних одиниць часу між двома обслуговуваннями. Функція витрат об’єднує дві протилежні причини: часте обслуговування дороге, але надто рідке збільшує ризик втрат.

Спочатку сформулюйте зміст задачі словами. Лише після цього записуйте формули й код. Це зменшує ризик правильно порахувати не ту задачу.

4. Ваш варіант

У notebook змініть тільки один рядок:

STUDENT_X = 1  # поставте свій номер 1..30

Номер варіанта змінює числа, але не дає готового способу розв’язання. Основна частина роботи однакова для всіх: побудувати правильну модель, зробити потрібний вибір і перевірити результат.

Після запуску комірки «Дані вашого варіанта» notebook покаже всі числа, потрібні для роботи. Вручну підставляти STUDENT_X у формули не потрібно. Спочатку подивіться на отримані дані та підпишіть, що означає кожен масив або параметр.

5. Де тут треба подумати

Рівняння \(C'(t)=0\) дає кандидата, але не готову відповідь. Перевірте межі, знак похідної по обидва боки та саму функцію.

Перед тим як писати код, дайте собі відповідь на два питання:

  1. Чому рівність похідної нулю дає лише кандидата на мінімум?
  2. Що зміниться, якщо стаціонарна точка опиниться поза заданим інтервалом?

Відповідь не треба робити довгою. Достатньо 1–2 речень на кожне питання. Це допомагає перевірити, що ви розумієте задачу до запуску обчислень.

6. Послідовність роботи

Крок 1. Побудувати функцію витрат

Поясніть зміст кожного доданка \(A/t\), \(Bt^2\) та \(C_0\).

Крок 2. Знайти похідну

Виведіть \(C'(t)\) самостійно і реалізуйте її окремою функцією Python.

Крок 3. Знайти стаціонарну точку

Розв’яжіть рівняння \(C'(t)=0\) і перевірте, чи точка належить \([2,20]\).

Крок 4. Перевірити характер точки

Візьміть точки трохи лівіше та правіше. Порівняйте знак похідної.

Крок 5. Не забути про межі

Порівняйте \(C(t^*)\), \(C(2)\) і \(C(20)\).

Крок 6. Перевірити похідну чисельно

Порівняйте аналітичну похідну зі скінченною різницею в кількох точках.

7. Python

Використовуйте: NumPy; SymPy дозволений лише як додаткова перевірка.

Не намагайтеся вмістити всю роботу в одну велику комірку. Зручніше мати окремі невеликі блоки: дані → модель → обчислення → перевірка → висновок. Назви змінних повинні показувати їхній зміст.

8. Локальна самоперевірка

У робочому notebook наперед створені назви змінних, які читає автоматична перевірка. Не перейменовуйте їх. Ви самі пишете спосіб розв’язання, але фінальний результат записуєте у визначені змінні.

Змінна Що записати
dC ваша функція похідної C(t)
t_star знайдений оптимальний інтервал обслуговування
cost_star C(t_star)
derivative_left dC(t_star-0.1)
derivative_right dC(t_star+0.1)
boundary_costs [C(left), C(right)]
finite_difference_error максимальна похибка перевірки похідної скінченною різницею

Після виконання всіх кроків запустіть комірку «Локальна самоперевірка». Для вашого STUDENT_X вона читає наперед обчислені контрольні значення та порівнює з ними всі результатні змінні з таблиці вище. Числові значення порівнюються з указаним допуском; логічні, текстові та дискретні результати — точно. Для множин індексів порядок елементів не має значення, а для напрямів власних векторів враховується еквівалентність v та -v.

  • ✅ OK означає, що всі результатні змінні збігаються з контрольними значеннями в межах заданих допусків.
  • означає, що біля конкретної змінної буде вказано, яке порівняння не пройдено.

Самоперевірка не замінює короткий предметний висновок: після OK поясніть своїми словами, що означає отриманий результат у ситуації цієї лабораторної.

9. Що має бути у звіті

Звіт не повинен бути переписаним notebook. Покажіть вихідні дані, ключові проміжні результати, перевірки та короткий висновок своїми словами. У звіті обов’язково мають бути:

  1. номер вашого варіанта;
  2. вихідні дані, які реально використовувалися;
  3. ключовий проміжний результат, на якому ґрунтується рішення;
  4. фінальний результат;
  5. незалежна числова перевірка;
  6. коротке пояснення, що цей результат означає в початковій прикладній ситуації.

Наприкінці дайте відповідь на головне питання лабораторної одним коротким абзацом.

10. Контрольні питання

  1. Чому корінь похідної ще не є остаточним мінімумом на відрізку?
Показати відповідь Потрібно перевірити, що точка лежить у допустимому інтервалі, має правильну зміну знака похідної та не програє значенням на межах.
  1. Навіщо порівнювати аналітичну похідну зі скінченною різницею?
Показати відповідь Це незалежна числова перевірка формули похідної та її програмної реалізації.