Друкарня від WE.UA

Обчислення похибок вимірювань у Python

Зміст

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

Основні визначення

Що таке абсолютна похибка?

Абсолютна похибка — це різниця між вимірюваним значенням та середнім значенням.

Формула абсолютної похибки виглядає так:

формула абсолютної похибки

Значення

Визначення

a (виміряне)

Виміряне значення, похибку якого ми хочемо обчислити

a (середнє)

Середнє значення виміряної величини.

Що таке відносна похибка?

Відносна похибка — це відношення абсолютної похибки та середнього значення.

Формула відносної похибки виглядає так:

формула відносної похибки

Значення

Визначення

a (абсолютне)

Абсолютна похибка.

a (середнє)

Середнє значення виміряної величини.

Створення програми

Структура коду

Для початку слід вирішити, яку саме структуру коду ми будемо використовувати. Ми будемо писати програму за допомогою класу та методів. Тобто будемо притримуватися концепції ООП.

Отже, на початку створюємо клас та методи:

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

Поля

Означення

self.measured_value

Це атрибут є єдиним, який ми вказуємо у класі. У цей параметр ми буде записувати список з даними, які хочемо дослідити на похибки.

self.absolute

Результат абсолютної похибки.

self.relative

Результат відносної похибки.

Створення методу для обчислення абсолютної похибки

Далі перейдемо до реалізації методів у нашому класі. Спершу створимо метод для обчислення абсолютної похибки:

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%

Висновок

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

Статті про вітчизняний бізнес та цікавих людей:

Поділись своїми ідеями в новій публікації.
Ми чекаємо саме на твій довгочит!
Magnifique numérique
Magnifique numérique@nocturnal_reader we.ua/nocturnal_reader

Нічний читач

54Довгочити
631Прочитання
17Підписники
Підтримати
На Друкарні з 14 липня

Більше від автора

  • Клас itemgetter() у модулі operator

    Всіх вітаю! У даній статті ми продовжимо тему спеціальних властивостей словників у Python. На цей раз ми поговоримо про модуль operator та його клас itemgetter(), яка дозволяє працювати зі списками та словниками у Python.

    Теми цього довгочиту:

    Програмування
  • Метод split() у Python

    Всіх вітаю! Сьогодні ми розглянемо метод split() у Python та побачимо, як використовувати її на прикладах.

    Теми цього довгочиту:

    Програмування
  • Створюємо стовпчикові графіки за допомогою plotly

    Всіх вітаю! У цій статті пропоную вам зануритися у графіки та візуалізацію на Python за допомогою plotly. На цей раз ми втілимо графік прослуховувань різних реп виконавців за місяць та графік з оцінками деяких альбомів за сайтом AOTY.

    Теми цього довгочиту:

    Програмування

Це також може зацікавити:

  • Нова спільнота web розробників

    У сучасному цифровому світі важливо мати майданчики, де фахівці можуть обмінюватися досвідом, отримувати підтримку та навчатися. Для українських веб-розробників з’явився новий ресурс — WOX (https://wox.in.ua).

    Теми цього довгочиту:

    Websites
  • Elevate Your WordPress Game with Job Support for U.S. Clients

    WordPress continues to dominate the web — powering an estimated 43.4% of all websites globally as of 2025. For developers working on U.S.-based WordPress projects, client expectations are high.

    Теми цього довгочиту:

    It

Коментарі (0)

Підтримайте автора першим.
Напишіть коментар!

Це також може зацікавити:

  • Нова спільнота web розробників

    У сучасному цифровому світі важливо мати майданчики, де фахівці можуть обмінюватися досвідом, отримувати підтримку та навчатися. Для українських веб-розробників з’явився новий ресурс — WOX (https://wox.in.ua).

    Теми цього довгочиту:

    Websites
  • Elevate Your WordPress Game with Job Support for U.S. Clients

    WordPress continues to dominate the web — powering an estimated 43.4% of all websites globally as of 2025. For developers working on U.S.-based WordPress projects, client expectations are high.

    Теми цього довгочиту:

    It