- Notifications
You must be signed in to change notification settings - Fork 46.7k
/
Copy pathresonant_frequency.py
50 lines (38 loc) · 1.56 KB
/
resonant_frequency.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# https://en.wikipedia.org/wiki/LC_circuit
"""An LC circuit, also called a resonant circuit, tank circuit, or tuned circuit,
is an electric circuit consisting of an inductor, represented by the letter L,
and a capacitor, represented by the letter C, connected together.
The circuit can act as an electrical resonator, an electrical analogue of a
tuning fork, storing energy oscillating at the circuit's resonant frequency.
Source: https://en.wikipedia.org/wiki/LC_circuit
"""
from __future__ importannotations
frommathimportpi, sqrt
defresonant_frequency(inductance: float, capacitance: float) ->tuple:
"""
This function can calculate the resonant frequency of LC circuit,
for the given value of inductance and capacitnace.
Examples are given below:
>>> resonant_frequency(inductance=10, capacitance=5)
('Resonant frequency', 0.022507907903927652)
>>> resonant_frequency(inductance=0, capacitance=5)
Traceback (most recent call last):
...
ValueError: Inductance cannot be 0 or negative
>>> resonant_frequency(inductance=10, capacitance=0)
Traceback (most recent call last):
...
ValueError: Capacitance cannot be 0 or negative
"""
ifinductance<=0:
raiseValueError("Inductance cannot be 0 or negative")
elifcapacitance<=0:
raiseValueError("Capacitance cannot be 0 or negative")
else:
return (
"Resonant frequency",
float(1/ (2*pi* (sqrt(inductance*capacitance)))),
)
if__name__=="__main__":
importdoctest
doctest.testmod()