Pembaca yang budiman,
Kali ini kami akan sedikit berbagi pengalaman tentang Plotting Graphic untuk tujuan “research representation”. Tentu saja ada banyak cara untuk membuat grafik yang “layak tampil” pada penulisan paper dan artikel ilmiah, seperti menggunakan Matlab, Scilab, GNUPlot, MFC bawaan visual studio, VTK, dan bahkan MS Excel. Namun keterbatasanlah (resource memory dan harddisk, copyright) yang terkadang menghambat kita untuk menggunakan software2 di atas. Belum lagi waktu yang habis digunakan untuk mempelajari software atau library baru. Oleh karena itu, dengan semangat mengutamakan kepraktisan dan “simplicity”, kami menyajikan salah satu alternatif cara untuk menyajikan grafik dengan menggunakan Python, NumPy, dan matplotlib (dan SciPy bila diperlukan).
Pertama, silahkan anda mendownload resource yang dibutuhkan (kami menggunakan Python 2.7, bagi yang menggunakan versi lain, bisa disesuaikan):
- Python 2.7, bisa diunduh di sini
- NumPy, bisa di unduh di tautan berikut
- matplotlib, bisa diunduh di sini
- SciPy (optional), bisa diunduh di sini
Setelah semua terinstall dengan baik, mari kita mulai dari contoh yang paling sederhana, sebagai berikut:
################################################
#4th Runge-Kutta's Method
################################################
#Equation:
# dy/dx = -2xy;
# initial conditions: y(0) = 1, X(0) = 0, h = 0.01 ; 0<x<2
#
#Exact solution:
# y = exp(-x^2)
import numpy, math, matplotlib
from pylab import *
################################################
#Exact Solution
################################################
f = lambda x: exp(-1*x**2)
################################################
################################################
#4th Runge Kutta
################################################
#initial conditions, step size
x0, y0, h, end = 0, 1, 0.01, 2
#number of steps
n = end/h
a = [x0] #place x0 in array
b = [y0] #place y0 in array
for i in arange(0,n,1):
k1x, k1y = x0 + i*h, y0
k1 = (-2*k1x*k1y)
k2x, k2y = x0 + i*h + 0.5*h, y0 + 0.5*k1*h
k2 = (-2*k2x*k2y)
k3x, k3y = x0 + i*h + 0.5*h, y0 + 0.5*k2*h
k3 = (-2*k3x*k3y)
k4x, k4y = x0 + i*h + h, y0 + k3*h
k4 = (-2*k4x*k4y)
y0 = y0 + (1/6.0)*(k1 + 2*k2 + 2*k3 + k4)*h
a.append(k1x)
b.append(y0)
################################################
#Plot Data
figure()
x = arange(0,end,0.001)
plot(a,b,'k--',color = 'b')
plot(x,f(x),'k',color = 'r')
legend(('4th-RK','Exact'))
title('4th Runge-Kutta Method for dy/dx = -2xy')
ylabel('y')
xlabel('x')
show()
Program di atas adalah penyelesaian persamaan differensial dengan menggunakan Runge-Kutta orde 4. Pada potongan program:
#Plot Data
figure()
x = arange(0,end,0.001)
plot(a,b,'k--',color = 'b')
plot(x,f(x),'k',color = 'r')
legend(('4th-RK','Exact'))
title('4th Runge-Kutta Method for dy/dx = -2xy')
ylabel('y')
xlabel('x')
show()
merupakan grafik visualisasi dari perhitungan secara “exact” dan perhitungan secara iterasi. Setelah program di-“run”, hasilnya akan seperti gambar berikut:
Sangat simpel bukan?
Anda dapat mengubah parameter-parameter yang diperlukan untuk visualisasi grafik yang anda butuhkan. Silakan merujuk ke tautan berikut:
Matplotlib Gallery

