Wednesday, December 23, 2009

Membaca Data dari File Teks di Python



Kita dapat menyajikan data hasil kode Python dalam bentuk web dengan webserver Python, membuat user dapat memasukkan input saat Runtime, mengolah gambar menggunakan PILmembaca file excelmenyimpan ke format excel dan membaca file teks seperti kebanyakan output-output program semacam Fortran, C, Pascal, dll (biasanya program-program statistik)


Jika kita punya data dalam bentuk file teks yang berisi data-data sebagai berikut

0.010000 0.000000 -1.000000 0.000000 -2.000000
0.020000 0.014866 -0.999889 0.014732 -1.999889
0.030000 0.029659 -0.999560 0.029327 -1.999560
0.040000 0.044441 -0.999012 0.043917 -1.999012
0.050000 0.059207 -0.998246 0.058503 -1.998245
0.060000 0.073952 -0.997262 0.073084 -1.997261
0.070000 0.088673 -0.996061 0.087661 -1.996060
0.080000 0.103364 -0.994644 0.102233 -1.994643

file tersebut berasal dari output sebuah program FORTRAN yang menghitung posisi masa dari dobel pendulum dan terdiri dari beratus-ratus baris (contoh di atas adalah contoh beberapa baris awal) dan tersimpan dalam sebuah file bernama datapendulum1.txt. Kita dapat menggambarkan grafik data tersebut. Misal kita gunakan data pada kolom pertama sebagai sumbu-x dan kolom kedua sebagai sumbu-y, perintah Pythonnya adalah sebagai berikut

from visual import *
from visual.controls import *
import scipy.io.array_import
from pylab import *

rt=177
filename=('datapendulum1.txt')
data=scipy.io.array_import.read_array( filename )
t=data[:,0]
x0=data[:,1]
y0=data[:,2]
x1=data[:,3]
y1=data[:,4]

plot(t,x0,'b-')
show()




From Ubuntu Karmic Koala



From Ubuntu Karmic Koala



Jika ingin plot lebih dari satu kurva maka kita dapat menambah item pada

plot(t,x0,'b-')

menjadi

plot(t,x0,'b-',t,y0,'g-',t,x1,'r-',t,y1,'black')
From Ubuntu Karmic Koala


Jika ingin menambah grid, judul dan semacamnya, tambahkan

grid(True)
xlabel('Sumbu x')
ylabel('Sumbu y')
title('Jejak ')

sebelum perintah plot()
From Ubuntu Karmic Koala


From Ubuntu Karmic Koala


From Ubuntu Karmic Koala


From Ubuntu Karmic Koala

Sunday, December 20, 2009

Graphics on Python using PyLab

Some screenshoot below was taken from my Mac. You may wonder 'Hey, we render in python using Matplotlib, did'nt we?'. Yeah, pylab is part of matplotlib, so, have fun...

from pylab import grid, xlabel, ylabel, title, plot, ylim, xlim, show, sin, cos
r=10
x=[]
y=[]
n=19
for i in range(n):
y.append([])
x.append([])
y[i].append(0)
x[i].append(0)
for i in range(n):
phi=7*i
y[i].append(r*sin(phi))
x[i].append(r*cos(phi))
grid(True)
xlabel('Sumbu x')
ylabel('Sumbu y')
title('Jejak ')
plot(x[0],y[0],'b-',x[1],y[1],'g-',
x[2],y[2],'r-',x[3],y[3],'b-',x[4],y[4],'r-')
batas=10
ylim(-batas,batas)
xlim(-batas,batas)
show()


From Ubuntu Karmic Koala


From Ubuntu Karmic Koala


from pylab import grid, xlabel, ylabel, title, plot, ylim, xlim, show, sin
from visual import *
x=[]
x=arange(-10.,10.,0.1)
grid(True)
xlabel('Sumbu x')
ylabel('Sumbu y')
title('Jejak ')
plot(x,sin(x),'b-')
batas=10
ylim(-2,2)
xlim(-batas,batas)
show()
From Ubuntu Karmic Koala


From Ubuntu Karmic Koala

Monday, November 30, 2009

Integral menggunakan Metode Numerik di Python

