Anda di halaman 1dari 6

KAJIAN NUMERIK MASALAH SYARAT BATAS MELALUI

PENYELESAIAN MATRIKS TRIDIAGONAL


(Studi Kasus : Menghitung Potensial Listrik)
Tatik Juwariyah
Fakultas Teknik,UPN “Veteran” Jakarta
Kampus Jalan RS. Fatmawati Pondok Labu Jakarta 12450, Indonesia,
email : tatikjuwariyah@gmail.com

Abstract

A numerical study of the solution of boundary value problems with the tridiagonal matrix
approach has been done. The case studied is computing the electrical potential expressed
by 1D Poisson’s equation with boundary conditions. The 1D Poisson’s equations are then
discreted with the finite different method so as to form a system of linier equations. The
system of non-homogeneous linear equations that can be formed is a tridiagonal matrix.
Then the matrix is solved by Gaussian elimination algorithm. On this study, the algorithm
is implemented on three programming languages namely, Fortran, Java and MATLAB.
Keywords: Gaussian elimination, finite different, tridiagonal matrix, Poisson’s equation

PENDAHULUAN Meskipun telah banyak piranti lunak siap pakai


Masalah syarat batas (boundary-value yang lebih aplikatif untuk menyelesaikan kasus-
problems) sering muncul pada persamaan kasus yang melibatkan persamaan diferensial
diferensial baik persamaan diferensial biasa memilih bahasa pemrograman terstruktur (seperti
ataupun persamaan diferensial parsial yang Fortran, Basic, Pascal, C/C++ dan Java) untuk
merupakan pondasi kajian ilmu-ilmu fisika menyelesaikan masalah langkah demi langkah
terapan. Beberapa kasus masalah syarat batas merupakan salah satu cara yang baik digunakan
dijumpai pada perhitungan potensial kelistrikan, oleh akademisi pendidikan. Hal ini dikarenakan
potensial gravitasi, gelombang elektromagnetika, melatih dan mengasah ketrampilan proses
aliran fluida dan aliran panas. Terdapat dua cara pendidikan/pengajaran.
yang dapat ditempuh untuk menyelesaikan
masalah syarat batas pada sebuah persamaan TINJAUAN PUSTAKA
diferensial yaitu secara analitik dan secara Potensial Elektrostatik
numerik. Cara numerik lebih dipilih oleh para Medan listrik yang menembus suatu permukaan
insinyur dikarenakan lebih efisien dalam khayal dapat dijelaskan oleh hukum Gauss dalam
menyelesaikan masalah di lapangan yang bentuk diferensial dinyatakan sebagai :
biasanya lebih kompleks dan rumit. Sementara ∇ • E = ρ /ε0 (1)
cara analitik ditempuh jika syarat batasnya ideal Medan listrik E adalah gradien potensial
dan sederhana dikarenakan penyelesaian secara istrik φ dinyatakan oleh ungkapan :
analitik membutuhkan piranti matematika E = −∇φ (2)
lanjutan seperti deret Fourier, transformasi
Substitusi persamaan (2) ke persamaan (1)
Laplace ataupun fungsi-fungsi khas (fungsi
diperoleh:
Gamma, fungsi Beta, fungsi Green, fungsi
Bessel, fungsi Legendre, dsb).
∇ • ∇φ = − ρ / ε 0
Perkembangan komputer sebagai alat Dikarenakan operator nabla ∇ adalah
hitung yang handal sangat membantu vektor maka dapat disederhanakan sehingga
penyelesaian masalah-masalah di bidang berbentuk
keteknikan. Berbagai piranti lunak yang telah ∇ 2φ = − ρ / ε 0 (3)
aplikatif dan berbentuk GUI (grafic user Bentuk matematis persamaan (3) dikenal
interface) semakin mempermudah dalam dengan Persamaan Poisson. Jika ruas kanan
mensimulasikan masalah-masalah nyata. persamaan Poisson bernilai nol persamaan akan

59 BINA TEKNIKA, Volume 13 Nomor 1, Edisi Juni 2017, 59-64


mereduksi menjadi persamaan Laplace seperti Persamaan (8) berubah menjadi sistem
berikut, persamaan linier(matriks) yang unik karena
∇ 2φ = 0 (4)
hanya berisi tiga koefisien di setiap barisnya
sehingga matriks koefisien yang unik ini dikenal
Persamaan Laplace dapat ditemukan di
dengan matriks tridiagonal.
banyak fenomena seperti aliran fluida,
elektrostatika, gelombang elektromagnetika dan
− 2 1  y1   h f1 − y0 
2
0 ... 0 0
aliran panas.   
Persamaan Poisson 1D ditulis sebagai  1 −2 1 0  y   h 2 f 2 
 0 1 −2 1  .  
