Upload
mukhlizar-ismail
View
221
Download
0
Embed Size (px)
Citation preview
7/25/2019 5_Umar_Reky.pdf
1/20
Paradigma, Vol. 14No. 2 Agustus 2010 hlm. 151170
IMPLEMENTASI MATLAB UNTUK MENYELESAIKAN MASALAH SYARAT
BATAS PERSAMAAN DIFFERENSIAL POISSON DAN LAPLACE 2D
La Ode Muhammad Umar RRR1)
1) Jurusan Matematika, FMIPA, Universitas Haluoleo Kendari, 93231
ABSTRAK
Pada tulisan ini, metode beda hingga dan metode iterasi Succesive Over Relaxation (SOR)
digunakan untuk menyelesaikan persamaan differensial Poisson dan Laplace 2D pada domainsegiempat. Metode ini tidak hanya menghasilkan akurasi numerik yang sangat baik tetapi juga
sangat efisien. Lebih lanjut, diberikan program komputer dalam Matlab.
Kata Kunci: Persamaan Poisson dan Laplace, metode beda hingga, SOR, Matlab
ABSTRACT
In this paper, the finite difference methods and succesive over relaxation (SOR) are used to
determine the solutions of Poisson and Laplace equation on a rectangular domain. These methodsnot only preserve the accuracy but also provide the efficiency. Moreover, computer program are
presented in Matlab
Keywords: Poisson and Laplace equations, finite difference, SOR, Matlab
Diterima : 16 Juni 2010
Disetujui untuk dipublikasikan : 2 Agustus 2010
1. Pendahuluan
Persamaan differensial Poisson dan Laplace 2D sering dijumpai pada masalah
teknik dan fisika. Persamaan differensial Poisson dan Laplace 2D dijumpai pada masalah
fluida, potensial, elastisitas, konduksi panas, air tanah dan lain-lain. Seperti persamaan
differensial lainnya, kerumitan penyelesaian persamaan differensial Poisson dan Laplace
2D terletak pada bentuk syarat batas yang menyertai persamaan differensial tersebut. Pada
tulisan ini diberikan cara penyelesaian persamaan differensial Poisson dan Laplace 2D
dengan ketiga tipe syarat batasnya yaitu Dirichlet, Neumann, dan Robbin yang
diimplementasikan dalam program komputer menggunakan Matlab.
7/25/2019 5_Umar_Reky.pdf
2/20
Implementasi Matlab untuk Menyelesaikan Masalah Syarat Batas Persamaan Differensial Poisson dan Laplace 2d 152
2. Skema Numerik dan Program Komputer
a. Partisi Domain
Diberikan persamaan differensial Poisson dan Laplace 2D
),(),(
),(
2
2
2
2
yxfy
yxu
x
yxu=
+
(1)
dengan domain { }qypxyx = 0,0|),( . Batas-batas domain dapat bertipe
Dirichlet, Neumann, atauRobin.
Penyelesaian persamaan (1) dengan metode beda hingga, dimulai denganmempartisi domain seperti pada Gambar 1.
Gambar 1. Domain dan partisinya.
Program komputer (bagian 1):
close all; clear all; clc;%Bagian 1% Menyelesaikan PD Poisson & laplace% dengan domain segi empat dengan 3 tipe syarat batas dapat dipilih% beripe Dirichlet, Neumman, Robbin.%% j
7/25/2019 5_Umar_Reky.pdf
3/20
Paradigma, Vol. 14No. 2 Agustus 2010 hlm. 151170 153
% y | Syarat batas 2% J tinggi ---------------------#% . | |% . | |% . | |% . | |% .Syarat batas 3 | Uxx + Uyy = f | Sayarat batas 4% . | |% .| |% 3 | |% 2 | |% 1 #---------------------+--- x% 0 lebar
% Syarat batas 1% 1 2 3 ................ I i%------------------------------------------------------------------disp(' BENTUK UMUM : Uxx + Uyy = f ');disp(' -------------------------------');disp(' Jenis Persamaan Differensial: ');disp(' 1. Laplace ')disp(' 2. Poisson ')PD=input(' * pilih 1-2 : ? ');
if PD==1,f=0;
else f=input(' f = ? ');
end; %ifdisp('UKURAN DOMAIN')disp('--------------')lebar= input(' lebar = ? ');tinggi= input(' tinggi = ? ');I=input('I:indeks maks.pilahan pd arah sb-x. i=1,2,.,I. I = ? ');J=input('J:indeks maks.pilahan pd arah sb-y. j=1,2,.,J. J = ? ');
h=lebar/(I-1); % lebar kisik=tinggi/(J-1);% tinggi kisidisp(' ');% program bersambung ke bagian berikutnya
b. Skema Iterasi Pada Batas dan Bagian Dalam DomainPersamaan (1) selanjutnya ditulis menjadi
jijiji fy
u
x
u,,2
2
,2
2
)()( =
+
(2)
7/25/2019 5_Umar_Reky.pdf
4/20
Implementasi Matlab untuk Menyelesaikan Masalah Syarat Batas Persamaan Differensial Poisson dan Laplace 2d 154
jika digunakan rumus pendekatan
2
,1,,1
,2
2 2)(
h
uuu
x
u jijijiji
+ +
dan
2
1,,1,
,2
2 2)(
k
uuu
y
u jijijiji
+ +
maka persamaan (2) dapat didekati dengan skema
ji
jijijijijijif
k
uuu
h
uuu,2
1,,1,
2
,1,,1 22=
++
+ ++
atau
+
+
++
=
++
22
,2
1,1.
2
,1,1
,11
2kh
fk
uu
h
uu
uji
jijijiji
ji . (3)
Persamaan (3) merupakan skema untuk mencari upada titik-titik grid yang terletak
pada bagian dalam domain, jadi berindeks i=2,3,...,I-1 j=2,3,...,J-1. Adapun untuk titik-
titik grid yang terletak pada batas domain dalam hal inijiu , dengan salah satu atau kedua
indeksnya adalah i=1, i=I,j=1,j=1,j=J, dibutuhkan modifikasi persamaan (3) sesuai syarat
batas yang diberikan (Robin atauNeumann). Pada batas bertipe Dirichlet, nilai u telah
diketahui, sehingga tidak dibutuhkan skema numerik untuk mencari nilai u pada batas
tersebut. Pada sudut batas yang dibentuk oleh dua batas bertipe Dirichlet, nilai u
diasumsikan sama dengan nilai urata-ratanya. Jika sudut batas dibentuk oleh batas bertipeDirichlet dan batas lainnya bertipe Robin atau Neumann maka nilai u pada sudut batas
tersebut diasumsikan mengikuti nilai udari batasDirichlet.
Nilai-nilai upada batas bertipeRobinatauNeumannbelum diketahui, oleh karena
itu dibutuhkan skema numerik untuk mencari nilai upada batas-batas tersebut.
Diketahui bentuk umum syarat batas merupakan tipeRobin, yaitu
7/25/2019 5_Umar_Reky.pdf
5/20
7/25/2019 5_Umar_Reky.pdf
6/20
Implementasi Matlab untuk Menyelesaikan Masalah Syarat Batas Persamaan Differensial Poisson dan Laplace 2d 156
Gambar 3. Domain dengan syarat batasRobinatauNeumann
Misalkan domain pada Gambar 3.4 dengan batas batas kiri bertipe Robin, yaitu
33 ),(),(
+=
yxu
x
yxu, ,0=x qy 0 (5)
dengan33 , bilangan konstan.
Persamaan (5) dapat ditulis menjadi
J,211,,)( 3,3, ,...,jiux
ujiji ==+=
. (6)
Jika digunakan rumus pendekatan
h
uu
x
u jijiji
2)(,1,1
,
+
maka persamaan (6) dapat didekati dengan skema
3,3
,1,1
2 +=
+
ji
jijiu
h
uu; i=1;j=1,2,...,J. (7)
44 +=
u
x
u
22 +=
u
y
u
X
q
0 p
33 +=
u
u
11 +=
u
y
u
Y
7/25/2019 5_Umar_Reky.pdf
7/20
Paradigma, Vol. 14No. 2 Agustus 2010 hlm. 151170 157
Jika i=1 digunakan pada skema PD Poisson dan Laplace 2D (3) dan persamaan (7) maka
akan dijumpai ju ,0 dengan j=1,2,...,J. Sedangkan diketahui bahwa indeks terkecil untuki
adalah 1, ini berarti ju ,0 adalah titik-titik fiktif . Oleh karena itu u0,j tidak dapat digunakan
secara langsung.
Persamaan (3) untuk i=1, diperoleh
+
+
++
=
+
22
,12
1,11.1
2
,2,0
,111
2kh
f
k
uu
h
uu
u
j
jjjj
j . (8)
Persamaan (7) untuk i=1, diperoleh
3,13
,0,2
2 +=
j
jju
h
uu
atau
jjj uhhuu ,133,2,0 22 = . (9)
Persamaan (9) disubstitusi pada persamaan (8), diperoleh
2111
2
22
3222
,12
1,11.1
2
3,2
,1
hhkh
fk
uu
h
hu
uj
jjj
j
+
+
+
+
=
+
. (10)
Persamaan (10) merupakan skema untuk mencari ju ,1 , j=2,3,..., J-1. Sedangkan skema
untuk mencari1,1u dan Ju ,1 belum dapat ditentukan, karena melibatkan syarat batas lain
yang membentuk sudut-sudut tersebut.
Misalkan domain pada Gambar 3.4, batas bagian atas domain juga bertipe
Robin,yaitu
22 ),(),(
+=
yxu
y
yxu, qypx = ,0 (11)
7/25/2019 5_Umar_Reky.pdf
8/20
Implementasi Matlab untuk Menyelesaikan Masalah Syarat Batas Persamaan Differensial Poisson dan Laplace 2d 158
dengan 22 , bilangan konstan.
Persamaan (11) dapat ditulis menjadi
2,2,)( +=
jiji u
y
u, i=1,2,...,I, j=J. (12)
Jika digunakan rumus pendekatan
k
uu
y
u jijiji
2)(
1,1,
,
+
maka persamaan (12) dapat didekati dengan
2,2
1,1,
2 +=
+
ji
jijiu
k
uu; i=1,2,...,I;j=J
atau
221J,1J, 2 ++= + kuu ii , i=1,2,...,I . (13)
Diketahui indeks terbesar untukjadalah J. Jadi 1J, +iu , i=1,2,3,...,I adalah titik-titik
fiktif.
Skema PD Poisson (3) untuk j = J adalah
+
+
++
=
++
22
J,2
1J,1J.
2
J,1J,1
J,11
2kh
fk
uu
h
uu
ui
iiii
i (14)
Persamaan (13) disubstitusi ke persamaan (14) diperoleh skema untuk J,iu yaitu
2222
J,2
21J.
2
J,1J,1
J,
2111
2
22
kkkh
fk
ku
h
uu
u
iiii
i
+
+
+
=
+
(15)
dengan i=2,3,...,I-1. Untuk J,1u dan JI,u ( u pada sudut batas domain) masih memerlukan
informasi tambahan dari syarat batas yang lain yang membentuk sudut-sudut tersebut.
Karena diketahui domain pada Gambar 4, batas kiri dan batas kanan domain bertipeRobin,
7/25/2019 5_Umar_Reky.pdf
9/20
Paradigma, Vol. 14No. 2 Agustus 2010 hlm. 151170 159
maka skema u pada sudut kiri atas ( J,1u ) diperoleh dengan mensubstitusi persamaan (9)
dan (13) ke persamaan (3), diperoleh
223222
J,12
21J.
2
3J,2
J,1
21
2111
2
2222
kk
hhkh
fk
ku
h
hu
u
i
+
+
+
+
=
. (16)
Khusus untuk sudut batas yang dibentuk oleh batas-batas Dirichlet, nilai u pada
sudut diasumsikan sama dengan nilai u rata-ratanya. Jika sudut batas dibentuk oleh batas
bertipe Dirichlet dan batas yang lainnya bertipe Robin atau Neumann maka nilai u pada
sudut tersebut diasumsikan mengikuti nilai udari batas bertipeDirichlet.
Setelah semua skema untuk u tersedia, maka untuk u yang belum diketahui
nilainya diberikan sebarang nilai awal)0(u , selanjutnya diiterasi menggunakan skema
SOR, yaitu
1
,,, )).(1(.)(
+=v
jiji
v
ji uuu
(17)
dengan v nomor iterasi (v = 1,2,3,...), jiu ,
adalah ui,j dari skema titik grid pada bagian
dalam domain (persamaan (3)) dan skema batas Robinatau Neumann. Parameter SOR
dipilih 20
7/25/2019 5_Umar_Reky.pdf
10/20
Implementasi Matlab untuk Menyelesaikan Masalah Syarat Batas Persamaan Differensial Poisson dan Laplace 2d 160
fprintf('\n Syarat batas sisi ke');fprintf('%2d ',(s));fprintf('\n 1. Dirichlet ');fprintf('\n 2. Neumann ');fprintf('\n 3. Campuran (Robyn)\n');
tipe = input(' * pilih 1-3 : ');switch tipecase 1,
TipeBC(s)=1; % syarat batas sisi ke s bertipe DirichletBC(s)=input(' u = ');
case 2,TipeBC(s)=3; % syarat batas bertipe Neummann dianggap
alfa(s)=0; % syarat batas bertipe Robyn dgn alfa=0 switch scase 1,
fprintf(' du/dy ');case 2,
fprintf(' du/dy ');case 3
fprintf(' du/dx ');case 4,
fprintf(' du/dx ');otherwise
% tidak ada lagi sisiend %switch sBC(s)=input(' = ');
%syarat batas sisi ke s bertipe Robynotherwise,
TipeBC(s)=3;switch s
case 1,disp(' dU/dy=alfa.u+betta');
case 2,disp(' dU/dy=alfa.u+betta');
case 3disp(' dU/dx=alfa.u+betta');
case 4,disp(' dU/dx=alfa.u+betta');
otherwise % tidak ada lagi sisi Robynend %switch s
alfa(s)=input(' alfa =');BC(s)=input(' betta = ');
end % switch tipeend; %for s
7/25/2019 5_Umar_Reky.pdf
11/20
Paradigma, Vol. 14No. 2 Agustus 2010 hlm. 151170 161
% inisialisasi U pada batasfor i=1:I
U(i,1)=0;U(i,J)=0;
end;for j=1:J
U(1,j)=0;U(I,j)=0;
end;
% set nilai U pada syarat batas bertipe Dirichlet
if TipeBC(1)==1,for i=1:IU(i,1)=BC(1);
end;A1=U(1,1); B1=U(I,1);
end; % if
if TipeBC(2)==1,for i=1:I
U(i,J)=BC(2);end;
C2=U(1,J); D2=U(I,J);end; % if
if TipeBC(3)==1,for j=1:J
U(1,j)=BC(3);end;
A3=U(1,1); C3=U(1,J);end; % if
if TipeBC(4)==1,for j=1:J
U(I,j)=BC(4);end;
B4=U(I,1); D4=U(I,J);end; % if
%----- nilai U pada titik pojok mengikuti sisi Dirichlet-----
% pojok Aif TipeBC(1)==1 & TipeBC(3)==1 ,
U(1,1)=(A1+A3)/2;end;if TipeBC(1)==1 & TipeBC(3)==3,
7/25/2019 5_Umar_Reky.pdf
12/20
Implementasi Matlab untuk Menyelesaikan Masalah Syarat Batas Persamaan Differensial Poisson dan Laplace 2d 162
U(1,1)=A1;end;if TipeBC(1)==3 & TipeBC(3)==1,
U(1,1)=A3;end;
% pojok Bif TipeBC(1)==1 & TipeBC(4)==1,
U(I,1)=(B1+B4)/2;end;if TipeBC(1)==1 & TipeBC(4)==3,
U(I,1)=B1;end;
if TipeBC(1)==3 & TipeBC(4)==1,U(I,1)=B4;end;
% pojok Cif TipeBC(2)==1 & TipeBC(3)==1,
U(1,J)=(C2+C3)/2;end;if TipeBC(2)==1 & TipeBC(3)==3,
U(1,J)=C2;end;if TipeBC(2)==3 & TipeBC(3)==1,
U(1,J)=C3;end;
% pojok Dif TipeBC(2)==1 & TipeBC(4)==1,
U(I,J)=(D2+D4)/2;end;if TipeBC(2)==1 & TipeBC(4)==3,
U(I,J)=D2;end;if TipeBC(2)==3 & TipeBC(4)==1,
U(I,J)=D4;end;
% set tebakan awal U pada sisi dgn tipe Neumann atau Robyn
% sisi ke 1if TipeBC(1)==3 & TipeBC(2)==1,
for i=2:I-1U(i,1)=(BC(2)-tinggi*BC(1)-tinggi)/(1+tinggi*alfa(1));
end;end; % if
7/25/2019 5_Umar_Reky.pdf
13/20
Paradigma, Vol. 14No. 2 Agustus 2010 hlm. 151170 163
% sisi ke 2if TipeBC(1)==1 & TipeBC(2)==3,
for i=2:I-1U(i,J)=BC(1)+tinggi*BC(2)/(1-tinggi*alfa(2));
end;end; % if
% sisi ke 3if TipeBC(3)==3 & TipeBC(4)==1,
for j=2:J-1U(1,j)=BC(4)-lebar*BC(3)/(1+lebar*alfa(3));
end;end; % if
% sisi ke 4if TipeBC(3)==1 & TipeBC(4)==3,
for j=2:J-1U(I,j)=BC(3)+lebar*BC(4)/(1-lebar*alfa(4));
end;end; % if
% Tebakan awal pojok yang dibentuk 2 sisi Neumann atu Robyn
% pojok Aif TipeBC(1)==3 & TipeBC(3)==3,A1=(U(1,2)-k*BC(1))/(1+k*alfa(1));A3=U(2,1)-h*BC(3)/(1+h*alfa(3));
U(1,1)=(A1+A3)/2;end;% tebakan awal pojok Bif TipeBC(1)==3 & TipeBC(4)==3,
B1=U(I,2)-k*BC(1)/(1+k*alfa(1));B4=U(I-1,1)-h*BC(4)/(1+h*alfa(4));U(I,1)=(B1+B4)/2;
end;
% tebakan awal pojok Cif TipeBC(2)==3 & TipeBC(3)==3,
C2=U(1,J-1)+k*BC(2)/(1-k*alfa(2));
C3=U(2,J)-h*BC(3)/(1+h*alfa(3));U(1,J)=(C2+C3)/2;end;
% tebakan awal pojok Dif TipeBC(2)==3 & TipeBC(4)==3,
D2=U(I,J-1)+k*BC(2)/(1-k*alfa(2));D4=U(I-1,J)+h*BC(4)/(1-h*alfa(4));U(I,j)=(D2+D4)/2;
7/25/2019 5_Umar_Reky.pdf
14/20
Implementasi Matlab untuk Menyelesaikan Masalah Syarat Batas Persamaan Differensial Poisson dan Laplace 2d 164
end;
H=lebar/2; K=tinggi/2;r=sqrt(H*H+K*K);aver = (U(1,1)+U(I,1)+U(1,J)+U(I,J)-r*r*f)/4;%tebakan awal titik interiorfor i=2:I-1
for j=2:J-1U(i,j)=0;%aver
endend
Ukonv=0; % inisialisasi banyaknya titik konvergenbanyakU=I*J; % banyaknya U seluruhnyaepsilon=10.^(-6); % nilai toleransi perbedaan nilai UMj=(cos(pi/(I+1)) + cos(pi/(J+1)))/2;w= 1.5;%2/(1+sqrt(1-Mj.^2));
dh=1/(h*h); dk=1/(k*k); dhk= 2*(dh+dk);iter=0;%-------------------Bagian iterasi--------------------------while Ukonv1&i1&j1&i1&i1&j
7/25/2019 5_Umar_Reky.pdf
15/20
Paradigma, Vol. 14No. 2 Agustus 2010 hlm. 151170 165
U(1,j)= (dh*(2*U(2,j) - 2*h*BC(3))+dk*(U(1,j-1)+U(1,j+1))- f)/(dhk+dh*2*h*alfa(3));
elseif i==I & j>1&j
7/25/2019 5_Umar_Reky.pdf
16/20
Implementasi Matlab untuk Menyelesaikan Masalah Syarat Batas Persamaan Differensial Poisson dan Laplace 2d 166
end % for j
end% for i
fprintf('\nIterasi ke'); fprintf('%5d ',iter);fprintf('banyak U konvergen');fprintf('%5d ',Ukonv);fprintf(' //');fprintf('%5d',banyakU);
if iter==100000, break; end %ifend % while--------------------End iterasi-----------------------
% plot nilai U pada domain
arsiran= U(1:I,1:J); pcolor(arsiran)colorbar vert
shading interptitle('Grafik Kontur Solusi Numerik');xlabel('x'); ylabel('y');
drawnow;fprintf('\nSelesai\n');
3. Simulasi
Diberikan PD Laplace 2D
( ) ( )0
,,2
2
2
2
=
+
y
yxu
x
yxu
dengan domain }10,10|),{( = yxyx dan syarat batas:
u(x,0)= 1, 21,
=
xy
u, 13
,0
+=
u
x
u
y
, 14,1
+=
u
x
u
y
Hasil program komputer diatas :
BENTUK UMUM : Uxx + Uyy = f-------------------------------Jenis Persamaan Differensial:1. Laplace2. Poisson* pilih 1-2 : ? 1
7/25/2019 5_Umar_Reky.pdf
17/20
Paradigma, Vol. 14No. 2 Agustus 2010 hlm. 151170 167
UKURAN DOMAIN--------------lebar = ? 1tinggi = ? 1I:indeks maks.pilahan pd arah sb-x. i=1,2,.,I. I = ? 33J:indeks maks.pilahan pd arah sb-y. j=1,2,.,J. J = ? 33
SYARAT BATAS------------ Syarat batas sisi ke 11. Dirichlet2. Neumann3. Campuran (Robyn)
* pilih 1-3 : 1u = 1
Syarat batas sisi ke 21. Dirichlet2. Neumann3. Campuran (Robyn)* pilih 1-3 : 2
du/dy = 2
Syarat batas sisi ke 31. Dirichlet2. Neumann3. Campuran (Robyn)
* pilih 1-3 : 3dU/dx=alfa.u+betta
alfa =3betta = 1
Syarat batas sisi ke 41. Dirichlet2. Neumann3. Campuran (Robyn)* pilih 1-3 : 3
dU/dx=alfa.u+bettaalfa =-4betta = 1
Iterasi ke 1 banyak U konvergen 33 // 1089Iterasi ke 1 banyak U konvergen 33 // 1089...Iterasi ke 892 banyak U konvergen 1047 // 1089Iterasi ke 893 banyak U konvergen 1062 // 1089Iterasi ke 894 banyak U konvergen 1078 // 1089Iterasi ke 895 banyak U konvergen 1089 // 1089Selesai
7/25/2019 5_Umar_Reky.pdf
18/20
Implementasi Matlab untuk Menyelesaikan Masalah Syarat Batas Persamaan Differensial Poisson dan Laplace 2d 168
Gambar 4. Solusi numerik
Kebenaran solusi numerik diperlihatkan pada Gambar 5 yang menunjukan
bahwa solusi numerik sesuai dengan skema numerik dan syarat batas yang
diberikan.
Gambar 5. Kebenaran solusi numerik
7/25/2019 5_Umar_Reky.pdf
19/20
Paradigma, Vol. 14No. 2 Agustus 2010 hlm. 151170 169
DAFTAR PUSTAKA
[1] Bailey,W. 2003. The SOR algorithm & its Application to Numerical Solution of Eliptic Partial
Differential Equation. Ireland: Dublin Institute of Technology.
[2] Bassaruddin, T. 1994. Metode Beda Hingga untuk Persamaan Differensial. Jakarta: Elex
Media Komputindo.[3] Constantinides, A. 1987.Applied Numerical Methods with Personal Computer. New York:Mc
Graw Hill Inc.
[4] Nakamura,S. 1991. Applied Numerical Methods with Software. New York: Prentice Hall Inc.
[5] Sturler E. 2003.Iterative Methods and Multigrid. http://www.cse.uiuc.edu/cs550/lectures.htm
7/25/2019 5_Umar_Reky.pdf
20/20
Implementasi Matlab untuk Menyelesaikan Masalah Syarat Batas Persamaan Differensial Poisson dan Laplace 2d 170