Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions physics/hookes_law.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Hookes Law
"""
Hookes Law states that the Force is directly proportional to the extension
or compression of an elastic object, provided the limit of proportionality
is not exceeded.
Formulae : F = -k*x
F: Force
k: spring constant
x: displacement
x is the displacement from the equilibrium position
The negative sign indicates that the restoring force acts in the opposite
direction to the displacement, always working to bring the object back to
its original state.
Reference: https://en.wikipedia.org/wiki/Hooke%27s_law
"""


def hookes_law(spring_constant: float, displacement: float) -> float:
"""
Calculate the Hookes law from the given values of spring constant 'k'
and the displacement 'x' from the equilibrium position.
>>> hookes_law(200, 0.05)
-10.0
>>> hookes_law(50, 5)
-250
>>> hookes_law(300, 3)
-900
"""
return round(-spring_constant * displacement, 2)


if __name__ == "__main__":
import doctest

doctest.testmod()