mirror of
https://github.com/TheAlgorithms/Python.git
synced 2024-11-23 21:11:08 +00:00
feat: Add mass energy equivalence in physics and doctests (#10202)
* updating DIRECTORY.md * feat: Add mass energy equivalence in physics * updating DIRECTORY.md * updating DIRECTORY.md * Apply suggestions from code review * Update physics/mass_energy_equivalence.py * Update mass_energy_equivalence.py --------- Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com> Co-authored-by: Tianyi Zheng <tianyizheng02@gmail.com>
This commit is contained in:
parent
dc4e89805a
commit
68faebe711
|
@ -815,6 +815,7 @@
|
|||
* [Kinetic Energy](physics/kinetic_energy.py)
|
||||
* [Lorentz Transformation Four Vector](physics/lorentz_transformation_four_vector.py)
|
||||
* [Malus Law](physics/malus_law.py)
|
||||
* [Mass Energy Equivalence](physics/mass_energy_equivalence.py)
|
||||
* [Mirror Formulae](physics/mirror_formulae.py)
|
||||
* [N Body Simulation](physics/n_body_simulation.py)
|
||||
* [Newtons Law Of Gravitation](physics/newtons_law_of_gravitation.py)
|
||||
|
|
77
physics/mass_energy_equivalence.py
Normal file
77
physics/mass_energy_equivalence.py
Normal file
|
@ -0,0 +1,77 @@
|
|||
"""
|
||||
Title:
|
||||
Finding the energy equivalence of mass and mass equivalence of energy
|
||||
by Einstein's equation.
|
||||
|
||||
Description:
|
||||
Einstein's mass-energy equivalence is a pivotal concept in theoretical physics.
|
||||
It asserts that energy (E) and mass (m) are directly related by the speed of
|
||||
light in vacuum (c) squared, as described in the equation E = mc². This means that
|
||||
mass and energy are interchangeable; a mass increase corresponds to an energy increase,
|
||||
and vice versa. This principle has profound implications in nuclear reactions,
|
||||
explaining the release of immense energy from minuscule changes in atomic nuclei.
|
||||
|
||||
Equations:
|
||||
E = mc² and m = E/c², where m is mass, E is Energy, c is speed of light in vacuum.
|
||||
|
||||
Reference:
|
||||
https://en.wikipedia.org/wiki/Mass%E2%80%93energy_equivalence
|
||||
"""
|
||||
|
||||
from scipy.constants import c # speed of light in vacuum (299792458 m/s)
|
||||
|
||||
|
||||
def energy_from_mass(mass: float) -> float:
|
||||
"""
|
||||
Calculates the Energy equivalence of the Mass using E = mc²
|
||||
in SI units J from Mass in kg.
|
||||
|
||||
mass (float): Mass of body.
|
||||
|
||||
Usage example:
|
||||
>>> energy_from_mass(124.56)
|
||||
1.11948945063458e+19
|
||||
>>> energy_from_mass(320)
|
||||
2.8760165719578165e+19
|
||||
>>> energy_from_mass(0)
|
||||
0.0
|
||||
>>> energy_from_mass(-967.9)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: Mass can't be negative.
|
||||
|
||||
"""
|
||||
if mass < 0:
|
||||
raise ValueError("Mass can't be negative.")
|
||||
return mass * c**2
|
||||
|
||||
|
||||
def mass_from_energy(energy: float) -> float:
|
||||
"""
|
||||
Calculates the Mass equivalence of the Energy using m = E/c²
|
||||
in SI units kg from Energy in J.
|
||||
|
||||
energy (float): Mass of body.
|
||||
|
||||
Usage example:
|
||||
>>> mass_from_energy(124.56)
|
||||
1.3859169098203872e-15
|
||||
>>> mass_from_energy(320)
|
||||
3.560480179371579e-15
|
||||
>>> mass_from_energy(0)
|
||||
0.0
|
||||
>>> mass_from_energy(-967.9)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: Energy can't be negative.
|
||||
|
||||
"""
|
||||
if energy < 0:
|
||||
raise ValueError("Energy can't be negative.")
|
||||
return energy / c**2
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
import doctest
|
||||
|
||||
doctest.testmod()
|
Loading…
Reference in New Issue
Block a user