mirror of
https://github.com/TheAlgorithms/Python.git
synced 2024-11-27 15:01:08 +00:00
Create potential_energy.py (#7666)
* Create potential_energy.py Finding the gravitational potential energy of an object with reference to the earth, by taking its mass and height above the ground as input * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update physics/potential_energy.py Co-authored-by: Chris O <46587501+ChrisO345@users.noreply.github.com> * Update physics/potential_energy.py Co-authored-by: Chris O <46587501+ChrisO345@users.noreply.github.com> * Update physics/potential_energy.py Co-authored-by: Caeden Perelli-Harris <caedenperelliharris@gmail.com> * Update physics/potential_energy.py Co-authored-by: Caeden Perelli-Harris <caedenperelliharris@gmail.com> * Update physics/potential_energy.py Co-authored-by: Caeden Perelli-Harris <caedenperelliharris@gmail.com> * Update physics/potential_energy.py Co-authored-by: Caeden Perelli-Harris <caedenperelliharris@gmail.com> * Update physics/potential_energy.py Co-authored-by: Caeden Perelli-Harris <caedenperelliharris@gmail.com> * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Chris O <46587501+ChrisO345@users.noreply.github.com> Co-authored-by: Caeden Perelli-Harris <caedenperelliharris@gmail.com>
This commit is contained in:
parent
cf08d9f5e7
commit
301a520f03
61
physics/potential_energy.py
Normal file
61
physics/potential_energy.py
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
from scipy.constants import g
|
||||||
|
|
||||||
|
"""
|
||||||
|
Finding the gravitational potential energy of an object with reference
|
||||||
|
to the earth,by taking its mass and height above the ground as input
|
||||||
|
|
||||||
|
|
||||||
|
Description : Gravitational energy or gravitational potential energy
|
||||||
|
is the potential energy a massive object has in relation to another
|
||||||
|
massive object due to gravity. It is the potential energy associated
|
||||||
|
with the gravitational field, which is released (converted into
|
||||||
|
kinetic energy) when the objects fall towards each other.
|
||||||
|
Gravitational potential energy increases when two objects
|
||||||
|
are brought further apart.
|
||||||
|
|
||||||
|
For two pairwise interacting point particles, the gravitational
|
||||||
|
potential energy U is given by
|
||||||
|
U=-GMm/R
|
||||||
|
where M and m are the masses of the two particles, R is the distance
|
||||||
|
between them, and G is the gravitational constant.
|
||||||
|
Close to the Earth's surface, the gravitational field is approximately
|
||||||
|
constant, and the gravitational potential energy of an object reduces to
|
||||||
|
U=mgh
|
||||||
|
where m is the object's mass, g=GM/R² is the gravity of Earth, and h is
|
||||||
|
the height of the object's center of mass above a chosen reference level.
|
||||||
|
|
||||||
|
Reference : "https://en.m.wikipedia.org/wiki/Gravitational_energy"
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
def potential_energy(mass: float, height: float) -> float:
|
||||||
|
# function will accept mass and height as parameters and return potential energy
|
||||||
|
"""
|
||||||
|
>>> potential_energy(10,10)
|
||||||
|
980.665
|
||||||
|
>>> potential_energy(0,5)
|
||||||
|
0.0
|
||||||
|
>>> potential_energy(8,0)
|
||||||
|
0.0
|
||||||
|
>>> potential_energy(10,5)
|
||||||
|
490.3325
|
||||||
|
>>> potential_energy(0,0)
|
||||||
|
0.0
|
||||||
|
>>> potential_energy(2,8)
|
||||||
|
156.9064
|
||||||
|
>>> potential_energy(20,100)
|
||||||
|
19613.3
|
||||||
|
"""
|
||||||
|
if mass < 0:
|
||||||
|
# handling of negative values of mass
|
||||||
|
raise ValueError("The mass of a body cannot be negative")
|
||||||
|
if height < 0:
|
||||||
|
# handling of negative values of height
|
||||||
|
raise ValueError("The height above the ground cannot be negative")
|
||||||
|
return mass * g * height
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
from doctest import testmod
|
||||||
|
|
||||||
|
testmod(name="potential_energy")
|
Loading…
Reference in New Issue
Block a user