Kamis, 11 Juli 2013

[TRANSLATE] METODE BEDA HINGGA UNTUK MENYELESAIKAN PERSAMAAN LAPLACE


METODE BEDA HINGGA UNTUK
MENYELESAIKAN PERSAMAAN LAPLACE
Ambar K. Mitra
Jurusan Teknik Lingkungan
Universitas Negeri Iowa

Pendahuluan
     Persamaan Laplace merupakan persamaan diferensial parsial (PDP) orde dua yang digunakan dalam banyak bidang Teknik sains, seperti pada kelistrikan, aliran Fluida, dan konduksi panas steady. Solusi untuk persamaan ini, pada sebuah domain, dibutuhkan spesifikasi kondisi yang pasti dimana fungsi yang tidak diketahui harus berada pada daerah domain tersebut. Ketika fungsi itu sendiri terspesifikasi pada bagian dari daerah tersebut kita menyebut bagian ini adalah “Dirichlet boundary”, ketika bagian normal dari suatu fungsi terspesifikasi pada bagian ikatan (daerah) kita dapat menyebut bagian itu sebagai “Neumann boundary”. Pada sebuah persoalan, semua daerah dapat menjadi Dirichlet atau sebagian dari daerah dapat menjadi Dirichlet dan bagian Neumann juga. Sebuah masalah dengan syarat Neumann terspesifikasi pada semua daerah tidak mempunyai solusi khusus. Pada beberapa kasus, kombinasi linear dari fungsi dan bagian normalnya terspesifikasi, seperti keadaan yang dikenal dengan “Robin boundary”. Kita tidak akan sepakat dengan masalah Robin, tapi ini akan cukup adil jika kita mendiskribsikannya disini untuk masalah ini. Jenis permasalahan Laplace secara skematis diperlihatkan pada Gambar.1, pada domain D,

Dan pada ikatannya
Dimana N adalah daerah normal, SD adalah “Dirichlet Boundary”, dan SN adalah “Neumann boundary”.
Pada paper ini, metode beda hingga (FDM) untuk solusi persamaan Laplace didiskusikan. Pada metode ini, PDP diubah dalam bentuk linear, persamaan simultan. Ketika persamaan simultan dituliskan pada notasi matriks, mayoritas elemen matriknya adalah nol. Seperti matriks yang dikenal dengan “sparse matrix”. Bagaimanapun juga, untuk beberapa kasus, nilai dari persamaan simultanmenjadi sangat besar, dengan kata lain beberapa ribu. Ada tujuan khusus rutin yang menyetujui dengan sangat lebar, “sparce matriks”. Untuk itu, dibutuhkan sebuah keahlian untuk menyimpan matrik yang besar, dengan kata lain, beberapa gigabits akan digunakan hanya untuk menyimpan.
Cara alternatif untuk menyelesaikan sistem yang sangat besar dari persamaan simultan ini adalah iterasi. Keuntungan dari solusi iterasi yaitu tidak dibutuhkannya penyimpanan matriks yang sangat luas. Dalam paper ini, kita akan menunjukkan kegunaan salahsatu tekhnik iterasi. Kita juga akan menggali lebih dalam satu cara akselerasi konvergen dari metode iterasi.
Gambar1. Permasalahan Laplace.
Beda Hingga (FD)
Diketahui tiga titik pada sumbu x yang dipisahkan oleh sebuah jarak h, seperti yang terlihat pada Gambar2-a. Untuk memudahkannya, kita harus menandai ini sebagai i-1 dan i+1. Misalkan nilai dari sebuah fungsi pada tiga titik ini menjadi ϕi-1, ϕi, dan ϕi+1. Sekarang kita dapat menuliskan deret Taylor untuk ϕi-1 dan ϕi+1 sebagai berikut:
Dimana |i berarti bahwa derivativenya terkomutasi pada titik i. Dengan menjumlahkan persamaan (1,2) kita dapatkan
Setelah beberapa penyusunan kembali, kita dapat menuliskan
Ruas kanan pada persamaan (3) adalah pendakatan beda hingga yang lebih baik dari . Persamaan tersebut lebih akurat karena tingkat kesalahannya bergantung pada h2.
Substitusikan pers. (1) dengan pers.(2), sehingga didapatkan
Atau
Pers.(4) lebih akurat pada pendekatan FD dari .

