Pendekatan Rasional terhadap ln (phi)

Internet dan mesin hitung paling presisi saat ini menunjukan bahwa \ln(\phi) adalah bilangan irasional, dugaan saya juga begitu. Alam semesta selalu menunjukan fenomena yang intuitif, namun ketetapan itu sifatnya bebas dari pikiran. Saya percaya bahwa \ln(\phi) tidak hanya inheren dalam e dan \phi, tetapi juga ada di alam dalam bentuk lain. Bila tertarik bagaimana memeriksa keirasionalan suatu bilangan dalam cara yang lebih seksama bisa melalui metode yang sama diterapkan terhadap konstanta Apéry \zeta(3), melalui kriteria keirasionalan yang biasa maupun melalui notasi O besar. Pendekatan rasional melalui continued fraction adalah salah satu metode yang terbaik digunakan. Dari bentuk simple cf \ln(\phi) pada tulisan sebelumnya didapat tiap-tiap bagian bentuk cf linier ini, saya ambil hingga ke-30 (0 di paling awal sebagai bagian integer dari \ln(\phi)) :

simple cf approximation to ln (phi)

Bentuk rasional dari bagian-bagian liner simple cf di atas adalah :

simple cf approximation to ln (phi)

Lompatan besar dalam denominator (misalnya, 20465 → 􀀀6442217) umumnya terjadi pada digit CF “besar”; lompatan kecil (misalnya, 25 →􀀀 27) umumnya terjadi pada digit CF “kecil”. Tidak terdapat pola yang jelas pada digit simple CF \ln(\phi).

simple cf approximation to ln (phi)

Relative error berubah tanda : positif dan negatif secara bergantian, yaitu mendekati \ln(\phi) secara bergantian: overshoot dan undershoot.

Python memiliki keterbatasan untuk mengkonstruk semua bilangan rasional yang paling dekat ke suatu bilangan real tertentu, melalui CF. Meskipun demikian Python mempunyai modul Fractions untuk menghitung bentuk rasional paling dekat terhadap dirinya dengan denominator yang paling dekat. Contoh :


import math
from fractions import Fraction

phi = (1+math.sqrt(5))/2
k = math.log(phi)

print "phi : ", phi
print "k : ", k
print(Fraction.from_float(k).limit_denominator(100))

Output:

phi : 1.61803398875
k : 0.48121182506
38/79

Catatan : Untuk suatu bilangan real x, modul ini mendefiniskan “best upper rational approximation” dalam bentuk pecahan \displaystyle \frac{p}{q} terhadap x sehingga : (1) \displaystyle \frac{p}{q}\geq x, dan (2) jika \displaystyle \frac{p}{q} > \displaystyle \frac{r}{s}\geq x maka s > q, untuk suatu bilangan rasional \displaystyle \frac{r}{s}.

Begitu pula untuk *best lower approximation*. Jadi bisa dibuktikan bahwa bilangan rasional adalah best upper atau best lower approximation terhadap x, jika dan hanya jika ia konvergen atau semikonvergen pada bentuk refresentasi x dalam CF.

Untuk menemukan pendekatan rasional terbaik dengan denominator \leq M, diperlukan best upper dan best lower approximation dengan denominator \leq M dan mengambil mana yang lebih dekat ke x.

Selain fungsi limit_denominator(), modul Fractions ini juga bisa menghitung bilangan rasional dari bentuk desimal berhingga (finite) yang instan, dan mengkonversi langsung secara eksak. Contoh :


import math
from fractions import Fraction

phi = (1+math.sqrt(5))/2
k = math.log(phi)

print "phi : ", phi
print "k : ", k
print(Fraction(k))

Output:

phi : 1.61803398875
k : 0.48121182506
4334370792049413/9007199254740992

Catatan tambahan (update) :

Di Python, terdapat modul Decimal yang bisa digunakan untuk melihat nilai eksak atau untuk mengatur presisi dari suatu nilai float atau desimal tertentu. Artikel menarik dari David Goldberg, What Every Computer Scientist Should Know About Floating-Point Arithmetic. Thanks, Debb.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s