Integral suatu fungsi merupakan jumlah luasan di bawah fungsi tersebut. Berdasarkan hal tersebut, maka kita dapat membuat sebuah algoritma untuk mencari luasan sebuah fungsi tanpa perlu mengintegralkan fungsi tersebut. Metode ini memiliki bentuk sebagai berikut

From Ubuntu Karmic Koala


N adalah jumlah segmen Untuk mencari integral dengan cara numerik digunakan algoritma berikut:
  1. Bangkitkan x1, x2, ..., xn
  2. Masukkan nilai-nilai tersebut ke g(x)
  3. Jumlahkan nilai-nilai di langkah 2
  4. Bagi dengan N
  5. Kalikan dengan (b − a)
Misal, untuk mencari nilai integral

From Ubuntu Karmic Koala


menggunakan python, gunakan perintah seperti pada gambar 1 yang hasilnya dapat dilihat pada gambar 2.

Dapat dilihat bahwa hasil integral tersebut dengan Monte-carlo dengan 10 segmen adalah 150.36; agak jauh dari nilai secara analitis, yaitu 168.

Agar akurat, kita perlu memperbesar nilai N. Sebagai contoh, jika nilai N kita ubah menjadi 100, maka hasil integralnya adalah 166.203, lebih mendekati
nilai yang sebenarnya. Tentu saja dengan semakin besar nilai N maka akan (relatif) semakin lama pula penghitungannya.

Sebagai improvisasi, kita dapat menyajikan data hasil kode Python dalam bentuk web dengan webserver python atau mengatur agar user dapat memasukkan input saat runtime. Kita juga dapat memproses grafik menggunakan PILmenyimpan hasil perhitungan ke format excel dan membaca file excel hasil penyimpanan 


From Ubuntu Karmic Koala


From Ubuntu Karmic Koala


From Ubuntu Karmic Koala

Saturday, November 28, 2009

Ubuntu 9.10 Karmic Koala in Tablet PC HP TX2500

After having OpenSuSE 11.1 installed on my Tablet PC for about a year, I want to try installing Ubuntu 9.10 on my TX2500. I used Karmic Koala iso image for AMD64 architecture and start with liveCD choice first.

Using LiveCD, everything is seem work without problem. When a familar exotic GNOME welcome sound is heard, I suddenly jump and think ”hooray, this cool Tablet PC is finally supported by ubuntu...”. Ridiculous, yeah, but the big problem prevent me for installing ubuntu on TX2500 is that no sound support (hey..., how we can life without music...), so, realizing that it wasn’t problem anymore (as well as my pen and eraser on touchscreen), I decided to override my SuSE 11.1 with this Koala.

Oh yeah another pleasure is a popup offers me if I want to install Broadcom, SLModem and ATI propietary driver but, planned to install that after install to harddisk, I close that windows (uh, what the poin install something in live system?).

After install Koala and boot into its system, I wait for popup offerring propietary driver installation but it never showed up, but everything is OK:
  1. Sound is work, that’s good
  2. Digitizer is work, I can use my pen and eraser as pointer and primary click eventhough finger-touch isn’t work.
I, after a couple minute, finally found how to install propietary driver, using menu Hardware Driver, I installed Broadcom Wifi, SLModem and fglrx ATI propietary driver. I also want my system always updated and use newest soft- ware, so, using synaptic, I updated software and even upgraded kernel. Here the problem arise.

After updating softwares and upgrading kernel of Karmic Koala, sound refuse to sounding (aaaaaargh..), no sound hardware detected, volume icon represent dummy hardware. I think it’s ALSA problem (like other said when i googling for solution) so I download alsa-driver, alsa-utils and alsa-... and com- piled them form source (uh). Still no sound after restarting.

I do deep search at google again and found realy simple but powerful solution: deactivate slmodem driver from hardware driver and voilaaa...., my sound is back

Here some note from Karmic Koala on my TabletPC tx2500 series
  1. Sound is work
  2. Pen digitizer is work out of the box
  3. Broadcom Wifi is work (propietary driver)
  4. Remote is work out of the box. It can raise volume (master volume), play next/previous song on mp3-player
  5. Webcam could be accessed through cheese
  6. My Sierra HSDPA modem was detected automagically (no need wvdial command line, heheh)
  7. Compiz-fusion run smoothly, so I can use compiz 3D effect and emerald in my desktop

