Numerical adalah sebuah Class yang dapat membantu kita dalam menginisialisasi awal dalam mencari solusi menggunakan Komputasi Numerik baik Akolade maupun Non Akolade.
Class ini akan melakukan inisialisasi nilai awal seperti low, high, dan step dan juga sekaligus membuat atau mendefinisikan rumus-rumus yang akan dipakai nantinya.
INISIALISASI
import computing.numeric as num
numeric = num.Numerical(
low = 0, high = 1, step = 0.1, formula = "x^2 - x + 3")Low
Nilai low adalah nilai terendah yang didefinisikan (didaftarkan) yang nantinya akan dipakai untuk menjadi patokan nilai bawah dari mencari solusi Numerik.
High
Nilai high adalah nilai terendah yang didefinisikan (didaftarkan) yang nantinya akan dipakai untuk menjadi batas akhir dari mencari solusi Numerik.
Step
Nilai step adalah nilai yang digunakan untuk menambahkan nilai low sampai mendekati nilai high dengan tujuan untuk mencari persamaan akar pada lingkup low <= step <= high.
Formula
Daripada kita mendefiniskan rumus-rumus f(x), f'(x), g(x), maupun g'(x) secara manual, mengapa kita tidak menyerahkan semua itu untuk dibuatkan oleh sistem,
Class Numerical ini juga memiliki kemampuan untuk membuat formula-formula yang dibutuhkan, hanya dengan membutuhkan rumus awal f(x) maka sistem akan dapat membuatkan rumus-rumus yang lainnya secara otomatis.
Didalam class Numerical ini akan memanggil class lain bernama Expression untuk dibuatkan rumus-rumusnya. Class Expression ini hanya dapat membuat rumus-rumus yang sederhana (tanpa ada operasi trigonometri, exp, log, dan lainnya) seperti deret x berpangkat.
Contoh:
import computing.numeric as num
numeric = num.Numerical(
...
formula = "x^2 - x + 3"
)
numeric.showFormulas()
# f(x) = x^2 - x + 3
# f'(x) = 2*x - 1
# g(x) = x^2 + 3
# g'(x) = 2*ximport computing.numeric as num
numeric = num.Numerical(
...
formula = "2*x^5 - 4*x^4 + x^3 - 2*x^2 + 2*x - 4"
)
numeric.showFormulas()
# f(x) = 2*x^5 - 4*x^4 + x^3 - 2*x^2 + 2*x - 4
# f'(x) = 10.0*x^4 - 16.0*x^3 + 3*x^2 - 4.0*x + 2
# g(x) = (-2*x^5 + 4*x^4 - x^3 + 2*x + 4) / (2)
# g'(x) = (-10.0*x^4 + 16.0*x^3 - 3*x^2 + 2)
*Pastikan telah sesuai dengan aturan penulisan rumus pada Equation Definition.
Jika kita membutuhkan rumus-rumus dengan fungsi - fungsi trigonometri (sin, cos, tan), log, exp dsb, kita dapat mendefinisikannya di file yang telah disediakan pada program, file itu bernama formula.py yang berada di computing/formula/formula.py
Tetapi sebelum itu pastikan kita sudah memberi tahu class Numerical jika ingin menggunakan atau mendefinisikan rumus secara manual dengan mengisi parameter formula dengan constanta num.MANUAL.
import computing.numeric as num
numeric = num.Numerical(
...
formula = num.MANUAL
)
numeric.showFormulas()
# f(x) = Manual
# f'(x) = Manual
# g(x) = Manual
# g'(x) = ManualDidalam file formula.py akan berisi sebuah 4 buah function yang dapat diubah - ubah rumusnya.
import math
from numpy import log as ln
from numpy import log10
def f(x):
return math.exp(-x) - x
def fs(x):
return - math.exp(-x) - 1
def g(x):
return math.exp(-x)
def gs(x):
return - math.exp(-x)
FUNCTION
| Function | Fungsi |
|---|---|
| getLow() | mengambil nilai low yang telah didefinisikan diawal |
| getHigh() | mengambil nilai high yang telah didefinisikan diawal |
| getStep() | mengambil nilai step yang telah didefinisikan diawal |
| getTable() | mendapatkan list tabel dari hasil perhitungan f(x) didala range low sampai high |
| getPoints() | mendapatkan kumpulan titik x dan f(x) dalam bentuk List |
| getExpression() | mendapatkan objek dari class Expression yang nantinya dapat meng eval rumus-rumus yang dibuat pada Numerical |
import computing.numeric as num
numeric = num.Numerical(
low=0,
high=1,
step=0.1,
formula="3*x^2 - 2*x + 1"
)
low = numeric.getLow()
print(low) # 0
high = numeric.getHigh()
print(high) # 1
step = numeric.getStep()
print(step) # 0.1
import computing.numeric as num
numeric = num.Numerical(
low=0,
high=1,
step=0.1,
formula="3*x^2 - 2*x + 1"
)
points = numeric.getPoints()
print(points)
# [[0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7,
# 0.8, 0.9, 1.0], [1, 0.83, 0.72, 0.6699999999999999,
# 0.68, 0.75, 0.8800000000000001, 1.0699999999999998,
# 1.3199999999999998, 1.63, 1.9999999999999993]]
table = numeric.getTable()
print(table)
# [[0, 1], [0.1, 0.83], [0.2, 0.72],
# [0.3, 0.6699999999999999], [0.4, 0.68],
# [0.5, 0.75], [0.6, 0.8800000000000001],
# [0.7, 1.0699999999999998], [0.8, 1.3199999999999998],
# [0.9, 1.63], [1.0, 1.9999999999999993]]
import computing.numeric as num
numeric = num.Numerical(
low=0,
high=1,
step=0.1,
formula="3*x^2 - 2*x + 1"
)
expression = numeric.getExpression()
print(expression.getF()) # 3*x**2-2*x+1
print(expression.getFs()) # 6.0*x-2
print(expression.getG()) # (3*x**2+1)/(2)
print(expression.getGs()) # (6.0*x)
import computing.numeric as num
numeric = num.Numerical(
low=0,
high=1,
step=0.1,
formula="3*x^2 - 2*x + 1"
)
expression = numeric.getExpression()
print(expression.evalF(1)) # 2
print(expression.evalFs(1)) # 4.0
print(expression.evalG(1)) # 2.0
print(expression.evalGs(1)) # 6.0