2
.  (9)
berikut,      =  
d 2φ   y .   2 . 
= −ρ / ε 0  0 1 − 2 1  N −2   h f N −2 
  
dx 2 (5)  0 0
 ... 0 1 − 2  y N −1   h 2 f N −1 − y N 
Bentuk umum persamaan Poisson 1D
secara matematis tidak lain adalah persaman Salah satu metode efisien untuk
diferensial berbentuk : menyelesaikan sistem persamaan simultan yang
d 2 y ( x) tersusun atas matriks tridiagonal adalah dengan
= f ( x) eleminasi Gauss yaitu dengan mengeliminasi
dx 2 (6)
unsur-unsur yang terletak persis di bawah
Penyelesaian/solusi khusus persamaan (6)
diagonal utama. Bentuk umum persamaan (9)
dapat diperoleh jika kondisi batas y(x) diketahui.
seperti berikut:
Diskritisasi Persamaan Diferensial 4
 b1 c1 0 ... 0 0  y   r1 
Diskritisasi dengan metode beda hingga   1    5
yaitu beda pusat (central difference) suku ruas  a2 b2 c2 0  y2   r2 
kiri persamaan (6) berubah menjadi : 0 b3  .   6.  (10)
     = 
d 2 y ( xi ) yi −1 − 2 yi + yi +1   .   . 
= + O(∆x) 2 (7)  0 a b c N − 2 
y N −2  r 
dx 2
(∆x) 2 N −2 N −2
  N −2
 0 0 ... 0 a  r 
N −1 bN −1 
y N −1 
Dengan O(∆x)2 adalah kesalahan   N −1 
perhitungan numerik. Apabila syarat/kondisi
batas y(x) diketahui maka dengan metode beda
hingga dengan mengambil sejumlah N titik-titik Dengan mendefinisikan kaitan
grid, penyelesaian yang diinginkan adalah y(x) aj aj
pada ranah x0 ≤ x ≤ x N dimana nilai atau bentuk β j = bj − c j −1 ρ j = rj − ρ j −1
penyelesaian pada kedua titik batas yaitu y(x0 ) = β j −1 β j −1
dan ,
y 0 dan y(x N) = y N sudah diketahui. Dengan untuk j = 2,3,..., N-1 dimana β1 = b1 dan ρ1 = r1
metode beda hingga persamaan (6) akan berubah maka persamaan (10) berubah menjadi bentuk
menjadi persamaan matriks berikut
yi−1 − yi + yi+1 = h 2 f i (8)  β1 c1 0 ... 0 0  y   ρ1 
  1  
0  y   ρ 2 
Dengan h=∆x adalah lebar langkah perhitungan
 0 β2 c2
numerik.  0  .   . 
2
β3
   = 
Berbeda dengan masalah syarat awal, (11)

disini nilai y(x) yang akan dicari harus sesuai   .   . 
pada batas x 0 dan x N. Ini berarti persamaan (8)  0 0 β N −2 cN −2  y N −2   ρ N −2 
  
tidak dapat diselesaikan satu persatu untuk tiap i  0 0 ... 0 0 β N −1  y N −1   ρ N −1 
tertentu tetapi harus diselesaikan secara serentak
untuk seluruh i yang ada. Artinya apabila nilai N Bentuk persamaan (11) sangat menarik
besar maka cacah persamaan menjadi banyak karena memungkinkan semua y i dapat diperoleh
sekali. Salah satu metode paling efektif untuk dengan cara substitusi balik yaitu pertama
memecahkan banyak persamaan secara serentak dihitung y N-1 melalui kaitan
adalah menggunakan cara sistem persamaan
linier/matriks.

Kajian Numerik Masalah Syarat Batas ..... (Juwariyah) 60