(for Oneiric Ocelot, see here)

From Ubuntu Karmic Koala


From Ubuntu Karmic Koala

Wednesday, November 11, 2009

Pemetaan Balik dari Bidang ke Kulit Bola

Pemetaan dari kulit bola ke bidang x-y mengikuti persamaan berikut.

From Aravir (am I Physicist?)


From Aravir (am I Physicist?)

(x,y) adalah koordinat titik di bidang x-y sedangkan (x′,y′,z′) adalah koordinat titik pada permukaan bola (S2). Persamaan di atas memetakan titik (x′, y′, z′) pada permukaan bola ke bidang x-y (R2) di titik (x, y) menggunakan proyeksi stereografis.
Jika kita ingin melakukan sebaliknya; memetakan sebuah titik di R2 ke S2, maka kita harus mendapatkan nilai x′ yang diungkapkan dalam x dan y, hal yang sama berlaku untuk y′ dan z′.
Karena kita sudah memiliki dua persamaan (1, 2) sedangkan kita men- cari 3 variabel yang belum diketahui, maka dibutuhkan satu persamaan lagi. Syukurlah, persamaaan tersebut ada dan muncul dalam bentuk persamaan untuk kulit bola, yaitu

From Aravir (am I Physicist?)


sehingga kita dapat mencari x′, y′ dan z′.
Persamaan 1 dan 2 dapat ditulis ulang sebagai

From Aravir (am I Physicist?)


z′ dapat dicari dengan memasukkan 4 dan 5 ke 3

From Aravir (am I Physicist?)

dengan memasukkan 17 ke 4 dan 5, maka didapatkan

From Aravir (am I Physicist?)


Persamaan 18, 19 dan 17 dapat digunakan untuk memetakan titik-titik diR2 ke S2.
Berikut adalah contoh-contoh kurva di R2 yang dipetakan ke S2.

Fungsi
From Aravir (am I Physicist?)

From Aravir (am I Physicist?)


From Aravir (am I Physicist?)


From Aravir (am I Physicist?)


From Aravir (am I Physicist?)


From Aravir (am I Physicist?)


Fungsi
From Aravir (am I Physicist?)


From Aravir (am I Physicist?)

From Aravir (am I Physicist?)

From Aravir (am I Physicist?)

From Aravir (am I Physicist?)

Monday, November 9, 2009

Mencari Akar Persamaan menggunakan Python

Program berikut adalah program untuk mencari akar persamaan menggunakan metode Newton-Rhapson. Program tersebut memiliki inti di persamaan berikut:

From Aravir (am I Physicist?)


contoh-contoh programnya sebagai berikut:

mencari akar dari fungsi
From Aravir (am I Physicist?)


From Aravir (am I Physicist?)


Program diatas memiliki tebakan awal x=7, artinya program akan mencoba nilai f(7), jika f(7) bukan nol maka akan dicoba nilai x yang berikutnya sesuai dengan persamaan di atas, jika f(x)=0 maka program akan berhenti dan x adalah akar dari persamaan yang diberikan. Ketelitian program adalah 0.01, artinya jika f(x) bernilai kurang dari 0.01 maka x adalah akar dari persamaan yang diberikan. Ketelitian ini bisa diperkecil sesuai kebutuhan.

From Aravir (am I Physicist?)

dari output diatas dapat dilihat bahwa nilai x konvergen menuju ke nilai 4, sehingga dengan ketelitian 0,01 dapat simpulkan bahwa akar dari fungsi tersebut adalah 4



From Aravir (am I Physicist?)


From Aravir (am I Physicist?)

From Aravir (am I Physicist?)



From Aravir (am I Physicist?)

From Aravir (am I Physicist?)

From Aravir (am I Physicist?)


Ada kalanya hasil yang kita dapatkan kurang cocok, hal ini disebabkan karena iterasi yang kita tentukan terlalu sedikit, contohnya adalah fungsi berikut

From Aravir (am I Physicist?)

From Aravir (am I Physicist?)

From Aravir (am I Physicist?)


Hasil diatas memperlihatkan bahwa x belum mencapai batas kestabilan yang telah ditentukan. Untuk itu kita harus memperbanyak iterasi

From Aravir (am I Physicist?)


From Aravir (am I Physicist?)