mirror of
https://github.com/TheAlgorithms/Python.git
synced 2024-12-05 02:40:16 +00:00
5cf34d901e
* updating DIRECTORY.md * Fix ruff error in eulerian_path_and_circuit_for_undirected_graph.py * Fix ruff error in newtons_second_law_of_motion.py --------- Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
82 lines
2.6 KiB
Python
82 lines
2.6 KiB
Python
"""
|
|
Description :
|
|
Newton's second law of motion pertains to the behavior of objects for which
|
|
all existing forces are not balanced.
|
|
The second law states that the acceleration of an object is dependent upon two variables
|
|
- the net force acting upon the object and the mass of the object.
|
|
The acceleration of an object depends directly
|
|
upon the net force acting upon the object,
|
|
and inversely upon the mass of the object.
|
|
As the force acting upon an object is increased,
|
|
the acceleration of the object is increased.
|
|
As the mass of an object is increased, the acceleration of the object is decreased.
|
|
Source: https://www.physicsclassroom.com/class/newtlaws/Lesson-3/Newton-s-Second-Law
|
|
Formulation: Fnet = m • a
|
|
Diagrammatic Explanation:
|
|
Forces are unbalanced
|
|
|
|
|
|
|
|
|
|
|
V
|
|
There is acceleration
|
|
/\
|
|
/ \
|
|
/ \
|
|
/ \
|
|
/ \
|
|
/ \
|
|
/ \
|
|
__________________ ____ ________________
|
|
|The acceleration | |The acceleration |
|
|
|depends directly | |depends inversely |
|
|
|on the net Force | |upon the object's |
|
|
|_________________| |mass_______________|
|
|
Units:
|
|
1 Newton = 1 kg X meters / (seconds^2)
|
|
How to use?
|
|
Inputs:
|
|
___________________________________________________
|
|
|Name | Units | Type |
|
|
|-------------|-------------------------|-----------|
|
|
|mass | (in kgs) | float |
|
|
|-------------|-------------------------|-----------|
|
|
|acceleration | (in meters/(seconds^2)) | float |
|
|
|_____________|_________________________|___________|
|
|
|
|
Output:
|
|
___________________________________________________
|
|
|Name | Units | Type |
|
|
|-------------|-------------------------|-----------|
|
|
|force | (in Newtons) | float |
|
|
|_____________|_________________________|___________|
|
|
|
|
"""
|
|
|
|
|
|
def newtons_second_law_of_motion(mass: float, acceleration: float) -> float:
|
|
"""
|
|
>>> newtons_second_law_of_motion(10, 10)
|
|
100
|
|
>>> newtons_second_law_of_motion(2.0, 1)
|
|
2.0
|
|
"""
|
|
force = 0.0
|
|
try:
|
|
force = mass * acceleration
|
|
except Exception:
|
|
return -0.0
|
|
return force
|
|
|
|
|
|
if __name__ == "__main__":
|
|
import doctest
|
|
|
|
# run doctest
|
|
doctest.testmod()
|
|
|
|
# demo
|
|
mass = 12.5
|
|
acceleration = 10
|
|
force = newtons_second_law_of_motion(mass, acceleration)
|
|
print("The force is ", force, "N")
|