Всіх вітаю! У сьогоднішній статті ми створимо програму для обчислення похибок, а саме абсолютної та відносної. Також детально розглянемо код та протестуємо його.
Основні визначення
Що таке абсолютна похибка?
Абсолютна похибка — це різниця між вимірюваним значенням та середнім значенням.
Формула абсолютної похибки виглядає так:

Значення | Визначення |
|---|---|
| Виміряне значення, похибку якого ми хочемо обчислити |
| Середнє значення виміряної величини. |
Що таке відносна похибка?
Відносна похибка — це відношення абсолютної похибки та середнього значення.
Формула відносної похибки виглядає так:

Значення | Визначення |
|---|---|
| Абсолютна похибка. |
| Середнє значення виміряної величини. |
Створення програми
Структура коду
Для початку слід вирішити, яку саме структуру коду ми будемо використовувати. Ми будемо писати програму за допомогою класу та методів. Тобто будемо притримуватися концепції ООП.
Отже, на початку створюємо клас та методи:
class ErrorsAnalysis:
def __init__(self):
pass
def absolute_error(self):
pass
def relative_error(self):
pass
def results(self):
passТепер нам треба записати головні атрибути у конструкторі def __init__(self) для нашого майбутнього об’єкта:
class ErrorsAnalysis:
def __init__(self, measured_value):
self.measured_value = measured_value
self.absolute = 0
self.relative = 0
def absolute_error(self):
pass
def relative_error(self):
pass
def results(self):
passПоля | Означення |
|---|---|
| Це атрибут є єдиним, який ми вказуємо у класі. У цей параметр ми буде записувати список з даними, які хочемо дослідити на похибки. |
| Результат абсолютної похибки. |
| Результат відносної похибки. |
Створення методу для обчислення абсолютної похибки
Далі перейдемо до реалізації методів у нашому класі. Спершу створимо метод для обчислення абсолютної похибки:
def absolute_error(self):
absolute_values = []
middle_value = sum(self.measured_value) / (len(self.measured_value))
for unit in self.measured_value:
self.absolute = abs(unit - middle_value)
absolute_values.append(self.absolute)
self.absolute = max(absolute_values)
return self.absoluteСтворюємо окремий список суто для обчислених абсолютних значень:
absolute_values = []Обчислюємо середнє значення нашого списку з даними:
middle_value = sum(self.measured_value) / (len(self.measured_value))У цій частині ми створюємо цикл for, де проходимося по кожному значенню у списку з даними. Далі у тілі циклу обчислюємо абсолютну похибку та додаємо у список absolute_values:
for unit in self.measured_value:
self.absolute = abs(unit - middle_value)
absolute_values.append(self.absolute)Далі визначаємо максимальне значення у списку absolute_values та записуємо у атрибут self.absolute:
self.absolute = max(absolute_values)Повертаємо значення абсолютної похибки:
return self.absoluteСтворення методу для обчислення відносної похибки
Наступним кроком створюємо метод relative_error(self) для обчислення відносної похибки. Ось повний код методу:
def relative_error(self):
middle_value = sum(self.measured_value) / (len(self.measured_value))
self.relative = (self.absolute / middle_value) * 100
return self.relativeСпершу обчислюємо середнє значення:
middle_value = sum(self.measured_value) / (len(self.measured_value))Обчислюємо відносну похибку:
self.relative = (self.absolute / middle_value) * 100Тестування коду
У кінці-кінців слід протестувати код та зрозуміти, чи працює він. Запустимо код та отримаємо наступні результати:
Measurement results:
Absolute error: 3.43
Relative_error: 48.75%Висновок
У цьому матеріалі ми ознайомилися з тим, що таке абсолютна та відносна похибки як їх обчислювати. Також ми розглянули як писати код зі структурою ООП. Всім дякую за увагу!