mirror of
https://github.com/TheAlgorithms/Python.git
synced 2024-11-27 15:01:08 +00:00
Added newtons_second_law_of_motion.py (#5474)
This commit is contained in:
parent
331fe6d3bc
commit
9655ec2a05
81
physics/newtons_second_law_of_motion.py
Normal file
81
physics/newtons_second_law_of_motion.py
Normal file
|
@ -0,0 +1,81 @@
|
|||
"""
|
||||
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 = float()
|
||||
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")
|
Loading…
Reference in New Issue
Block a user