Skip to content

Commit

Permalink
chore: menambahkan fungsi gaussian (#49)
Browse files Browse the repository at this point in the history
Signed-off-by: slowy07 <[email protected]>
  • Loading branch information
slowy07 authored Feb 5, 2024
1 parent 3d66b57 commit 65186c5
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 0 deletions.
18 changes: 18 additions & 0 deletions OpenSeries/matematika.py
Original file line number Diff line number Diff line change
Expand Up @@ -504,3 +504,21 @@ def distribusi_binomial(
koefisien = float(math.factorial(percobaan))
koefisien /= math.factorial(keberhasilan) * math.factorial(percobaan - keberhasilan)
return probabilitas_kejadian * koefisien


def gaussian(
x: int, mu: Union[float, int] = 0.0, sigma: Union[float, int] = 1.0
) -> Union[float, error.ErrorTipeData]:
"""
fungsi gaussian, yang biasa disebut fungsi kurva lonceng adalah fungsi
untuk mendeskripsikan probabilitas distribusi data yang normal
"""
if not all(
isinstance(data, (float, int)) for data in [sigma, mu]
) and not isinstance(x, int):
return error.ErrorTipeData(["float", "int"])
return (
1
/ np.sqrt(2 * constant.PI * sigma**2)
* np.exp(-((x - mu) ** 2) / (2 * sigma**2))
)
7 changes: 7 additions & 0 deletions example/matematika/fungsi_gaussian.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import OpenSeries.matematika as matematika
import numpy as np

print(matematika.gaussian(15))

nilai_x = np.arange(15)
print(matematika.gaussian(nilai_x))
3 changes: 3 additions & 0 deletions testing/main_test.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import unittest

from testing.matematika_test import (
TestKonversi,
TestKelilingLingkaran,
Expand All @@ -14,6 +15,7 @@
TestFungsiEuler,
TestSigmoid,
TestDistribusiBinomial,
TestGaussian,
)

from testing.fisika_test import (
Expand Down Expand Up @@ -46,6 +48,7 @@
TestFungsiEuler,
TestSigmoid,
TestDistribusiBinomial,
TestGaussian,
]

testing_fisika: list = [
Expand Down
10 changes: 10 additions & 0 deletions testing/matematika_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -242,3 +242,13 @@ def test_input_angka_tidak_integer(self):
hasil = matematika.distribusi_binomial(2.4, 4.2, 0.5)
with self.assertRaises(error.ErrorTipeData):
raise hasil


class TestGaussian(unittest.TestCase):
def test_data_valid_input(self):
x = 5
mu = 3
sigma = 2
ekspetasi_nilai = 0.12098536225957168
hasil = matematika.gaussian(x, mu, sigma)
self.assertAlmostEqual(hasil, ekspetasi_nilai, places=10)

0 comments on commit 65186c5

Please sign in to comment.