Sabtu, 11 Juni 2011

Persamaan Gerak Peluru | Penyelesaian Menggunakan Metode Euler Dengan Bahasa Python

Mendapatkan kasus PDB berupa gerak peluru, saya tertarik untuk menyelesaikannya  menggunakan Python. Adapun untuk menyelesaikannya digunakan metode euler. Metode ini terbilang gampang, namun pada berbagai kondisi metode ini kurang tepat untuk digunakan karena nilai error yang besar. Akan tetapi, secara sederhana metode ini dapat menggambarkan lintasan bola ketika dilemparkan ke udara dengan kecepatan tertentu.
Adapun persamaan gerak peluru dapat disimulasikan dengan data sebagai berikut:
massa bola =0.145 kg, jari-jari = 3.7 cm, kerapatan bola= 1.20 kg/m3, koefisien hambat udara = 0.35
Dibawah ini merupakan script program Python untuk menyelesaikan persamaan gerak peluru.


#program trajectory ball

from numpy import*
from matplotlib.pylab import*
#inputan
r=input('masukkan posisi awal r=[x,y] ')
v=input('masukkan kecepatan v=[vx,vy] ')
h=input('time step = ')
r=array(r)
v=array(v)
#dimensi bola
cd=0.35
rho=1.2
area=4.3e-3
g=9.8
m=0.145
fa=-0.5*cd*rho*area/m
accel=zeros((2))
xplot=zeros((1000))
yplot=zeros((1000))
#iterasi
for i in range(1,1000):
    xplot[i]=r[0]
    yplot[i]=r[1]
    accel=fa*norm(v)*v
    accel[1]=accel[1]-g
    r=r+h*v
    v=v+h*accel
    if (r[1]<1):
          break
#visualisasi
xplot[i] = r[0];
yplot[i] = r[1];
print 'Jangkauan bola = ', r[0],'meter'
print'Waktu tempuh =  ', i*h,'detik'
xtanah = [0,xplot[i]]
ytanah = [0,0]

plot(xplot, yplot,'o',xtanah,ytanah,'-')
xlabel('Jangkauan (m)')
ylabel('Tinggi (m)')
title('Gerak peluru / bola')
show()
Sebagai contoh, inputan yang diberikan dapat dilihat seperti berikut:
>>
masukkan posisi awal r=[x,y] [0,0]
masukkan kecepatan v=[vx,vy] [40,30]
time step = 0.05
Jangkauan bola =  125.428774167 meter
Waktu tempuh =   5.0 detik
>>
dibawah ini merupakan contoh grafik lintasan gerak peluru dengan inputan yang telah diberikan pada contoh di atas:

Tidak ada komentar:

Posting Komentar