mirror of
https://github.com/TheAlgorithms/Python.git
synced 2024-11-23 21:11:08 +00:00
Added Coulomb_Law (#8714)
* Create coulomb_law.py * Update coulomb_law.py * Update coulomb_law.py * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update and rename coulomb_law.py to coulombs_law.py * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update coulombs_law.py * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update coulombs_law.py * Update coulombs_law.py * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update coulombs_law.py * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update coulombs_law.py --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Tianyi Zheng <tianyizheng02@gmail.com>
This commit is contained in:
parent
211247ef82
commit
eace4cea32
42
physics/coulombs_law.py
Normal file
42
physics/coulombs_law.py
Normal file
|
@ -0,0 +1,42 @@
|
|||
"""
|
||||
Coulomb's law states that the magnitude of the electrostatic force of attraction
|
||||
or repulsion between two point charges is directly proportional to the product
|
||||
of the magnitudes of charges and inversely proportional to the square of the
|
||||
distance between them.
|
||||
|
||||
F = k * q1 * q2 / r^2
|
||||
|
||||
k is Coulomb's constant and equals 1/(4π*ε0)
|
||||
q1 is charge of first body (C)
|
||||
q2 is charge of second body (C)
|
||||
r is distance between two charged bodies (m)
|
||||
|
||||
Reference: https://en.wikipedia.org/wiki/Coulomb%27s_law
|
||||
"""
|
||||
|
||||
|
||||
def coulombs_law(q1: float, q2: float, radius: float) -> float:
|
||||
"""
|
||||
Calculate the electrostatic force of attraction or repulsion
|
||||
between two point charges
|
||||
|
||||
>>> coulombs_law(15.5, 20, 15)
|
||||
12382849136.06
|
||||
>>> coulombs_law(1, 15, 5)
|
||||
5392531075.38
|
||||
>>> coulombs_law(20, -50, 15)
|
||||
-39944674632.44
|
||||
>>> coulombs_law(-5, -8, 10)
|
||||
3595020716.92
|
||||
>>> coulombs_law(50, 100, 50)
|
||||
17975103584.6
|
||||
"""
|
||||
if radius <= 0:
|
||||
raise ValueError("The radius is always a positive non zero integer")
|
||||
return round(((8.9875517923 * 10**9) * q1 * q2) / (radius**2), 2)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
import doctest
|
||||
|
||||
doctest.testmod()
|
Loading…
Reference in New Issue
Block a user