• Tidak ada hasil yang ditemukan

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:');

Dokumen terkait