From 9655ec2a05f1ebbafb3c0ac5acf3d6278b498030 Mon Sep 17 00:00:00 2001 From: Divyesh Vishwakarma Date: Thu, 4 Nov 2021 16:18:57 +0530 Subject: [PATCH] Added newtons_second_law_of_motion.py (#5474) --- physics/newtons_second_law_of_motion.py | 81 +++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 physics/newtons_second_law_of_motion.py diff --git a/physics/newtons_second_law_of_motion.py b/physics/newtons_second_law_of_motion.py new file mode 100644 index 000000000..cb53f8f65 --- /dev/null +++ b/physics/newtons_second_law_of_motion.py @@ -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")