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

Лабораторна робота 01. Калібрування трьох каналів за контрольними вимірюваннями

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

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

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

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

1. Ситуація

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

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

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

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

  • як записати набір чисел вектором;
  • як читати матрицю: рядок — один дослід, стовпець — один невідомий коефіцієнт;
  • як записати систему у вигляді \(Ax=b\);
  • що означають ранг, нев’язка і числовий допуск;

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

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

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

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

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

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

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

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

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

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

Не треба вгадувати «правильні» три рядки. Перевірте кілька наборів. Якщо вибрані три рядки не дають трьох незалежних рівнянь, такий набір не дозволяє однозначно знайти всі три коефіцієнти. Після цього окремо перевірте налаштування техніка й знайдіть контроль, де воно помиляється найбільше.

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

  1. Чому для трьох невідомих потрібні саме три незалежні рівняння?
  2. Навіщо четверте вимірювання корисне, якщо три вже дали розв’язок?

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

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

Крок 1. Зрозуміти таблицю

Підпишіть, що означають рядки, стовпці, \(x_1,x_2,x_3\) та числа у \(b\). До коду запишіть одним реченням, що означає рівняння одного рядка.

Крок 2. Перевірити, чи даних достатньо

Знайдіть rank(A). Поясніть словами, чому ранг 3 достатній для трьох невідомих.

Крок 3. Вибрати три корисні вимірювання

Переберіть набори по три рядки або перевірте кілька кандидатів. Залиште набір, для якого ранг дорівнює 3.

Крок 4. Знайти коефіцієнти

Сформуйте квадратну систему з обраних рядків і розв’яжіть її через np.linalg.solve.

Крок 5. Перевірити себе на всіх даних

Обчисліть A @ x - b для всіх чотирьох вимірювань. Не використовуйте лише ті три рядки, з яких отримали розв’язок.

Крок 6. Перевірити налаштування техніка

Окремо обчисліть нев’язку для x_tech. Знайдіть номер контролю з найбільшим абсолютним відхиленням і зробіть предметний висновок.

7. Python

Використовуйте: NumPy: array, matrix_rank, solve, norm.

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

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

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

Змінна Що записати
selected_rows три номери використаних вимірювань, 1..4
rank_A ранг повної матриці A
x_solution знайдені три коефіцієнти
residual вектор A @ x_solution - b
max_abs_residual найбільша за модулем нев’язка
tech_residual нев’язка для x_tech
tech_worst_test номер вимірювання 1..4 з найбільшою помилкою x_tech

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

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

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

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

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

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

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

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

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