A. Kesimpulan
Persamaan Laplace dan persamaan Poisson yang timbul pada aliran panas dua-dimensi tetap dalam pelat persegi panjang dan pelat cakram dengan syarat batas Dirichlet dan Neumann dapat diselesaikan secara numerik dengan metode Beda- Hingga. Langkah-langkahnya adalah sebagai berikut:
1. Menutup permukaan pelat dengan grid beda hingga, sehingga diperoleh titik- titik dalam dan titik-titik pada batas;
2. Menentukan pendekatan beda hingga di titik-titik dalam pada pelat dan titik- titik pada batas yang suhunya tidak diketahui (jika syarat batasnya Neumann); 3. Pendekatan-pendekatan beda hingga itu akan menghasilkan persamaan-
persamaan beda hingga yang membentuk suatu sistem persamaan linear; 4. Sistem persamaan linear yang didapatkan dapat diselesaikan dengan metode
iterasi Gauss-Seidel.
Sehingga akan diperoleh penyelesaian numerik di titik-titik dalam pada pelat dan titik-titik pada tepi batas pelat yang suhunya tidak diketahui, yaitu suhu pendekatan di titik-titik itu.
Penyelesaian secara numerik lebih mudah daripada penyelesaian secara eksak, karena penyelesaian secara eksak membutuhkan perhitungan yang panjang, khususnya apabila suhu pada tepi-tepi batas tidak sama dengan nol.
Dengan penyelesaian secara numerik dapat diperoleh suhu pendekatan di titik dalam yang rapat, yaitu dengan cara membagi permukaan pelat dengan ukuran grid yang besar.
B. Saran
Skripsi ini membahas tentang persamaan Laplace dan persamaan Poisson yang timbul pada aliran panas dua-dimensi dalam pelat persegi panjang dan pelat cakram. Penulis menyarankan untuk membahas tentang persamaan Laplace dan persamaan Poisson yang timbul pada aliran panas tiga-dimensi dalam zat padat berbentuk kubus dan silinder.
DAFTAR PUSTAKA
Andrews, L. C. (1986). Elementary Partial Differential Eguations with Boundary Value Problems. Orlando: Academic Press, Inc
Hoffmann, J. D. (1992). Numerical Methods for Engineers and Scientist. Singapore: Mc Graw – Hill, Inc
Lam, C. Y. (1994). Applied Numerical Methods for Partial Differential Equations. Singapore: Simon & Schuster (Asia) Pte Ltd
Lopez, R. J. (2001). Advanced Enggineering Mathematics. Boston: Addison-Wesley Mathews, J. H. (1992). Numerical Methods for Mathematics, Sciences and Engineering (2nded). Englewood Cliffs: Prentice Hall, Inc
Nakamura, S. (1995). Applied Numerical Methods in C. Singapore: Simon & Schuster (Asia) Pte Ltd
O’Neil, P. V. (2007). Advanced Enggineering Mathematics. Toronto: Thomson Canada Limited
Plybon, B. F. (1992). An Introduction to Applied Numerical Analysis. Boston: PWS- KENT Publishing Company
Setiawan, A. (2006). Pengantar Metode Numerik. Yogyakarta : Penerbit ANDI Stanoyevitch, A. (2005). Introduction to Numerical Ordinary and Partial Differential
Equations Using Matlab. Hoboken: John Wiley & Sons, Inc
Strauss, W. A. (1992). Partial Differential Equations An Introduction. New York: John Wiley & Sons, Inc
Lampiran 2.5.1 Program untuk menyelesaikan sistem persamaan linear dengan metode iterasi Gauss-Seidel
function GaussSeidel(A,n,TOL)
%A = [c1 a13 a13 . . . a1n;c2 a21 a23 . . . a2n;c3 a31 a32 . . . a3n; . . . ;cn an1 an2 . . . an(n-1)];
%n adalah jumlah variabel; %TOL = toleransi = 0.00001;
%Menentukan nilai awal: for i = 1 : n, x(i, 1) = 0; w(i, 1) = 0; end %Penyelesaian untuk x1: for i = 1, x(i, 1) = A(i, 1); for j = 2 : n,
x(i, 1) = x(i, 1) + (A(i, j)*x(j, 1)); end end %Penyelesaian untuk x2,x3,...,xn: for i = 2 : n, x(i, 1) = A(i, 1); for j = 1 : (i-1),
x(i, 1) = x(i, 1) + (A(i, j+1)*x(j, 1)); m = j + 1;
end if(i~=n)
for k = 1 : (n-i),
x(i, 1) = x(i, 1) + (A(i, m+k)*x(m+k, 1)); end
end end
%Mencari beda relatif: for i = 1 : n,
C(i, 1) = abs(x(i,1) - w(i, 1)); end
%Mencari beda relatif tertinggi: M = max(C);
%Menganalisis kekonvergenan: while (M >= TOL)
%Menyimpan hasil penyelesaian x1,x2,...,xn: for i = 1 : n, w(i, 1) = x(i, 1); end %Penyelesaian untuk x1: for i = 1, x(i, 1) = A(i, 1); for j = 2 : n,
x(i, 1) = x(i, 1) + (A(i, j)*x(j, 1)); end end %Penyelesaian untuk x2,x3,...,xn: for i = 2 : n, x(i, 1) = A(i, 1); for j = 1 : (i-1),
x(i, 1) = x(i, 1) + (A(i, j+1)*x(j, 1)); m = j + 1;
end if(i~=n)
for k = 1 : (n-i),
x(i, 1) = x(i, 1) + (A(i, m+k)*x(m+k, 1)); end
end end
%Mencari beda relatif: for i = 1 : n,
C(i, j) = abs(x(i,1) - w(i, 1)); end
%Mencari beda relatif tertinggi: M = max(C);
end
disp('Penyelesaian sistem persamaan linear adalah'); x
Lampiran 3.2.1 Program untuk menyelesaikan persamaan Laplace dalam pelat persegi panjang dengan syarat batas Dirichlet
function LaplaceSikuDirichlet(G1,G2,G3,G4,a,b,n,m,TOL) %G1 = tepi batas bawah, G2 = tepi batas atas,
%G3 = tepi batas kiri, G4 = tepi batas kanan;
%0<= x <=a dan 0 <= y <= b; Ukuran grid n*m; TOL=toleransi= 0.00001; %Input adalah konstanta;
%Jarak-jarak grid dan nilai betha: h = a/(n-1); k = b/(m-1); B = h/k;
%Menentukan suhu-suhu pada titik-titik batas: Sum = 0; p = (2*m) + (2*(n-2));
for j = 1 : m,
u(1, j) = G3; u(n, j) = G4; Sum = Sum + u(1, j) + u(n, j); end
for i = 2 : (n-1),
u(i, 1) = G1; u(i, m) = G2; Sum = Sum + u(i, 1) + u(i, m); end
%Rata-rata suhu di titik-titik batas: ave = Sum/p;
%Menentukan suhu awal di titik-titik dalam&hasil pendekatan sebelumnya:
for i = 2 : (n-1), for j = 2 : (m-1),
u(i, j) = ave; w(i-1, j-1) = ave; end
end
%Menganalisis kekonvergenan: M = ave;
while (M >= TOL)
%Menentukan pendekatan beda hingga di titik-titik dalam: for i = 2 : (n-1),
for j = 2 : (m-1),
u(i, j) = (u(i+1, j) + u(i-1, j) + (B^2*u(i, j+1)) + (B^2*u(i, j-1)))/(2*(1+B^2));
end end
%Mencari kesalahan relatif di titik-titik dalam: for i = 2 : (n-1),
for j = 2 : (m-1),
C(i-1, j-1) = abs(u(i,j) - w(i-1, j-1)); end
end
%Mencari kesalahan relative tertinggi: M = max(max(C));
%Menyimpan hasil pendekatan beda hingga dalam matriks w: for i = 2 : (n-1),
for j = 2 : (m-1),
end end end
%Meletakkan penyelesaian sesuai dengan letak pada grid: for i = 1 : (n-2),
for j = 1 : (m-2),
uij(j, i) = u(i+1, m-j); end
end
%- Menambahkan suhu pada tepi bawah&atas dalam penyelesaian: Bwh = G1*ones(1, (n-2));
Ats = G2*ones(1, (n-2)); uij = [Ats;uij;Bwh];
%- Menambahkan suhu pada tepi kiri&kanan dalam penyelesaian: Kri = G3*ones(1, m);
Knn = G4*ones(1, m); uij=[Kri;uij';Knn]';
%#Diperoleh penyelesaian pendekatan sesuai dengan letak grid:
disp('Penyelesaian di titik-titik dalam pelat disertai dengan suhu batas:');
Lampiran 3.2.2 Program untuk menyelesaikan persamaan Laplace dalam pelat persegi panjang dengan syarat batas Neumann
function LaplaceSikuNeumann(G1,G2,G3,G4,a,b,n,m,TOL)
%Untuk tepi batas yang suhunya tidak diketahui masukkan '-';
%Jarak-jarak grid dan nilai betha: h = a/(n-1); k = b/(m-1); B = h/k;
%Menentukan suhu pada titik-titik batas: Sum = 0; p = 0;
if (G1 ~= '-')
C1 = zeros(0,0); for i = 1 : n,
u(i, 1) = G1; Sum = Sum + u(i, 1); p = p + 1; end
end
if (G2 ~= '-')
C2 = zeros(0,0); for i = 1 : n,
u(i, m) = G2; Sum = Sum + u(i, m); p = p + 1; end
end
if (G3 ~= '-')
C3 = zeros(0,0); for j = 1 : m,
u(1, j) = G3; Sum = Sum + u(1, j); p = p + 1; end
end
if (G4 ~= '-')
C4 = zeros(0,0); for j = 1 : m,
u(n, j) = G4; Sum = Sum + u(n, j); p = p + 1; end
end
%Rata-rata suhu di titik-titik batas: ave = Sum/p;
%Menentukan suhu awal di titik-titik dalam: for i = 2 : (n-1),
for j = 2 : (m-1),
u(i, j) = ave; w(i-1, j-1) = ave; end
end
%Menentukan suhu awal di titik siku: if (G1 == '-' && G3 == '-')
u(1, 1) = ave; w11 = ave; end
if (G2 == '-' && G3 == '-') u(1, m) = ave; w1m = ave; end
u(n, 1) = ave; wn1 = ave; end
if (G2 == '-' && G4 == '-') u(n, m) = ave; wnm = ave; end
%Menentukan suhu awal di titik-titik batas: if (G1 == '-')
for i = 2 : (n-1),
u(i, 1) = ave; w1(i-1, 1) = ave; end
end
if (G2 == '-')
for i = 2 : (n-1),
u(i, m) = ave; w2(i-1, 1) = ave; end
end
if (G3 == '-')
for j = 2 : (m-1),
u(1, j) = ave; w3(1, j-1) = ave; end
end
if (G4 == '-')
for j = 2 : (m-1),
u(n, j) = ave; w4(1, j-1) = ave; end
end
%Menentukan kesalahan retatif tertinggi awal: M = ave;
%Menganalisis kekonvergenan: while (M >= TOL)
%Menentukan pendekatan beda hingga, kesalahan relatif dan menyimpan hasil pendekatan di titik-titik siku:
C11 = zeros(0); C1m = zeros(0); Cn1 = zeros(0); Cnm = zeros(0); if (G1 == '-' && G3 == '-')
u(1, 1) = (2*B^2*u(1, 2) + 2*u(2, 1))/(2*(1+B^2)); C11= abs(u(1, 1) - w11); w11 = u(1, 1);
end
if (G2 == '-' && G3 == '-')
u(1, m) = (2*B^2*u(1, m-1) + 2*u(2, m))/(2*(1+B^2)); C1m = abs(u(1, m) - w1m); w1m = u(1, m);
end
if (G1 == '-' && G4 == '-')
u(n, 1) = (2*u(n-1, m) + 2*B^2*u(n, 2))/(2*(1+B^2)); Cn1 = abs(u(n, 1) - wn1); wn1 = u(n, 1);
end
if (G2 == '-' && G4 == '-')
u(n, m) = (2*u(n-1, m) + 2*B^2*u(n, m-1))/(2*(1+B^2)); Cnm = abs(u(n, m) - wnm); wnm = u(n, m);
end
%Menentukan pendekatan beda hingga, kesalahan relatif dan menyimpan hasil pendekatan di titik-titik batas:
if (G1 == '-')
for i = 2 : (n-1),
u(i, 1) = (u(i+1, 1) + u(i-1, 1) + (2*B^2*u(i, 2)))/(2*(1+B^2)); C1(i-1, 1) = abs(u(i,1) - w1(i-1, 1));
w1(i-1, 1) = u(i, 1); end
end
if (G2 == '-')
for i = 2 : (n-1),
u(i, m) = (u(i+1, m) + u(i-1, m) +
(2*B^2*u(i, m-1)))/(2*(1+B^2)); C2(i-1, 1) = abs(u(i,m) - w2(i-1, 1));
w2(i-1, 1) = u(i, m); end
end
if (G3 == '-')
for j = 2 : (m-1),
u(1, j) = (2*u(2, j) + (B^2*u(1, j+1)) +
(B^2*u(1, j-1)))/(2*(1+B^2)); C3(1, j-1) = abs(u(1,j) - w3(1, j-1)); w3(1, j-1) = u(1, j); end end if (G4 == '-') for j = 2 : (m-1),
u(n, j) = (2*u(n-1, j) + (B^2*u(n, j+1)) + (B^2*u(n, j-1)))/(2*(1+B^2)); C4(1, j-1) = abs(u(n,j) - w4(1, j-1));
w4(1, j-1) = u(n, j); end
end
%Menentukan pendekatan beda hingga, kesalahan relatif dan menyimpan hasil pendekatan di titik-titik dalam:
for i = 2 : (n-1), for j = 2 : (m-1),
u(i, j) = (u(i+1, j) + u(i-1, j) + (B^2*u(i, j+1)) + (B^2*u(i, j-1)))/(2*(1+B^2)); C(i-1, j-1) = abs(u(i,j) - w(i-1, j-1));
w(i-1, j-1) = u(i, j); end
end
%Mencari beda relatif tertinggi:
maks = [max(max(C)) max(C1) max(C2) max(C3) max(C4) C11 C1m Cn1 Cnm];
M = max(maks); end
%Meletakkan penyelesaian sesuai dengan letak pada grid: for i = 1 : (n-2),
for j = 1 : (m-2),
uij(j, i) = u(i+1, m-j); end
end
disp('Penyelesaian di titik-titik dalam:'); uij
%Penyelesaian di titik-titik pada tepi batas yang tidak diketahui: if (G1=='-')
for i =2 : (n-1),
u1(1, i-1) = u(i, 1); end
disp('Penyelesaian di titik-titik pada tepi batas bawah:'); u1
end
if (G2=='-')
for i =2 : (n-1),
u2(1, i-1) = u(i, m); end
disp('Penyelesaian di titik-titik pada tepi batas atas:'); u2 end if (G3=='-') for j =2 : (m-1), u3(j-1, 1) = u(1, (m+1)-j); end
disp('Penyelesaian di titik-titik pada tepi batas kiri:'); u3 end if (G4=='-') for j = 2 : (m-1), u4(j-1, 1) = u(n, (m+1)-j); end
disp('Penyelesaian di titik-titik pada tepi batas kanan:'); u4
end
if (G1 == '-' && G3 == '-')
disp('Penyelesaian di titik siku tepi bawah & kiri:'); u(1, 1)
end
if (G2 == '-' && G3 == '-')
disp('Penyelesaian di titik siku tepi kiri & atas:'); u(1, m)
end
if (G1 == '-' && G4 == '-')
disp('Penyelesaian di titik siku tepi bawah & kanan:'); u(n, 1)
end
if (G2 == '-' && G4 == '-')
disp('Penyelesaian di titik siku tepi atas & kanan:'); u(n, m)
Lampiran 3.2.3 Program untuk menyelesaikan persamaan Laplace dalam pelat cakram dengan syarat batas Dirichlet
function LaplaceKutubDirichlet(G1,G2,G3,G4,r,n,m,TOL) %Diasumsikan:
%- G1 = tepi batas 0 <= tetha < pi/2; %- G2 = tepi batas pi/2 <= tetha < pi; %- G3 = tepi batas -pi <= tetha < -pi/2; %- G4 = tepi batas -pi/2 <= tetha <0;
%Ukuran grid n*m, dimana n >= 3 & m= 4, 8, 12, ...; %TOL = toleransi = 0.00001;
%Input adalah konstanta;
%Jarak-jarak grid&nilai betha: h = r/n; k = 2*pi/m; A = r/h;
%Menentukan suhu-suhu pada titik-titik batas: Sum = 0; p = m;
for j = 1 : (m/4),
U(n, j) = G1; U(n, (m/4)+j) = G2;
U(n, (2*m/4)+j) = G3; U(n, (3*m/4)+j) = G4; Sum = Sum + U(n, j) + U(n, (m/4)+j) +
U(n, (2*m/4)+j) + U (n, (3*m/4)+j); end
%Rata-rata suhu di titik-titik batas: ave = Sum/p;
%Menentukan suhu awal di titik-titik dalam: for i = 1 : (n-1),
for j = 1 : m,
U(i, j) = ave; W(i, j) = ave; end
end M = ave;
%Menganalisis kekonvergenan: while (M >= TOL)
%Menentukan pendekatan beda hingga di titik-titik dalam U(1,j): U(1, 1) = (2*U(2, 1) + (1/(A^2)*(k^2))*U(1, 2) +
(1/(A^2)*(k^2))*U(1, m))/(2*(1+(A^2*k^2))); for j = 2 : (m-1),
U(1, j) = (2*U(2, j) + (1/(A^2)*(k^2))*U(1, j+1) + (1/(A^2)*(k^2))*U(1, j-1))/(2*(1+(A^2*k^2))); end
U(1, m) = (2*U(2, m) + (1/(A^2)*(k^2))*U(1, 1) +
(1/(A^2)*(k^2))*U(1, m-1))/(2*(1+(A^2*k^2))); %Menentukan pendekatan beda hingga
di titik-titik dalam U(2,j)-U(n-1,j): for i = 2 : (n-1),
U(i, 1) = ((1+(1/2*A))*U(i+1, 1) +
(1-(1/2*A))*U(i-1, 1) + (1/(A^2*k^2))*U(i, 2) + (1/(A^2*k^2))*U(i, m))/(2*(1+(A^2*k^2))); for j = 2 : (m-1),
U(i, j) = ((1+(1/2*A))*U(i+1, j) + (1-(1/2*A))*U(i-1, j) + (1/(A^2*k^2))*U(i, j+1) + (1/(A^2*k^2))*U(i, j-1))/(2*(1+(A^2*k^2))); end U(i, m) = ((1+(1/2*A))*U(i+1, m) + (1-(1/2*A))*U(i-1, m) + (1/(A^2*k^2))*U(i, 1) + (1/(A^2*k^2))*U(i, m-1))/(2*(1+(A^2*k^2))); end
%Mencari beda relatif: for i = 1 : (n-1), for j = 1 : m,
C(i, j) = abs(U(i, j) - W(i, j)); end
end
%Mencari beda relatif tertinggi: M = max(max(C));
%Menyimpan hasil pendekatan beda hingga ke dalam matriks W: for i = 1 : (n-1), for j = 1 : m, W(i, j) = U(i, j); end end end
%Meletakkan penyelesaian sesuai dengan letak pada grid: for i = 1 : (n-1),
for j = 1 : m,
Uij(j, i) = U(i, (m+1)-j); end
end
%Memasukkan suhu di titik batas pada penyelesaian; Bts=zeros(0,0);
for j = 1 : m,
Bts = [Bts U(n, (m+1)-j)]; end
Uij=[Uij';Bts]';
disp('Penyelesaian pendekatan di titik-titik dalam disertai dengan suhu pada batas:');
Lampiran 3.2.4 Program untuk menyelesaikan persamaan Laplace dalam pelat cakram dengan syarat batas Neumann
function LaplaceKutubNeumann(G1,G2,G3,G4,r,n,m,TOL) %Tepi batas yang tidak diketahui masukkan '-';
%Jarak-jarak grid&nilai betha: h = r/n; k = 2*pi/m; A = r/h;
%Menentukan suhu-suhu pada titik-titik batas: Sum = 0; p = 0;
for j = 1 : (m/4), if (G1 ~= '-')
U(n, j) = G1; Sum = Sum + U(n, j); p = p + 1; end
if (G2 ~= '-')
U(n, (m/4)+j) = G2; Sum = Sum + U(n, (m/4)+j); p = p + 1; end
if(G3 ~= '-')
U(n, (2*m/4)+j) = G3; Sum = Sum + U(n, (2*m/4)+j); p= p + 1; end
if (G4 ~= '-')
U(n, (3*m/4)+j) = G4; Sum = Sum + U(n, (3*m/4)+j); p= p + 1; end
end
%Rata-rata suhu di titik-titik batas: ave = Sum/p;
%Menentukan suhu awal di titik-titik dalam: for i = 1 : (n-1),
for j = 1 : m,
U(i, j) = ave; W(i, j) = ave; end
end
%Menentukan suhu awal di titik-titik batas: for j = 1 : (m/4),
if (G1 == '-')
U(n, j) = ave; W1(1, j) = ave; end
if (G2 == '-')
U(n, (m/4)+j) = ave; W2(1, j) = ave; end
if(G3 == '-')
U(n, (2*m/4)+j) = ave; W3(1, j) = ave; end
if (G4 == '-')
U(n, (3*m/4)+j) = ave; W4(1, j) = ave; end
end
%Menentukan beda relatif tertinggi awal: M = ave;
while (M >= TOL)
%Menentukan pendekatan beda hingga, kesalahan relatif&simpan hasil pendekatan di titik batas U(n,j):
C1 = zeros(0); C2 = zeros(0); C3 = zeros(0); C4 = zeros(0); if (G1 == '-')
U(n, 1) = (2*U(n-1, 1) + (1/(A^2)*(k^2))*U(n, 2) + (1/(A^2)*(k^2))*U(n, m))/(2*(1+(A^2*k^2))); C1(1, 1) = abs(U(n, 1) - W1(1, 1));
W1(1, 1) = U(n, 1); for j = 2 : (m/4),
U(n, j) = (2*U(n-1, j) + (1/(A^2)*(k^2))*U(n, j+1) + (1/(A^2)*(k^2))*U(n, j-1))/(2*(1+(A^2*k^2))); C1(1, j) = abs(U(n, j) - W1(1, j)); W1(1, j) = U(n, j); end end if (G2 == '-') for j = 1 : (m/4), U(n, (m/4)+j) = (2*U(n-1, (m/4)+j) + (1/(A^2)*(k^2))*U(n, (m/4)+j+1) + (1/(A^2)*(k^2))*U(n, (m/4)+j-1))/ (2*(1+(A^2*k^2))); C2(1, j) = abs(U(n, (m/4)+j) - W2(1, j)); W2(1, j) = U(n, (m/4)+j); end end if(G3 == '-') for j = 1 : (m/4), U(n, (2*m/4)+j) = (2*U(n-1, (2*m/4)+j) + (1/(A^2)*(k^2))*U(n, (2*m/4)+j+1) + (1/(A^2)*(k^2))*U(n, (2*m/4)+j-1))/ (2*(1+(A^2*k^2))); C3(1, j) = abs(U(n, (2*m/4)+j) - W3(1, j)); W3(1, j) = U(n, (2*m/4)+j); end end if (G4 == '-') for j = 1 : (m/4)-1, U(n, (3*m/4)+j) = (2*U(n-1, (3*m/4)+j) + (1/(A^2)*(k^2))*U(n, (3*m/4)+j+1) + (1/(A^2)*(k^2))*U(n, (3*m/4)+j-1))/ (2*(1+(A^2*k^2))); C4(1, j) = abs(U(n, (3*m/4)+j) - W4(1, j)); W4(1, j) = U(n, (3*m/4)+j); end
U(n, m) = (2*U(n-1, m) + (1/(A^2)*(k^2))*U(n, 1) + (1/(A^2)*(k^2))*U(n, m-1))/(2*(1+(A^2*k^2))); C4(1, m/4) = abs(U(n, (3*m/4)+j) - W4(1, m/4));
W4(1, m/4) = U(n, (3*m/4)+j); end
U(1, 1) = (2*U(2, 1) + (1/(A^2)*(k^2))*U(1, 2) +
(1/(A^2)*(k^2))*U(1, m))/(2*(1+(A^2*k^2))); C(1, 1) = abs(U(1, 1) - W(1, 1)); W(1, 1) = U(1, 1); for j = 2 : (m-1),
U(1, j) = (2*U(2, j) + (1/(A^2)*(k^2))*U(1, j+1) + (1/(A^2)*(k^2))*U(1, j-1))/(2*(1+(A^2*k^2))); C(1, j) = abs(U(1, j) - W(1, j)); W(1, j) = U(1, j); end
U(1, m) = (2*U(2, m) + (1/(A^2)*(k^2))*U(1, 1) +
(1/(A^2)*(k^2))*U(1, m-1))/(2*(1+(A^2*k^2))); C(1, m) = abs(U(1, m) - W(1, m)); W(1, m) = U(1, m);
%Menentukan pendekatan beda hingga, kesalahan relatif dan menyimpan hasil pendekatan di titik dalam U(2,j)-U(n-1,j): for i = 2 : (n-1),
U(i, 1) = ((1+(1/2*A))*U(i+1, 1) +
(1-(1/2*A))*U(i-1, 1) + (1/(A^2*k^2))*U(i, 2) + (1/(A^2*k^2))*U(i, m))/(2*(1+(A^2*k^2))); C(i, 1) = abs(U(i, 1) - W(i, 1)); W(i, 1) = U(i, 1);
for j = 2 : (m-1),
U(i, j) = ((1+(1/2*A))*U(i+1, j) +
(1-(1/2*A))*U(i-1, j)+(1/(A^2*k^2))*U(i, j+1)+ (1/(A^2*k^2))*U(i, j-1))/(2*(1+(A^2*k^2))); C(i, j) = abs(U(i, j) - W(i, j)); W(i, j) = U(i, j); end
U(i, m) = ((1+(1/2*A))*U(i+1, m) +
(1-(1/2*A))*U(i-1, m) + (1/(A^2*k^2))*U(i, 1) + (1/(A^2*k^2))*U(i, m-1))/(2*(1+(A^2*k^2))); C(i, m) = abs(U(i, m) - W(i, m)); W(i, m) = U(i, m);
end
%Mencari beda relatif tertinggi:
maks = [ max(max(C)) max(C1) max(C2) max(C3) max(C4)]; M = max(maks);
end
%Meletakkan penyelesaian sesuai dengan letak pada grid: for i = 1 : (n-1),
for j = 1 : m,
Uij(j, i) = U(i, (m+1)-j); end
end
%Memasukkan suhu di titik batas pada penyelesaian; Bts=zeros(0,0);
for j = 1 : m,
Bts = [Bts U(n, (m+1)-j)]; end
Uij=[Uij';Bts]';
disp('Penyelesaian pendekatan di titik-titik dalam dan batas disertai dengan suhu yang diketahui pada batas:');
Lampiran 3.3.1 Program untuk menyelesaikan persamaan Poisson dalam pelat persegi panjang dengan syarat batas Dirichlet pada Contoh 3.3.1
function Contoh331(G1,G2,G3,G4,a,b,n,m,TOL) %G1 = tepi batas bawah, G2 = tepi batas atas, %G3 = tepi batas kiri, G4 = tepi batas kanan;
%0<= x <=a dan 0 <= y <= b; Ukuran grid n*m; TOL=toleransi= 0.00001; %Input adalah konstanta;
%Masukkan fungsi F((i-1)h, (j-1)k) ke dalam fungsi f(x, y) = -xy dari persamaan Poisson.
%Jarak-jarak grid dan nilai betha: h = a/(n-1); k = b/(m-1); B = h/k; %Menentukan suhu di titik-titik batas: Sum = 0; p = (2*m) + (2*(n-2));
for j = 1 : m,
u(1, j) = G3; u(n, j) = G4; Sum = Sum + u(1, j) + u(n, j); end
for i = 2 : (n-1),
u(i, 1) = G1; u(i, m) = G2; Sum = Sum + u(i, 1) + u(i, m); end
%Rata-rata suhu di titik-titik batas: ave = Sum/p;
%Menentukan suhu awal di titik-titik dalam: for i = 2 : (n-1),
for j = 2 : (n-1),
u(i, j) = ave; w(i-1, j-1) = ave; end
end
%Menentukan beda relatif tertinggi awal: M = ave;
%Menganalisis kekonvergenan: while (M >= TOL)
%Menentukan pendekatan beda hingga di titik-titik dalam: for i = 2 : (n-1),
for j = 2 : (m-1),
u(i, j) = (u(i+1, j) + u(i-1, j) +
(B^2*u(i, j+1)) + (B^2*u(i, j-1)) –
(h^2*(-((i-1)*h)*((j-1)*k))))/(2*(1+B^2)); end
end
%Mencari kesalahan relatif: for i = 2 : (n-1),
for j = 2 : (m-1),
C(i-1, j-1) = abs(u(i,j) - w(i-1, j-1)); end
end
%Mencari kesalahan relatif tertnggi: M = max(max(C));
%Menyimpan hasil pendekatan beda hingga ke dalam matriks w: for i = 2 : (n-1), for j = 2 : (m-1), w(i-1, j-1) = u(i, j); end end end
%Meletakkan penyelesaian sesuai dengan letak pada grid: for i = 1 : (n-2),
for j = 1 : (m-2),
uij(j, i) = u(i+1, m-j); end
end
%Menambahkan suhu pada tepi bawah&atas dalam penyelesaian: Bwh = zeros(0,0); Ats = zeros(0,0);
for i = 2 : (n-1),
Bwh = [Bwh G1]; Ats = [Ats G2]; end
uij = [Ats;uij;Bwh];
%Menambahkan suhu pada tepi kiri&kanan dalam penyelesaian: Kri = zeros(0,0); Knn = zeros(0,0);
for j = 1 : m,
Kri = [Kri G3]; Knn = [Knn G4]; end
uij=[Kri;uij';Knn]';
%Diperoleh penyelesaian pendekatan sesuai dengan letak grid:
disp('Penyelesaian pendekatan di titik-titik dalam disertai dengan suhu-suhu batas');
Lampiran 3.3.2 Program untuk menyelesaikan persamaan Poisson dalam pelat persegi panjang dengan syarat batas Neumann pada Contoh 3.3.2
function Contoh332(G1,G2,G3,G4,a,b,n,m,TOL)
%Nilai tepi batas yang tidak diketahui, masukkan '-';
%Masukkan fungsi F((i-1)h, (j-1)k) ke dalam fungsi f(x, y) = -xy dari persamaan Poisson.
%Jarak-jarak grid dan nilai betha: h = a/(n-1); k = b/(m-1); B = h/k;
%Memasukkan suhu-suhu pada titik-titik batas: Sum = 0; p = 0;
if (G1 ~= '-')
C1 = zeros(0,0); for i = 1 : n,
u(i, 1) = G1; Sum = Sum + u(i, 1); p = p + 1; end end if (G2 ~= '-') C2 = zeros(0,0); for i = 1 : n,
u(i, m) = G2; Sum = Sum + u(i, m); p = p + 1; end
end
if (G3 ~= '-')
C3 = zeros(0,0); for j = 1 : m,
u(1, j) = G3; Sum = Sum + u(1, j); p = p + 1; end
end
if (G4 ~= '-')
C4 = zeros(0,0); for j = 1 : m,
u(n, j) = G4; Sum = Sum + u(n, j); p = p + 1; end
end
%Rata-rata suhu di titik-titik batas: ave = Sum/p;
%Menentukan suhu awal di titik-titik dalam: for i = 2 : (n-1),
for j = 2 : (m-1),
u(i, j) = ave; w(i-1, j-1) = ave; end
end
%Menentukan suhu awal di titik siku: if (G1 == '-' && G3 == '-')
u(1, 1) = ave; w11 = ave; end
u(1, m) = ave; w1m = ave; end
if (G1 == '-' && G4 == '-') u(n, 1) = ave; wn1 = ave; end
if (G2 == '-' && G4 == '-') u(n, m) = ave; wnm = ave; end
%Menentukan suhu awal di titik-titik batas: if (G1 == '-')
for i = 2 : (n-1),
u(i, 1) = ave; w1(i-1, 1) = ave; end
end
if (G2 == '-')
for i = 2 : (n-1),
u(i, m) = ave; w2(i-1, 1) = ave; end
end
if (G3 == '-')
for j = 2 : (m-1),
u(1, j) = ave; w3(1, j-1) = ave; end
end
if (G4 == '-')
for j = 2 : (m-1),
u(n, j) = ave; w4(1, j-1) = ave; end
end
%Menentukan kesalahan relatif tertinggi awal: M = ave;
%Menganalisis kekonvergenan: while (M >= TOL)
%Menentukan pendekatan beda hingga,kesalahan relatif,& simpan hasil
%pendekatan di titik siku:
C11 = zeros(0); C1m = zeros(0); Cn1 = zeros(0); Cnm = zeros(0); if (G1 == '-' && G3 == '-')
u(1, 1) = (2*B^2*u(1, 2) + 2*u(2, 1) –
h^2*(-0*0))/(2*(1+B^2)); C11= abs(u(1, 1) - w11); w11 = u(1, 1);
end
if (G2 == '-' && G3 == '-')
u(1, m) = (2*B^2*u(1, m-1) + 2*u(2, m) – h^2*(-0*k*(m-1)))/(2*(1+B^2)); C1m = abs(u(1, m) - w1m); w1m = u(1, m);
end
if (G1 == '-' && G4 == '-')
u(n, 1) = (2*u(n-1, m) + 2*B^2*u(n, 2) – h^2*(-h*(n-1)*0))/(2*(1+B^2)); Cn1 = abs(u(n, 1) - wn1); wn1 = u(n, 1);
if (G2 == '-' && G4 == '-')
u(n, m) = (2*u(n-1, m) + 2*B^2*u(n, m-1) –
h^2*(-h*(n-1)*k(m-1)))/(2*(1+B^2)); Cnm = abs(u(n, m) - wnm); wnm = u(n, m);
end
%Menentukan pendekatan beda hingga,,kesalahan relatif,& simpan hasil pendekatan di titik-titik batas:
C1 = zeros(0); C2 = zeros(0); C3 = zeros(0); C4 = zeros(0); if (G1 == '-')
for i = 2 : (n-1),
u(i, 1) = (u(i+1, 1) + u(i-1, 1) + (2*B^2*u(i, 2)) - h^2*(-(h*(i-1))*(k*(1-1))))/(2*(1+B^2)); C1(i-1, 1)=abs(u(i,1) - w1(i-1, 1)); w1(i-1, 1)=u(i, 1); end
end
if (G2 == '-')
for i = 2 : (n-1),
u(i, m) = (u(i+1, m) + u(i-1, m) + (2*B^2*u(i, m-1)) - h^2*(-(h*(i-1))*(k*(m-1))))/(2*(1+B^2)); C2(i-1, 1)=abs(u(i,m) - w2(i-1, 1)); w2(i-1, 1)=u(i, m); end
end
if (G3 == '-')
for j = 2 : (m-1),
u(1, j) = (2*u(2, j) + (B^2*u(1, j+1))+(B^2*u(1, j-1))- h^2*(-(h*(1-1))*(k*(j-1))))/(2*(1+B^2)); C3(1, j-1)=abs(u(1,j) - w3(1, j-1)); w3(1, j-1)=u(1, j); end end if (G4 == '-') for j = 2 : (m-1),
u(n, j) = (2*u(n-1, j)+(B^2*u(n, j+1))+(B^2*u(n, j-1))- h^2*(-(h*(n-1))*(k*(j-1))))/(2*(1+B^2)); C4(1, j-1)=abs(u(n, j)-w4(1, j-1)); w4(1, j-1)=u(n, j); end
end
%Menentukan pendekatan beda hingga,kesalahan relatif, dan menyimpan hasil pendekatan di titik-titik dalam:
for i = 2 : (n-1), for j = 2 : (m-1),
u(i, j) = (u(i+1, j) + u(i-1, j) +
(B^2*u(i, j+1)) + (B^2*u(i, j-1)) –
h^2*(-(h*(i-1))*(k*(j-1))))/(2*(1+B^2)); C(i-1, j-1)=abs(u(i,j)-w(i-1, j-1));w(i-1, j-1)=u(i, j); end
end
%Mencari beda relatif tertinggi:
maks = [max(max(C)) max(C1) max(C2) max(C3) max(C4) C11 C1m Cn1 Cnm];
M = max(maks); end
for i = 1 : (n-2), for j = 1 : (m-2),
uij(j, i) = u(i+1, m-j); end
end
disp('Penyelesaian di titik-titik dalam:'); uij
%Penyelesaian di titik-titik pada tepi batas yang tidak diketahui: if (G1=='-')
for i =2 : (n-1),
ui1(1, i-1) = u(i, 1); end
disp('Penyelesaian di titik-titik pada tepi batas bawah:'); ui1
end
if (G2=='-')
for i =2 : (n-1),
uim(1, i-1) = u(i, m); end
disp('Penyelesaian di titik-titik pada tepi batas atas:'); uim end if (G3=='-') for j =2 : (m-1), u1j(j-1, 1) = u(1, (m+1)-j); end
disp('Penyelesaian di titik-titik pada tepi batas kiri:'); u1j end if (G4=='-') for j =2 : (m-1), unj(j-1, 1) = u(n, (m+1)-j); end
disp('Penyelesaian di titik-titik pada tepi batas kanan:'); unj
end
if (G1 == '-' && G3 == '-')
disp('Penyelesaian di titik siku tepi bawah & kiri:'); u11 = u(1, 1)
end
if (G2 == '-' && G3 == '-')
disp('Penyelesaian di titik siku tepi kiri & atas:'); u1m = u(1, m)
end
if (G1 == '-' && G4 == '-')
disp('Penyelesaian di titik siku tepi bawah & kanan:'); un1 = u(n, 1)
end
if (G2 == '-' && G4 == '-')
disp('Penyelesaian di titik siku tepi atas & kanan:'); unm = u(n, m)
Lampiran 3.3.3 Program untuk menyelesaikan persamaan Poisson dalam pelat cakram dengan syarat batas Dirichlet pada Contoh 3.3.3
function Contoh333(G1,G2,G3,G4,r,n,m,TOL) %Diasumsikan:
%- G1 = tepi batas 0 <= tetha < pi/2; %- G2 = tepi batas pi/2 <= tetha < pi; %- G3 = tepi batas -pi <= tetha < -pi/2; %- G4 = tepi batas -pi/2 <= tetha <0;
%Ukuran grid n*m, dimana n >= 3 & m= 4, 8, 12, ...; %TOL = toleransi = 0.00001;
%Input adalah konstanta;
%Memasukkan F(h*i, k*(j-1)) ke dalam fungsi f(x, y) = sin(tetha) dari persamaan Poisson.
%Jarak-jarak grid dan nilai betha: h = r/n; k = 2*pi/m; A = r/h;
%Menentukan suhu di titik-titik batas: Sum = 0; p = m;
for j = 1 : (m/4),
U(n, j) = G1; U(n, (m/4)+j) = G2; U(n, (2*m/4)+j) = G3;
U(n, (3*m/4)+j) = G4;
Sum = Sum + U(n, j) + U(n, (m/4)+j) +
U(n, (2*m/4)+j) + U (n, (3*m/4)+j); end
%Rata-rata suhu di titik-titik batas: ave = Sum/p;
%Menentukan suhu awal di titik-titik dalam: for i = 1 : (n-1),
for j = 1 : m,
U(i, j) = ave; W(i, j) = ave; end
end
%Menentukan kesalahan relatif tertinggi awal: M = ave;
%Menganalisis kekonvergenan: while (M >= TOL)
%Menentukan pendekatan beda hingga di titik-titik dalam U(1,j): U(1, 1) = (2*U(2, 1) + (1/(A^2)*(k^2))*U(1, 2) +
(1/(A^2)*(k^2))*U(1, m) – (h^2*sin(k*(1-1))))/(2*(1+(A^2*k^2))); for j = 2 : (m-1),
U(1, j) = (2*U(2, j) + (1/(A^2)*(k^2))*U(1, j+1) + (1/(A^2)*(k^2))*U(1, j-1) - (h^2*sin(k*(j-1))))/(2*(1+(A^2*k^2))); end
U(1, m) = (2*U(2, m) + (1/(A^2)*(k^2))*U(1, 1) +
(1/(A^2)*(k^2))*U(1, m-1) - (h^2*sin(k*(m-1))))/(2*(1+(A^2*k^2)));
%Menentukan pendekatan beda hingga di titik-titik dalam U(2,j)-U(n-1,j): for i = 2 : (n-1),
U(i, 1) = ((1+(1/2*A))*U(i+1, 1) + (1-(1/2*A))*U(i-1, 1)+ (1/(A^2*k^2))*U(i, 2) + (1/(A^2*k^2))*U(i, m)- (h^2*sin(k*(1-1))))/(2*(1+(A^2*k^2))); for j = 2 : (m-1),
U(i, j) = ((1+(1/2*A))*U(i+1, j)+(1-(1/2*A))*U(i-1, j)+ (1/(A^2*k^2))*U(i, j+1)+(1/(A^2*k^2))*U(i, j-1)- (h^2*sin(k*(j-1))))/(2*(1+(A^2*k^2))); end
U(i, m) = ((1+(1/2*A))*U(i+1, m) + (1-(1/2*A))*U(i-1, m)+ (1/(A^2*k^2))*U(i, 1) + (1/(A^2*k^2))*U(i, m-1)- (h^2*sin(k*(m-1))))/(2*(1+(A^2*k^2))); end
%Mencari beda relatif tertinggi: for i = 1 : (n-1),
for j = 1 : m,
C(i, j) = abs(U(i, j) - W(i, j)); end
end
%Mencari beda relatif tertinggi: M = max(max(C));
%Menyimpan hasil pendekatan ke dalam matriks W; for i = 1 : (n-1), for j = 1 : m, W(i, j) = U(i, j); end end end
%Meletakkan penyelesaian sesuai dengan letak pada grid: for i = 1 : (n-1),
for j = 1 : m,
Uij(j, i) = U(i, (m+1)-j); end
end
%Memasukkan suhu di titik batas pada penyelesaian; Bts=zeros(0,0);
for j = 1 : m,
Bts = [Bts U(n, (m+1)-j)]; end
Uij=[Uij';Bts]';
disp('Penyelesaian pendekatan di titik-titik dalam disertai dengan suhu pada batas:');
Lampiran 3.3.4 Program untuk menyelesaikan persamaan Poisson dalam pelat cakram dengan syarat batas Neumann pada Contoh 3.3.4
function Contoh334(G1,G2,G3,G4,r,n,m,TOL) %Tepi batas yang tidak diketahui masukkan '-';
%Memasukkan F(h*i, k*(j-1)) ke dalam fungsi f(x, y) = sin(tetha) dari persamaan Poisson.
%Jarak-jarak grid dan nilai betha: h = r/n; k = 2*pi/m; A = r/h;
%Menentukan suhu di titik-titik batas: Sum = 0; p = 0;
for j = 1 : (m/4), if (G1 ~= '-')
U(n, j) = G1; Sum = Sum + U(n, j); p = p + 1; end
if (G2 ~= '-')
U(n, (m/4)+j) = G2; Sum = Sum + U(n, (m/4)+j); p = p + 1; end
if(G3 ~= '-')
U(n, (2*m/4)+j) = G3; Sum = Sum + U(n, (2*m/4)+j); p= p + 1; end
if (G4 ~= '-')
U(n, (3*m/4)+j) = G4; Sum = Sum + U(n, (3*m/4)+j); p= p + 1; end
end
%Rata-rata suhu di titik-titik batas: ave = Sum/p;
%Menentukan suhu awal di titik-titik dalam: for i = 1 : (n-1),
for j = 1 : m,
U(i, j) = ave; W(i, j) = ave; end
end
%Menentukan suhu awal di titik-titik batas: for j = 1 : (m/4),
if (G1 == '-')
U(n, j) = ave; W1(1, j) = ave; end
if (G2 == '-')
U(n, (m/4)+j) = ave; W2(1, j) = ave; end
if(G3 == '-')
U(n, (2*m/4)+j) = ave; W3(1, j) = ave; end
if (G4 == '-')
U(n, (3*m/4)+j) = ave; W4(1, j) = ave; end
end
M = ave;
%Menganalisis kekonvergenan: while (M >= TOL)
%Menentukan pendekatan beda hingga, kesalahan relatif&simpan hasil pendekatan di titik batas U(n,j):
C1 = zeros(0); C2 = zeros(0); C3 = zeros(0); C4 = zeros(0); if (G1 == '-')
U(n, 1) = (2*U(n-1, 1) + (1/(A^2)*(k^2))*U(n, 2) + (1/(A^2)*(k^2))*U(n, m) - (h^2*sin(k*(1-1))))/(2*(1+(A^2*k^2))); C1(1, 1) = abs(U(n, 1) - W1(1, 1)); W1(1, 1) = U(n, 1); for j = 2 : (m/4),
U(n, j) = (2*U(n-1, j) + (1/(A^2)*(k^2))*U(n, j+1) + (1/(A^2)*(k^2))*U(n, j-1) – (h^2*sin(k*(j-1))))/(2*(1+(A^2*k^2))); C1(1, j)=abs(U(n, j) - W1(1, j)); W1(1, j) =U(n, j); end end if (G2 == '-') for j = 1 : (m/4), U(n, (m/4)+j) = (2*U(n-1, (m/4)+j) + (1/(A^2)*(k^2))*U(n, (m/4)+j+1) + (1/(A^2)*(k^2))*U(n, (m/4)+j-1) - (h^2*sin(k*(m/4+j-1))))/(2*(1+(A^2*k^2))); C2(1,j)=abs(U(n,(m/4)+j)-W2(1,j)); W2(1,j)=U(n,(m/4)+j); end end if(G3 == '-') for j = 1 : (m/4), U(n,(2*m/4)+j)=(2*U(n-1, (2*m/4)+j)+ (1/(A^2)*(k^2))*U(n, (2*m/4)+j+1)+ (1/(A^2)*(k^2))*U(n, (2*m/4)+j-1)- (h^2*sin(k*(2*m/4+j-1))))/(2*(1+(A^2*k^2))); C3(1,j)=abs(U(n,(2*m/4)+j)-W3(1,j)); W3(1,j)=U(n,(2*m/4)+j); end end if (G4 == '-') for j = 1 : (m/4)-1, U(n, (3*m/4)+j)=(2*U(n-1, (3*m/4)+j)+ (1/(A^2)*(k^2))*U(n, (3*m/4)+j+1)+ (1/(A^2)*(k^2))*U(n, (3*m/4)+j-1)- (h^2*sin(k*(3*m/4+j-1))))/(2*(1+(A^2*k^2))); C4(1, j) = abs(U(n, (3*m/4)+j) - W4(1, j)); W4(1, j) = U(n, (3*m/4)+j); end
U(n, m) = (2*U(n-1, m) + (1/(A^2)*(k^2))*U(n, 1) + (1/(A^2)*(k^2))*U(n, m-1) –
(h^2*sin(k*(m-1))))/(2*(1+(A^2*k^2))); C4(1, m/4)=abs(U(n, m) - W4(1, m/4)); W4(1, m/4) = U(n, m); end
menyimpan hasil pendekatan di titik dalam U(1,j): U(1, 1) = (2*U(2, 1) + (1/(A^2)*(k^2))*U(1, 2) + (1/(A^2)*(k^2))*U(1, m) –
(h^2*sin(k*(1-1))))/(2*(1+(A^2*k^2))); C(1, 1) = abs(U(1, 1) - W(1, 1)); W(1, 1) = U(1, 1);
for j = 2 : (m-1),
U(1, j) = (2*U(2, j) + (1/(A^2)*(k^2))*U(1, j+1) + (1/(A^2)*(k^2))*U(1, j-1) –
(h^2*sin(k*(j-1))))/(2*(1+(A^2*k^2))); C(1, j) = abs(U(1, j) - W(1, j)); W(1, j) = U(1, j);
end
U(1, m) = (2*U(2, m) + (1/(A^2)*(k^2))*U(1, 1) + (1/(A^2)*(k^2))*U(1, m-1) –
(h^2*sin(k*(m-1))))/(2*(1+(A^2*k^2))); C(1, m) = abs(U(1, m) - W(1, m)); W(1, m) = U(1, m);
%Menentukan pendekatan beda hingga, kesalahan relatif menyimpan hasil pendekatan di titik dalam U(2,j)-U(n-1,j): for i = 2 : (n-1),
U(i, 1) = ((1+(1/2*A))*U(i+1, 1) + (1-(1/2*A))*U(i-1, 1)+ (1/(A^2*k^2))*U(i, 2) + (1/(A^2*k^2))*U(i, m)- (h^2*sin(k*(1-1))))/(2*(1+(A^2*k^2))); C(i, 1) = abs(U(i, 1) - W(i, 1)); W(i, 1) = U(i, 1);
for j = 2 : (m-1),
U(i, j)=((1+(1/2*A))*U(i+1, j)+(1-(1/2*A))*U(i-1, j)+ (1/(A^2*k^2))*U(i, j+1)+(1/(A^2*k^2))*U(i, j-1)- (h^2*sin(k*(j-1))))/(2*(1+(A^2*k^2))); C(i, j) = abs(U(i, j) - W(i, j)); W(i, j) = U(i, j); end
U(i, m)=((1+(1/2*A))*U(i+1, m)+(1-(1/2*A))*U(i-1, m)+ (1/(A^2*k^2))*U(i, 1) + (1/(A^2*k^2))*U(i, m-1)- (h^2*sin(k*(m-1))))/(2*(1+(A^2*k^2))); C(i, m) = abs(U(i, m) - W(i, m)); W(i, m) = U(i, m);
end
%Mencari beda relatif tertinggi:
maks = [ max(max(C)) max(C1) max(C2) max(C3) max(C4)]; M = max(maks);
end
%Meletakkan penyelesaian sesuai dengan letak pada grid: for i = 1 : (n-1),
for j = 1 : m,
Uij(j, i) = U(i, (m+1)-j); end
end
%Memasukkan suhu di titik batas pada penyelesaian; Bts=zeros(0,0);
for j = 1 : m,
Bts = [Bts U(n, (m+1)-j)]; end
Uij=[Uij';Bts]';
disp('Penyelesaian pendekatan di titik-titik dalam dan batas disertai dengan suhu yang diketahui pada batas:');