"""Чувствительность к исходным данным и неопределённость.

Среда: встроенный MicroPython FEMM 5.
Аналитический учебный пример; полевой решатель не вызывается.
Параметры, единицы величин и порядок вывода пояснены по стадиям.
"""

import math

# Относительные стандартные неопределённости площади и зазора, доли единицы.
area_relative, gap_relative = 0.02, 0.05
# Локальные относительные чувствительности для L ∝ S/g: +1 по площади и −1 по зазору.
area_sensitivity, gap_sensitivity = 1.0, -1.0
# Корень суммы квадратов применим при независимых исходных неопределённостях.
standard_relative = math.sqrt(
    (area_sensitivity * area_relative) ** 2 + (gap_sensitivity * gap_relative) ** 2
)
# Сумма модулей даёт иной результат — локальный интервальный предел.
# Обе оценки предполагают малые изменения и локальную линейность.
interval_relative = (
    abs(area_sensitivity) * area_relative + abs(gap_sensitivity) * gap_relative
)
print("Стандартная неопределенность, %:", 100 * standard_relative)
print("Локальный интервальный предел, %:", 100 * interval_relative)