Gambar-2a,2b: beda hingga sepanjang x dan y
Dengan cara yang sama, kita dapat mengambil tiga titik j-1, j, dan j+1 sepanjang sumbu y, seperti yang terlihat pada Gambar-2b. Untuk susunan pada titik ini, kita dapat tuliskan
Dan
Dengan mensupersposisikan susunan pada Gambar-2a,2b kita sampai pada 5 titik  stensil pada Gambar-3 dan ϕ membentuk dua subscripts, satu untuk i atau arah x dan yang lainnya j atau arah y. Dengan mengkombinasikan pers.(3,5), kita tuliskan
Gambar-3: 5 titik stencil untuk persamaan Laplace.
Dengan mensubstitusikan per. (7) pada persamaan Laplace, kita dapatkan
Atau
Pers. (8) merupakan hasil terbaik yang  mengacu  pada:
Simpulan: jika ϕ merupakan fungsi dari persamaan Laplace, kemudian  ϕ, berada pada beberapa titik dalam domain D, merupakan nilai rata-rata dari ϕ pada  sekitar titik-titik pada 5 titik stencil pada Gambar-3.
Kesimpulan ini merupakan dasar dari metode iterasi.
Kita harus membuat  modifikasi kecil dalam pers. (8) ketika kita ingin menyelesaikan persamaan Poisson
Dimana F(x,y) merupakan suatu fungsi yang diketahui. Dalam situasi ini, pers. (8) diubah menjadi

Masalah Dirichlet
Berdasarkan contoh problem pada Gambar-4 gambar dalam kotak hanya dengan titik-titik interior. Φ diletakkan  pada  sisiTimur, Barat, Utara, dan Selatan. Dimana  ϕ(1,2), ϕ(1,3), ϕ(2,4), ϕ(3,4), ϕ(4,3), ϕ(4,2), ϕ(3,1), dan ϕ(2,1) diketahui. Kita harus menghitung nilai dari ϕ(2,2), ϕ(3,2), ϕ(2,3), dan ϕ(3,3). Kita mulai dengan proses iterasi dengan mengasumsikan
Gambar-4: Dirichlet problem pada sebuah kotak 4x4.
Superscripts (0) merupakan sebuah penghitung iterasi. Dimulai pada sisi kiri bawah, kita dapat tuliskan
Pada baris pertama pers. (11), kita mengkomputasikan nilai iterasi pertama dari ϕ1)(2,2). Catat bahwa, secepat iterasi pertama  telah tersedia, ia digunakan untuk iterasi pertama dari ϕ(1)(3,2), pada baris kedua pers. (11).  Ini sangat mudah untuk diselesaikan dengan menyimpan ϕ(0)(2,2) dan ϕ(1)(2,2)  pada lokasi memori yang sama, sehingga tidak sesedehana menuliskan ϕ(0)(2,2) dengan  ϕ(1)(2,2). Oleh sebab itu,  untuk setiap  lokasi (i,j), ϕ(iterasi+1)(i,j) tidak sesederhana dituliskan pada ϕ(iterasi)(i,j).
Bagaimanapun juga, ada sebuah perhitungan kecil yang harus dilakukan sebelum kita menuliskannya secara sederhana. Pertama, simpan ϕ(iterasi+1)(i,j) dalam temp. Kemudian hitung kesalahan relative pada (i,j) sebagai
Kemudian tuliskan ϕ(iterasi)(i,j) dengan temp. Dalam hal ini, kita akan menjaga lintasan kesalahan relative pada semua lokasi (i,j). Dan pada akhir putaran iterasi (iterasi+1), kita dapatkan representasi kesalahan relative sebagai
Pada titik ini, kalian harus berfikir  tentang sesuatu yang kritis. Apakah kalian benar-benar harus menyimpan ϵ(i,j) pada semua sisi untuk menghitung ϵmax? Atau dapatkah kalian tetap mengupdate nilai dari ϵmax setiap kalian melangkah dari satu titik ke titik lain tanpa sebuah putaran iterasi. Untuk sebuah masalah yang besar, menyimpan semua ϵ(i,j) dapat menjadi sebuah ide yang sangat buruk dari sudut pandang penggunaan memori.
Ketika  ϵmax  sudah tersedia, bandingkan ini dengan pengguna toleransi spesifik 10-n untuk akurasi n digit. Jika ϵmax lebih besar dari toleransi spesifik, kalian harus mengoperasikannya melalui putaran  iterasi yang lain. Dengan kata lain, iterasinya berhenti dan solusi konvergen untuk ϕ dihasilkan.
Ini merupakan ide bagus untuk menjaga lintasan  dari perhitungan iterasi, karena itu merupakan sebuah perhitungan dari hasilnya. Kedua, kalian harus menspesifikasikan” batas iterasi maximum”. Dengan kata lain, program ini mungkin dapat mencapai pada sebuah putaran iterasi yang tidak akan pernah berahir menghasilkan beberapa kesalahan pada spesifikasi data.
Sekarang, mari kita perhatikan masalah  besar pada Gambar-5 dan menyelesaikan ide kita menolak variasi do-loop yang akan kita gunakan pada program  ini. Grid untuk masalah ini didefinisikan oleh 1 i N dan 1 jM. Titik timur, barat, utara dan selatan adalah keadaan Dirichlet. Kondisi ikatannya {ϕ(1,j); j=2, M – 1 }, {ϕ(N,j); j=2, M – 1}, {ϕ(i,1); i = 2, N – 1}, dan {ϕ(i,M); i = 2, N – 1} dimasukkan sebagai data.
Gambar-5: Dirichlet problem pada sebuah grid umum.
Algoritma untuk solusi iterasinya adalah
Kalian dengan mudah dapat melihat bahwa nilai pojoknya ϕ(1,1), ϕ(N,1), ϕ(1,M), ϕ(N,N) jangan memasang pada putaran iterasi pada pers. (14). Nilai pojok ini dihitung dari
Pers. (15) merupakan pernyataan kontinuitas dari ϕ sebagai sebuah pojok  dicapai sepanjang dua titik yang bertemu di pojok.
Ringkasan
·      {ϕ(1,j); j=2, M – 1 }, {ϕ(N,j); j=2, M – 1}, {ϕ(i,1); i = 2, N – 1}, {ϕ(i,M); i = 2, N – 1} diketahui dari kondisi batas.
·      Nilai pojok didapatkan dari pers. (15).
·      Semua nilai lain dihitung dengan menggunakan iterasi pada pers. (14).


