"""Самостоятельный аналитический контроль занятия.
Среда: встроенный MicroPython FEMM 5; используется только стандартная арифметика.
Этот код проверяет формулы и единицы; нативные поля имеют отдельные квитанции.
"""
import math
area=1e-4; phi=80e-6; u=100.0; length=0.01; side=0.2e-6
def h(b):
    return 100*b+1000*b**3
# Метод 1 использует входное H на первой половине длины.
h0=h(phi/area); uc1=u+h0*length/2
b1=(phi+side*uc1)/area
du1=length*(h0+h(b1))/2
# Метод 2 сначала предсказывает промежуточный поток и его H.
hm=h((phi+side*u/2)/area); uc2=u+length*(h0+hm)/4
b2=(phi+side*uc2)/area; du2=length*(h0+h(b2))/2
assert abs(du1-8.55228673337)<1e-9
assert abs(du2-8.57010085112)<1e-9
assert b1>phi/area and b2>phi/area
print("Падения на участке, А",du1,du2)
