"""Проверка найденной конструкции: сетка, углы, соседи и изменённые условия.

Среда: встроенный Python FEMM 5.
Проверяется только авторский аналитический эталон, полевой решатель не вызывается.
Полученные числа не являются квитанцией расчёта электромагнита или машины.
"""

# Синтетические значения в ньютонах заданы на трёх сетках с одинаковым отношением размеров.
# До логарифмирования проверяем знак разностей, затем выводим наблюдаемый порядок и предел.
import math
coarse, medium, fine, ratio = 20.08, 20.02, 20.005, 2.0
d1, d2 = coarse - medium, medium - fine
if d1 * d2 <= 0:
    raise ValueError("Монотонный асимптотический режим не подтвержден")
order = math.log(abs(d1 / d2)) / math.log(ratio)
if order <= 0:
    raise ValueError("Положительный порядок не подтвержден")
limit = fine + (fine - medium) / (ratio**order - 1)
print("Наблюдаемый порядок:", order)
print("Предел синтетического примера, Н:", limit)
