Penelitian Terkini Persamaan Helmholtz dari Dr. Yogi Ahmad Erlangga

Baru-baru ini Dr. Yogi Ahmad Erlangga jadi buah bibir di kalangan ilmuwan dan matematikawan baik dari dalam maupun luar negeri, hingga masyarakat umum. Di internet juga ramai dibicarakan. Ilmuwan dan matematikawan asal Tasikmalaya ini telah berhasil mencatatkan sejarah dalam membuat suatu refresentasi baru persamaan Helmholtz. Algoritma baru yang ditemukan Dr. Yogi juga telah diakui oleh kalangan ilmuwan dan di dunia industri, dapat mempersingkat proses pencarian minyak. Tidak menutup kemungkinan juga bisa diterapkan berbagai bidang lain. Di artikelnya, Phys.org menyebut Dr. Yogi sebagai matematikawan Belanda. Padahal Beliau adalah orang Indonesia, asli dari Tasikmalaya, hehe.. tempat kelahiran saya juga. Sebagai orang Tasik, tentu saya bangga dan semoga ke depannya akan banyak anak-anak Tasik yang jadi ilmuwan dan matematikawan yang bisa harumkan nama Indonesia di kancah internasional.

D7News.com sebagai portal berita IPTEK dan Penelitian juga turut mengupas tentang keberhasilan Dr. Yogi tersebut di sini.

Di blog ini saya akan mendaftar beberapa artikel menarik hasil riset Dr. Yogi tersebut dalam beberapa tahun belakangan ini. Bagi yang berminat ingin mempelajari temuan ini lebih dalam bisa pelajari paper hasil-hasil risetnya. Berikut beberapa bacaan menarik yang saya dapatkan :

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.

Menggambar Sketsa Bunga Mawar di Python

Bunga mawar (rose) sering dijadikan subjek dalam berbagai karya seni, seperti potret, ilustrasi, lukisan dan juga sebagai subjek atau oranemen dalam arsitektur. Pelukis Perancis, Pierre-Joseph Redouté, terkenal dengan lukisan berbagai jenis bunga mawar yang digambar dengan sangat teliti. Nah, saya di sini tidak akan menggambar bunga mawar sedetail sang pelukis, atau bunga mawar sebagaimana alaminya, tetapi hanya akan menggambar sketsa bunga mawar saja dengan persamaan matematika dibantu dengan bahasa pemrograman Python.

Terinspirasi beberapa bentuk persamaan matematika dari gambar sketsa bunga mawar di halaman web Eric R. Weeks (ditulis dalam gawk script), yang idenya bermula dari “Mathographics” karya Robert Dixon, persamaan dasar untuk bunga mawar dapat ditulis dalam kordinat polar sebagai berikut :

x\left ( r, \theta \right )= r \cos \theta

y\left ( r, \theta \right )= r \sin \theta

dimana :

r=k\left ( a+\sin\left ( b\theta+\frac{k}{c} \right ) \right )

a, b dan c adalah parameter. Berikut ini salah satu satu contoh kode Python yang saya gunakan untuk membuat gambar sketsa dasar bunga mawar :

import matplotlib.pyplot as plt
import numpy as np

a = 15
b = 6
c = 100

theta = np.linspace(-2 * np.pi, 100, num=100)
k = np.linspace(0, 45, num=100)
r = k * (a+np.sin(theta*b+(k/c)))

x = r * np.cos(theta)
y = r * np.sin(theta)

plt.plot(x, y, color='r')
plt.axis('off')
plt.show()

Hasil plotnya :

Red Rose Flower (basic)

Sedikit modifikasi terhadap k pada persamaan r, dengan

k=\left ( \frac{0.8\theta}{2 \pi} \right ) + 3

Beberapa contoh gambar sketsa bunga mawar yang saya hasilkan dengan persamaan terkahir dapat dilihat pada 2 gambar berikut, saya sertakan juga salah satu contoh kode sumbernya di bagian paling bawah.

Red Rose

Sketsa bunga mawar dengan warna pink :

Pink Rose

Sedikit eksplorasi dengan :  k=\left ( \frac{0.8\theta}{2 \pi} \right ) + 1

Pink Rose

Dan ini sketsa gambar yang terakhir, tampak lebih indah dan cantik :

Sketsa Bunga Mawar

Contoh kode sumber untuk membuat plot terhadap persamaan polar gambar ketiga (gambar yang kedua didapatkan dengan membuat variasi pada nilai parameter a, b dan c) :

import matplotlib.pyplot as plt
import numpy as np

a = 8
b = 6
c = 3

theta = np.linspace(0, 45 * 2* np.pi, num=10000)
k = (0.8*theta/(2*np.pi)+3)
r = k *(a+np.sin(theta*b+(k/c)))

x = r * np.cos(theta)
y = r * np.sin(theta)

plt.plot(x, y, color='#CC0066')
plt.axis('off')
plt.show()