Artikel ini merupakan lanjutan dari Membaca File Excel menggunakan Python (Revised(Revised))



Kode Python berikut berisi metode Runge-Kutta orde-4 untuk menyelesaikan persamaan differensial orde dua, simulasi dan visualisasi hasil penyelesaian persamaan dan perintah untuk menyimpan hasil penyelesaian dalam format Ms Excel. Meski demikian, tidak dibutuhkan program Excel sama sekali untuk menjalankan kode tersebut. Persamaan yang diselesaikan dalam contoh ini adalah persamaan sistem pegas ideal.



Agar dapat menulis dan menyimpan menyimpan dalam format Excel, Python menggunakan modul pyExcelerator. Python juga memerlukan modul visual untuk menampilkan gambar. Kode lengkapnya adalah sebagai berikut.


From Aravir (am I Physicist?)










Keterangan Kode:



#memanggil modul


from visual import *


from pyExcelerator import *



#Nilai awal


t=0.


l=0


h=0.1


m=1.


k=1.


f=5.


y=4.


z=0.


tmax=27


g=[]



#membuat variabel wb untuk menampung worksheet


wb=Workbook()



#membuat worksheet baru dengan nama ws0


ws0=wb.add_sheet('0')



#membuat display


for i in range(2):


g.append(display(y = 30 + 300*i,


width=600, height=300,


range=(tmax/2,20,10),


center=(tmax/2,0,0),autoscale=0))



#memberi nama masing-masing display


g[0].title="Posisi terhadap waktu"


g[1].title="Kecepatan terhadap waktu"



#fungsi y"=-kx/m


c=-k/m



#membuat kurva di display 1 dan display 2


a=curve(color=color.green, radius=.1, display=g[0])


b=curve(color=color.blue, radius=.1, display=g[1])



#mengisi kolom A1 dengan β€˜t’, kolom B1 dengan kecepatan


ws0.write(0,0,"t")


ws0.write(0,1,"Kecepatan")


ws0.write(0,2,"Posisi")


while (t<=tmax):


l=l+1



#ini adalah program algoritma Runge-Kutta orde-4


#y'=z


k1=c*y


k2=c*(y+h*k1/2)


k3=c*(y+h*k2/2)


k4=c*(y+h*k3)


z=z+h*(k1+k2+k3+k4)/6


#z'=y


k1=z


k2=z


k3=z


k4=z


y=y+h*(k1+k2+k3+k4)/6



#menampilkan gambar di display 1 dan display 2


a.append(pos=vector(t,y,0))


b.append(pos=vector(t,z,0))



#menulis nilai t di kolom A


ws0.write(l,0,"%.2f" % (t))



#menulis nilai kecepatan di kolom B


ws0.write(l,1,"%.4f" % (z))



#menulis nilai kecepatan di kolom C


ws0.write(l,2,"%.5f" % (y))



t=t+h



#menyimpan worksheet dengan nama Runge-Kutta.xls


wb.save('Runge-Kutta.xls')



Hasilnya adalah sebagai berikut.


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?)



0

Add a comment

Layang Kangen

via IFTTT
Sing Sing Sing

via IFTTT
Layang Kangen.
Rayuan Pulau Kelapa.
Birama ganjil di pagi hari, 😁.
Manuk Dadali

via IFTTT
Killing Me Softly

via IFTTT
Tears in Heaven.
Happy...
Ritual Drummer Normal saat ingin memainkan set drum saya.
Uptown Funk.
Let It Go. Versi Idina Menzel.
Tuntun Kan Ku Dalam Damai. Lagu mas Mamat.
Dapat hadiah lomba joget, 😁

via IFTTT
Cicilan lagu baru mas Mamat, 😁

via IFTTT
Mulai mengisi, 😁

via IFTTT
Can’t Help Falling in Love with You.
Lilin-lilin Kecil

via IFTTT
Viva la Vida

via IFTTT
Belum punya energi untuk menambah part bass/keyboard, 😁

via IFTTT
Can’t help falling in love with you.
Let It Go

via IFTTT
Bojo Galak, 😁

via IFTTT
Let It Go.
Dan

via IFTTT
Ku Tak Bisa

via IFTTT
Walang Ireng.
Wonderful Tonight

via IFTTT
Balada rekaman per-track, 😁

via IFTTT
Tentang Kita.
What a Wonderful World.
See You Again.
Akad.
Untuk Perempuan yang Sedang dalam Pelukan.
Si Pemalas dan Si Pemula. Menabrak semua aturan, 😁.
Archive
Label
Popular Posts
Popular Posts
Loading