Neumann Problem
Berdasarkan permasalahan Neumann yang telah diperlihatkan pada grid di Gambar-6. Kondisi Dirichlet terspesifikasi pada titik utara, timur, dan selatan. Titik barat mempunyai kondisi spesifik Neumann sebagai:
                                                                                         (16)

Sebagai derivatif parsial pada persamaan Laplace didekati oleh skema FD orde ke duaseperti pada pers. (7), derivative parsial dari pers. (16) harus didekati dengan skema orde juga. Kita menyelesaikan ini dengan mengambil titik grid palsu (0,j) diluar domain permasalahan, seperti yang terlihat pada Gambar-6.
Gambar-6: pemodelan kondisi Neumann
Dengan memanfaatkan skema FD orde kedua untuk derivative orde pertama dari pers. (4), kita dapat tuliskan pers. (16) sebagai berikut
Bagaimanapun juga, kita tidak dapat menjaga permisalan ϕ(0,j) tanpa formulasi kita. Oleh sebab itu, kita tuliskan persamaan Laplace (pers. (8)) pada titik (1,j) sebagai
Kita tuliskan kembali pers. (17) sebagai

Dengan mensubtitusikan pers. (19) pada pers. (18), kita dapatkan
Kita gunakan pers. (20) untuk 2 ≤ j ≤ M-1, dimana g(1,j) merupakan suatu fungsi khusus. Sebagai kondisi Dirichlet terspesifikasi dititik utara, barat, dan selatan, nilai [ϕ(i,M), 2 ≤ i ≤ N – 1], [ϕ(N,j), 2 ≤ j ≤ M – 1], [ϕ(i,1), 2 ≤ i ≤ N – 1] diketahui.
Oleh sebab itu, contoh algoritma untuk penyelesaian iterasinya adalah
Nilai dari ϕ pada titik pojok dihitung dengan menggunakan pers. (15).

Ringkasan
·      [ϕ(i,M), 2 ≤ i ≤ N – 1], [ϕ(N,j), 2 ≤ j ≤ M – 1], [ϕ(i,1), 2 ≤ i ≤ N – 1] diketahui sebagai kondisi batas.
·      Nilai pojok didapatkan dari pers. (15).
·      Semua nilai lain secara iterasi dihitung menggunakan pers. (21).

Latihan-1
Pada sebuah grid 1 ≤ i ≤ N dan 1 ≤ j ≤ M, tuliskanlah skema iterasinya ketika kondisi Neumann terspesifikasi pada sisi utara dan timur seperti berikut
Dan kondisi Dirichlet berada pada sisi selatan dan barat adalah

Latihan-2
Selesaikan persoalan Neuman pada Latihan-1 dengan mengambil p(x) = 20, q(y) = 200, f(x) = 0, dan g(y) = 4 dalam sebuah kotak  (1 x 1) dengan (i)N = 5 dan M = 5, (ii) N = 17 dan M = 17, dan (iii) N = 65 dan M = 65.

Contoh perhitungan untuk Latihan-2
Pada grid 5 x 5, konvergen iterasinya  setelah 21 putaran, ketika toleransinya diatur 0.001.  Nilai dari ϕ pada tengah domain, atau pada lokasi (3,3),  di akhir dari setiap iterasi diberikan dibawah untuk tujuan  menghindari kesalahan: 20.63, 37.81, 50.44, 60.21, 68.11, 74.68, 80.23, 84.96, 89.02, 92.52, 95.54, 98.14, 100.4, 102.3, 104.0, 105.5, 106.7, 107.8, 108.8, 109.6, 110.3.  (Angka-angka ini didapatkan  pada sebuah Compaq Compiler.)
Nilai dari ϕ pada grid 5 x 5 di akhir pada putaran pertama iterasi diberikan dibawah.

Akselerasi Konvergen
Disini kita akan mendeskripsikan sebuah metode untuk akselerasi konvergen dari sebuah skema iterasi. Metode ini dikenal dengan “succesive over/under relaxtion”. Kita memperlihatkan metode ini untuk skema iterasi
Kita mengubah persamaan ini sehingga menjadi

Succesive over/under relaxtion  merupakan proses dua langkah. Dalam langkah pertama dari pers. (22), kita hitung update intermediate untuk ϕ(i,j). Kemudian update yang asli dari ϕ(i,j) dihitung dalam pers. (23). Update asli ini merupakan gabungan/ kombinasi dari intermediate update dan nilai lama dari ϕ(i,j).
·  Ketika faktor relaksasi ω kurang dari 1, metode yang dipake adalah under relaxed.
·  Ketika faktor relaksasi ω lebih dari satu, metode yang digunakan adalah over relaxed.
Sedikit observasi umum untuk skema iterasi over relaxed, yaitu: (i) untuk rata-rata tinggi nilai dari ω, konvergensinya terakselerasi, (ii) untuk ω dengan nilai tinggi, konvergensinya berubah secara teratur, dan (iii) untuk ω dengan nilai yang sangat tinggi, osilasinya menjadi berubah teratur secara teratur dan skema iterasinya menjadi tidak stabil. Skema under relaxed jarang divergen, namun kecepatan perubahan konvergensinya mungkin menjadi sangat lamban sekali. Untuk beberapa contoh geometris, konvergensi optimal parameter ω untuk kecepatan perubahan konvergensi tercepatnya dapat dihitung. Walaupun demikian, untuk masalah umum, ω optimal hanya dapat diestimasikan melalui eksperimen numerikal.
Untuk grid  N x M berjalan pada sebuah domaian persegi, ω optimal diberikan oleh

Latihan-3
Melalui percobaan  numerik,  hitunglah ω optimal untuk masalah Neumann dari Latihan-2, bagian (iii).

Contoh
Dirichlet problem digambarkan dalam sebuah domain persegi sebagai berikut:
Ketika masalahnya terselesaikan pada grid 5 x 5, dengan menggunakan skema Gauss-Seidel, 9 iterasi dibutuhkan untuk mencapai solusi dengan akurasi 99 %. Skema perkembangan iterasinya diperlihatkan pada tabel dibawah  ini.
Dalam skema iterasi over-relaxed secara optimal dengan  ω = 1.1716, dihitung dari pers. (24), solusi akurasi 99% didapatkan setelah iterasi keenam. Perkembangan dari skema over-relaxed diperlihatkan dibawah.


1 komentar:

  1. With havin so much content do you ever run into any issues of plagorism
    or copyright infringement? My blog has a lot of unique content I've either authored myself or outsourced
    but it seems a lot of it is popping it up all over the internet without my agreement.
    Do you know any techniques to help protect against content
    from being stolen? I'd truly appreciate it.


    Also visit my homepage: german electric heating

    BalasHapus