Tuesday 27 March 2012

Perbandingan Hasil Integrasi Numerik menggunakan Simson dan Trapezodial

Secara teoritis memang metode simson akan menghasilkan hasil yang lebih akurat dibandingkan dengan Trapezodial, langkah termudah membuktikannya adalah dengan membuat program untuk keduanya lalu membandingkannya. sesuai dengan buku [1] hal 148, contoh 8.3 dari table yang ada, saya membuat program untuk menghitung secara dua metode diatas, form yang saya buat adalah seperti gambar berikut ini


Metode Simson
untuk simson, parameter yang dimasukkan dalam perhitungan adalah nilai x terendah atau x1, nilai h, dan jumlah data (n). nilai integral metode simson dihitung dengan 
  
 
Alogaritma
alogaritma yang digunakan adalah
1. baca n,x1,h
2. for i = 1 to n+1
3. baris n = x1
4. x1 = x1 + h '(menuliskan nilai x pada kolom)
6. next 1
7. Hitung S = h/3 * (f1+4*f2+2*f3+4*f4+2*f5+4*f6+...+fn+1)
8. tulis S
9. stop


Pembuatan Program
buka excel baru, pastikan toolbar developer sudah terpasang, klik design mode, lalu masukkan command button 2 buah, 1 buah untuk simson, 1 buah untuk trapezodial
nilai f(x) karena sudah ditentukan tulis mulai dari B2 sampai B11, sedangkan nilai x karena mempunyai nilai yang berurutan dengan interval tertentu dapat ditulis dengan program.
double klik command button 1, lalu tulis programnya sebagai berikut

Private Sub CommandButton1_Click()
Dim n, S, jum As Double
Dim h, xi As Single

n = Cells(2, 5)
x1 = Cells(3, 5)
h = Cells(4, 5)
For i = 1 To n + 1
    Cells(i + 1, 1) = x1
    x1 = x1 + h
Next i
     S = (h / 3) * (Cells(2, 2) + 4 * Cells(3, 2) + 2 * Cells(4, 2) + 4 * Cells(5, 2) + 2 * Cells(6, 2) + 4 * Cells(7, 2) + 2 * Cells(8, 2) + 4 * Cells(9, 2) + 2 * Cells(10, 2) + 4 * Cells(11, 2))
    Cells(6, 5) = S
   
End Sub
 Metode Trapezodial
 untuk metode trapezodial, hanya nilai n dan h yang perlu dimasukkan, jumlah n dan h saja, untuk mempermudah perbandingan, nilai n dan h yang dimasukkan bernilai sama dengan simson, begitu juga dengan data yang akan dibaca, karena itu tidak perlu menuliskan f(x) dan x lagi.
nilai integral trapezodial dihitung dengan
Alogaritma
secara alogaritma metode trapezodial lebih sederhana, untuk kasus ini, saya menggabungkan nilai f2 hingga fn-1 untuk mempermudah perhitungan
1. baca n,h
2. For i = 1 To n - 1
3.  a = a + baris kedua hingga baris n-1
4. Next i
5. Hitung   S = h * ((Cells(2, 2) / 2) + a + (Cells(n + 2, 2) / 2))
6. Tulis S
7. Stop

Pembuatan Program
masih pada spreadsheet yang sama dengan simson, double klik command button 2, lalu tulis program seperti berikut

Private Sub CommandButton2_Click()
Dim h, n, S, a As Single
n = Cells(2, 8)
h = Cells(3, 8)
For i = 1 To n - 1
   a = a + Cells(2 + i, 2)
Next i
    Cells(7, 7) = a '
    S = h * ((Cells(2, 2) / 2) + a + (Cells(n + 2, 2) / 2))
    Cells(6, 8) = S
End Sub

hasilnya dapat dilihat pada gambar dibawah berikut


dapat dilihat nilainya berbeda,  dibuku nilai akhirnya adalah 3,1 untuk simson, perbedaan dengan di buku karena di buku 2 nilai f(x) awal dihitung dengan trapezodial terlebih dahulu. sedangkan nilai perhitungan trapezodial sudah sama persis dibuku yaitu 3.1

filenya silahkan di download pada embed object berikut, semoga bermanfaat





4 comments:

saya masih belum paham nih mas Hasnan, mungkin alangkah baiknya jika misalnya langkah-langkahnya dijelaskan detil, agak maksa ya? tapi klo gak gitu, mungkin gak pernah terbit buku C 4 Dummies, mungkin mas Hasnan bisa membuat sequel lanjutannya "VBA based on cell 4 dummies" :D

master farhan, bisa aja kok, sebenarnya gampang, kalau untuk cell, cell(baris,kolom) mengantikan textboxn.text itu aja seh, saya juga udah bikin per step, lihat posting yang lain dech, kalau perlu.. nanti akan saya bikin posting khusus dech, maklum sama-sama ngejar setoran buat komtek, cfd, ose khan, hehehhe

mas hasnan, mana nih postingan VBA nya? saya jadi penasaran algoritmanya untuk VBnya ;)
bagus mas, dijelasin seperti ini jadi mengerti antara 2 metode itu.
keep posting ;)

udah ada tuh, diatas : Private Sub CommandButton1_Click()

Private Sub CommandButton2_Click()
Dim h, n, S, a As Single
n = Cells(2, 8)
h = Cells(3, 8)
For i = 1 To n - 1
a = a + Cells(2 + i, 2)
Next i
Cells(7, 7) = a '
S = h * ((Cells(2, 2) / 2) + a + (Cells(n + 2, 2) / 2))
Cells(6, 8) = S
End Sub

Post a Comment