ρ N −1 5. Membuat subprogram/subroutine untuk
y N −1 = mendefinisikan fungsi Ruas Kanan
β N −1 (12) persamaan Poisson.
Setelah y N-1 didapatkan maka y i yang lain
diperoleh melalui kaitan untuk j = 2,3,..., N-1 Pada penelitian ini Algoritma Penyelesaian
sebagai berikut Masalah diimplementasikan pada beberapa
bahasa pemrograman yaitu Fortran, Java dan
ρ N −1 − c N − j y N − j +1 MATLAB.
yN − j =
βN− j (13) Diagam alir Metode Penyelesaian Masalah yang
diangkat pada Penelitian ini dilukiskan pada
Gambar 1.
METODE PENELITIAN
Langkah-langkah penyelesaian kasus 7 Model matematis Persamaan Diferensial
masalah di penelitian ini dijabarkan sebagai 8 (persamaan Poisson pada potensial
berikut. 9
Pemodelan Matematis Masalah 10
Syarat/kondisi batas yang diketahui
Penyelesaian masalah menghitung 11 (tipe Dirichlet)
potensial listrik satu dimensi yang menjadi kasus 12
masalah pada penelitian ini adalah andaikan 13
Diskritisasi Persamaan Poisson
ditinjau suatu daerah antara 0 ≤ x ≤ 3 yang 14
dengan Metode Beda Hingga
memiliki rapat muatan berbentuk
ρ ( x) = 3ε x
0
15
(Fi it Diff t)
16
dan adanya syarat batas nilai potensial ϕ(0) = 10 17
dan ϕ (3) = 0. Masalah ini dapat dirumuskan 18 Sistem Persamaan Linier Non
seperti persamaan (6) dengan mengambil y(x) = Homogen
19
ϕ (x) dan
f ( x) = ρ ( x) / ε = 3ε x / ε = −3 x
0 0 0 . 20 (M ik T idi l)
Sehingga diperoleh model matematis masalah Metode Eliminasi Gauss untuk
yaitu PD berbentuk : menyelesaikan Matriks Tridiagonal
d 2φ
= −3 x
dx 2 (14) Hasil Perhitungan Numerik
Dengan syarat batas diketahui ϕ(0) = 10 dan ϕ (3)
= 0. 21 Gambar 1. Diagram alir metode penyelesaian
Algoritma Penyelesaian Numerik masalah
1. Input :
a. Banyaknya N (cacah perhitungan PEMBAHASAN
dalam hal ini terkait dengan ukuran Berikut adalah implementasi algoritma penyelesaian
matriks persegi). masalah dengan bahasa Fortran.
b. Daerah selang x yang ditinjau. PROGRAM syarat_batas
c. Lebar langkah perhitungan IMPLICIT NONE
REAL, DIMENSION(0:100) :: x,y,a,b,c,r,beta,rho
d. Syarat batas y(0) dan y(N). REAL :: h
INTEGER ::n,i
2. Mengisi unsur-unsur matrik tridiagonal dan n=30
x(0)=0.0
vektor kolom ruas kanan a(i), b(i), c(i) dan x(n)=3.0
h=(x(n)-x(0))/n
r(i). Khusus untuk i=1 dan i=N-1, unsur y(0)=10.0
y(n)=0.0
matriks r(i) berbeda dengan yang lain karena
!Memasukkan unsur-unsur matrik a(i), b(i), c(i) dan r(i)
ada pengurangan dengan y 0 dan y n. !Khusus untuk i=1 dan i=n-1, unsur matriks r(i) berbeda
3. Algoritma Eliminasi Gauss : mengubah !dengan yang lain karena ada pengurangan dengan y0 dan yn

matriks tridiagonal ke bentuk matriks atas DO i=1,(n-1)


x(i)=x(0)+i*h
yang hanya mengandung dua larik yaitu b(i)=-2.0
IF (i .EQ. 1) THEN
beta(i) dan c(i) serta r(i) ke rho(i). r(i)=f(x(i))*h**2-y(0)
ELSE
Menghitung y(i) dengan substitusi balik IF (i .EQ. (n-1)) THEN
r(i)=f(x(i))*h**2-y(n)
yaitu dihitung lebih dahulu y(n-1) dan ELSE
r(i)=f(x(i))*h**2
dilanjutkan ke y(n-2) dan seterusnya sampai END IF
y(1). END IF
END DO
4. Menampilkan hasil. DO i=1,(n-2)
c(i)=1.0
END DO
DO i=2,(n-1)
a(i)=1.0
END DO

61 BINA TEKNIKA, Volume 13 Nomor 1, Edisi Juni 2017, 59-64


!-------------------------------------------------------- lebih dahulu y(n-1) dan dilanjutkan ke y(n-2) dan
!Mengubah matriks tridiagonal ke bentuk matriks atas yang seterusnya sampai y(1) */
!hanya mengandung dua larik yaitu beta(i) dan c(i) serta
!r(i) ke rho(i) y[N-1]=rho[N-1]/beta[N-1];
!-------------------------------------------------------- for (i=2;i<=(N-1);i++){
CALL tridiagonal(n-1,a,b,c,r,beta,rho) y[N-i]=(rho[N-i]-c[N-i]*y[N-i+1])/beta[N-i];
!-------------------------------------------------------- }
!Menghitung y(i) dengan substitusi balik yaitu dihitung // tampilkan hasil perhitungan lengkap beserta batas
!lebih dahulu y(n-1) dan dilanjutkan ke y(n-2) dan for (i=0;i<=N;i++){
!seterusnya sampai y(1) System.out.format("%02d" + "%10.4f" + "%10.4f%n", (i), x[i],
!-------------------------------------------------------- y[i]);)}
y(n-1)=rho(n-1)/beta(n-1) }
DO i=2,(n-1) // DEFINISI FUNGSI
y(n-i)=(rho(n-i)-c(n-i)*y(n-i+1))/beta(n-i) public static double fs_x(double x){
END DO return -3*x; }
!-------------------------------------------------------- }
!Menampilkan hasil
!--------------------------------------------------------
DO i=0,n
WRITE(*,*) i,x(i),y(i) Dengan MATLAB bentuk source code penyelesaian
END DO
masalah adalah sebagai berikut.
CONTAINS clc;clear;
FUNCTION f(xx) %----------------------------------------------------------
IMPLICIT NONE %Masukan banyaknya cacah titik n, batas kiri x(0) dan batas
REAL :: f kanan x(n) daerah yang ditinjau, ukuran langkah h,serta syarat
REAL, INTENT(in) :: xx batas potensial di x0 dan xn
f=-3*x %----------------------------------------------------------
END FUNCTION f n=30;
!-------------------------------------------------------- x0=0.0;
!Mengubah matriks tridiagonal dan perluasannya a(i), b(i), x(n)=3.0;
!c(i) dan r(i) agar menjadi beta(i), c(i) dan rho(i) h=(x(n)-x0)/n;
!-------------------------------------------------------- y0=10.0;
SUBROUTINE tridiagonal(m,a,b,c,r,beta,rho) y(n)=0.0;
IMPLICIT NONE hasil=[];
REAL, DIMENSION(0:100), INTENT(in) :: a,b,c,r %----------------------------------------------------------
REAL, DIMENSION(0:100), INTENT(out) :: beta,rho % mengisi matrik tridiagonal dan vektor kolom ruas kanan
INTEGER, INTENT(in) :: m %(a,b,c,r);
REAL :: pengali %--------------------------------------------------------
beta(1)=b(1) %Memasukkan unsur-unsur matrik a(i), b(i), c(i) dan r(i)
rho(1)=r(1) %Khusus untuk i=1 dan i=n-1, unsur matriks r(i) berbeda
DO i=2,m %dengan yang lain karena ada pengurangan dengan y0 dan yn
pengali=a(i)/beta(i-1) %--------------------------------------------------------
beta(i)=b(i)-pengali*c(i-1)
rho(i)=r(i)-pengali*rho(i-1) for i=1:(n-1)
END DO x(i)=x0+i*h;
END SUBROUTINE tridiagonal b(i)=-2.0;
END PROGRAM syarat_batas if (i == 1)
r(i)=f1(x(i))*h^2-y0;
else
if (i == (n-1))
Dalam bahasa Java, algoritma penyelesaian masalah r(i)=f1(x(i))*h^2-y(n);
ditulis seperti berikut. else
r(i)=f1(x(i))*h^2;
public class syaratBatas { end
public static void main(String args[]) { end
// DIFINISI VARIABEL DALAM ARRAY end
double x[]=new double[100]; for i=1:(n-2)
double y[]=new double[100]; c(i)=1.0;
double a[]=new double[100]; end
double b[]=new double[100]; for i=2:(n-1)
double c[]=new double[100]; a(i)=1.0;
double r[]=new double[100]; end
double rho[]=new double[100]; %---------------------------------------------------------
double beta[]=new double[100]; %Mengubah matriks tridiagonal ke bentuk matriks atas yang
double h,pengali; %hanya mengandung dua larik yaitu beta(i) dan c(i) serta
int N,i; %r(i) ke rho(i)
// SYARAT BATAS %---------------------------------------------------------
N=30; beta(1)=b(1);
x[0]=0.0; rho(1)=r(1);
x[N]=3.0; for i=2:n-1
h=(x[N]-x[0])/N; pengali=a(i)/beta(i-1);
y[0]=10.0; beta(i)=b(i)-pengali*c(i-1);
y[N]=0.0; rho(i)=r(i)-pengali*rho(i-1);
/* mengisi matrik tridiagonal dan vektor kolom ruas kanan end
(a,b,c,r); Memasukkan unsur-unsur matrik a(i), b(i), c(i) dan %---------------------------------------------------------
r(i); Khusus untuk i=1 dan i=n-1, unsur matriks r(i) berbeda %Menghitung y(i) dengan substitusi balik yaitu dihitung
dengan yang lain karena ada pengurangan dengan y0 dan yn */ %lebih dahulu y(n-1) dan dilanjutkan ke y(n-2) dan
%seterusnya sampai y(1)
for (i=1;i<=N-1;i++){ %---------------------------------------------------------
x[i]=x[0]+i*h; y(n-1)=rho(n-1)/beta(n-1);
b[i]=-2.0; for i=2:(n-1)
if (i==1){ y(n-i)=(rho(n-i)-c(n-i)*y(n-i+1))/beta(n-i);
r[i]=fs_x(x[i])*h*h-y[0];} end
else %---------------------------------------------------------
if (i==(N-1)) { %Menampilkan hasil
r[i]=fs_x(x[i])*h*h-y[N];} %---------------------------------------------------------
else{ for i=1:n
r[i]=fs_x(x[i])*h*h; } fprintf('%d %8.6f %8.6f\n', i, x(i), y(i));
} end
for (i=1;i<=N-2;i++) {
c[i]=1.0; } M-file untuk menyatakan fungsi ruas kanan peramaan
for (i=2;i<=(N-1);i++) {
a[i]=1.0; } ditulis terpisah di M-file bernama f1.m seperti berikut
/* Mengubah matriks tridiagonal dan perluasannya a(i), b(i), % f1(x) adalah fungsi rapat muatan (fungsi ruas kanan
c(i) dan r(i) agar menjadi beta(i), c(i) dan rho(i) */ %persamaan)
function f=f1(x)
beta[1]=b[1]; f=-3*x;
rho[1]=r[1]; return
for (i=2;i<=(N-1);i++) {
pengali=a[i]/beta[i-1];
Hasil Running Fortran, Java dan MATLAB berturut-
beta[i]=b[1]-pengali*c[i-1];
rho[i]=r[i]-pengali*rho[i-1];
turut ditunjukkan seperti Gambar 2, Gambar 3 dan
} Gambar 4.
/*Menghitung y(i) dengan substitusi balik yaitu dihitung

Kajian Numerik Masalah Syarat Batas ..... (Juwariyah) 62


22
Gambar 2. Hasil Running program di bahasa Gambar 4. Hasil Running program di
Fortran MATLAB

Gambar 5 melukiskan grafik hasil perhitungan


numerik nilai potensial listrik φ(x) terhadap jarak.

Gambar 5. Nilai potensial listrik terhadap


jarak

KESIMPULAN
Dari hasil kajian numerik ini dapat
disimpulkan bahwa metode beda hingga yang
Gambar 3. Hasil Running program di bahasa
menghasilkan matriks tridiagonal yang diselesaikan
Java dengan eliminasi Gauss dapat digunakan sebagai
salah satu cara menyelesaikan persamaan diferensial
biasa, orde dua, linier yang disertai dengan kondisi
batas seperti kasus menghitung potensial
elektrostatis yang berbentuk persamaan Poisson 1D.
Algoritma penyelesaian masalah pada dapat

63 BINA TEKNIKA, Volume 13 Nomor 1, Edisi Juni 2017, 59-64


diimplementasikan di beberapa bahasa
pemrograman.

DAFTAR PUSTAKA
Koonin, S.E.,. 1990. Computational Physics -
Fortran Version. Addison-Wesley Pu. Co.Inc.
New York.
Lam,C.Y.,1994. Applied Numerical Methods for
Partial Differential Equations. Prentice Hall,
London.
Rubin H.L., Manuel J.P., Cristian C.B., 2007.
Computational Physics. Wiley VCH Verlag.
Weinheim.
Sahid. 2005. Pengantar Komputasi Numerik dengan
MATLAB. Penerbit Andi. Yogyakarta.
Suarga. 2007. Fisika Komputasi, Solusi Problema
Fisika dengan MATLAB. Penerbit Andi.
Yogyakarta.
Smith,G.D., 1969. Numerical Methods for Partial
Differential Equations. Oxford University Press.
London.
Yang W.Y, dkk. 2005. Apllied Numerical Methods
using MATLAB. John Wiley & Sons. New
Jersey.

Kajian Numerik Masalah Syarat Batas ..... (Juwariyah) 64

Anda mungkin juga menyukai