Beranda > computation, physics > Python + SciPy + NumPy + Matplotlib = Nice

Python + SciPy + NumPy + Matplotlib = Nice

Bagi anda yang ingin melakukan komputasi sains tapi tidak mempunyai MatLab, anda bisa menggunakan python sebagai penggantinya. Python adalah salah satu bahasa pemrograman. Python dapat di-download secara gratis di sini. Untuk keperluan komputasi, sebaiknya menggunakan versi 2.6.

Kalau anda belum pernah mempelajari python dan computer science sebelumnya, saya sangat merekomendasikan buku “Python Programming: An Introduction to Computer Science” karya John M Zelle. Buku tersebut bisa di-download di sini: Python Programming: An Introduction to Computer Science.

Sebenarnya python bukan bahasa pemrograman yang dikhususkan untuk melakukan komputasi, tapi dengan adanya beberapa modul-modul yang disediakan (secara gratis), python dapat digunakan untuk keperluan komputasi. Beberapa modul saya gunakan untuk komputasi antara lain: SciPy, NumPy, dan Matplotlib.

SciPy

SciPy adalah modul untuk melakukan beberapa perhitungan scientific dengan python. Sedikit contohnya adalah integral numerik, menyelesaikan persamaan differensial secara numerik, optimisasi, interpolasi, pemrosesan sinyal, dll. SciPy dapat di-download di sini dan dokumentasinya dapat di-download di sini.

NumPy

NumPy adalah modul yang menyediakan objek-objek matematika yang memudahkan dalam melakukan perhitungan. Untuk menggunakan SciPy, biasanya kita membutuhkan NumPy. Objek utama yang disediakan NumPy adalah array yang dapat berperan sebagai matrix. Array ini tidak sama dengan array biasa pada bahasa-bahasa pemrograman secara umum. Agak susah untuk dijelaskan jadi sebaiknya anda mencoba sendiri.🙂

Download NumPy bisa di sini dan dokumentasinya bisa di-download di sini.

Matplotlib

Nah, modul yang satu ini sangat penting untuk membuat grafik. Jika tidak ada modul ini, data-data yang diperoleh menggunakan NumPy dan SciPy tidak dapat divisualisasikan. Matplotlib menyediakan banyak fungsi di antaranya untuk menggambar grafik biasa, grafik polar, plot kontur, grafik 3D, dll. Untuk mengunjungi website matplotlib, bisa klik di sini.

Kalau anda malas mendownload dan meng-install satu per satu modul di atas, anda bisa langsung mendownload pythonxy di sini.

Contoh penggunaan

Saya belum bisa menggunakan untuk hal yang aneh-aneh, tapi untuk sekedar menggambar grafik alhamdulillah saya sudah bisa.

KASUS I:

Tinjau sebuah benda dengan persamaan gerak sebagai berikut: y'= -y+\sin(4t) dan kondisi awalnya adalah y=2

Tugas kita adalah menggambarkan grafik y sebagai fungsi t. Berikut adalah kodenya:

>>> from pylab import *  #mengimpor beberapa fungsi penting dari NumPy dan Matplotlib
>>> from scipy.integrate import odeint #Ordinary Differential Equation
>>> t = arange(0, 10.001, 0.01) #membuat rentang waktu dari 0-10 s
>>> f = lambda y,t: -y+sin(4*t) #fungsi y' dalam y dan t
>>> y = odeint(f, 2, t) #menyelesaikan persamaan differensial dengan 2 sebagai kondisi awal y
>>> plot(t,y) #memplot dengan t sebagai absis dan y sebagai ordinat
>>> show() #menampilkan grafik

Hasilnya adalah seperti ini:

KASUS II:

Tinjau sebuah balok yang sangat panjang dengan penampang berupa persegi (tanpa alas dan tanpa tutup). Balok tersebut terdiri dari 4 plat konduktor yang sangat panjang dan tidak terhubung satu sama lain. Misalkan salah satu plat diberi potensial 1V dan tiga plat yang lainnya diberi potensial 0V. Kita disuruh mencari distribusi potensial di dalam balok tersebut.

Cara mencarinya tidak saya jelaskan di sini karena cukup panjang (mungkin di post yang lain), tapi hasilnya adalah sebagai berikut:

Gambar di atas adalah plot kontur potensial sebagai fungsi posisi.

Kira-kira begitulah penjelasan saya tentang komputasi dalam python. Semoga bermanfaat.

  1. Belum ada komentar.
  1. No trackbacks yet.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: