import numpy as np

# Заданные параметры
R1 = 10
R2 = 40
R3 = 10
w = 1000  # угловая частота, рад/с
C_value = 200e-6 # Емкость, Ф
Z_C = 1/(1j * w * C_value) # Импеданс конденсатора

# Задаём входное напряжение с фазой
Uent = 5 * np.exp(1j * -0.2444)

# Эквивалентный импеданс без добавления индуктивности
ZII = (R2 * (R3 + Z_C)) / (R2 + R3 + Z_C)
Zent = R1 + ZII
print(f"Эквивалентный входной импеданс без индуктивности: Zent = {Zent:.2f} Ω")

# Мнимая часть входного импеданса
Im_Zent = Zent.imag

# Вычисляем индуктивность L для компенсации мнимой части
L = -Im_Zent / w
print(f"Необходимая индуктивность для резонанса: L = {L:.6f} Гн")

# Добавляем индуктивность в цепь
ZL = 1j * w * L
Z_total = Zent + ZL
print(f"Общий входной импеданс при резонансе: Z_total = {Z_total.real:.2f}+{Z_total.imag:.2f}j Ω")

print(f"Мнимая часть Z_total: {Z_total.imag:.4f} Ω (должна быть ≈ 0)")

# Входной ток при резонансе
ient_resonance = Uent / Z_total
print(f"Входной ток при резонансе: i_ent = {ient_resonance:.4f} A")

R_total = Z_total.real
print(f"Входное сопротивление при резонансе: R_total = {R_total:.2f} Ω")

# Добротность
Q = (w * L) / R_total
print(f"Добротность резонанса Q: {Q:.2f}")

# Ширина полосы пропускания
Bandwidth = R_total / L
print(f"Ширина полосы пропускания Δω: {Bandwidth:.2f} рад/с")
