( )
[
( )
] [
( )
]
Dengan nilai P = 10; gamma (g) = 0,2; T = 1, sehingga program akan
diproses ketika t < 1.
Dari solusi umum tersebut bisa diketahui nilai C (matriks) secara analitik
dan nilai errornya.
0
1
2
3
4
5
6
7
8
9
0 1 2 3 4 5 6 7
E
r
r
o
r
x
Grafik Hubungan Error Terhadap x
t = 0
t = 1
Penggunaan skema eksplisit pada program memiliki syarat , sehingga
kecil. Oleh sebab itu, membutuhkan waktu yang lama untuk memroses
program eksplisit untuk mendapatkan nilai solusi umum (U).
2. Skema Implisit Pada Heat Equation
a. Listing Program
% Implicit scheme for Heat equation
close
clear
P = 10;
h = 0.2;
g = 0.2;
tau = g * h^2;
T = 1;
m = length(0:tau:T)
xl = 0;xr = 1;
x = xl:h:xr;
n = length(x);
% initial condition
u = x;
%u(1:round(n/2))=.5 ;u(round(n/2):end)=0;
U = u;
t = 0;
ctr = 0;
set(figure,'backingstore','off','doublebuffer','on');
u0 =u;
Temp = zeros(length(0:tau:T),n);
Temp(1,:) = u0;
A=zeros(n-2,n-2)
for i=1:n-2
if (i==1)
A (i,i)=1+g
A (i,i+1)=-g
elseif (i==n-2)
A (i,i)=1+g
A (i,i-1)=-g
else
A (i,i)=1+2*g
A (i,i-1)=-g
A (i,i+1)=-g
end
end
while t<T
ctr = ctr + 1;
t = ctr * tau;
% implicit scheme
U(2:end-1) = inv(A)*u(2:end-1)'
% boundary conditions
U(1) = u(1);
U(end) = u(end);
Temp(ctr+1,:)=U;
% drawing picture
plot(x,u0,'r-',x,U,'r.');
axis([0 1 -2.5 2.5]);
title(['t = ',num2str(t)]);
drawnow;
% change variable
u = U;
end
C = zeros(m,n)
for i = 1:m
t = (i-1)*m
for j = 1:n
x=(j-1)*(n)
C(i,j)=(P/2)-((4*P/pi^2)*(cos((pi*x)/P))*(exp((-
pi^2*t)/P^2)))
end
end
error = C-Temp
surf(Temp);
shading interp
colorbar
b. Tampilan Program
Keterangan: hasil tampilan program hanya ditampilkan sebagian, tidak
keseluruhan.
c. Grafik Error Terhadap X
Analisa grafik : grafik diatas hampir sama dengan grafik pada metode
eksplisit. Karena grafik linier pada t = 1 dan t = 3. Hal ini disebabkan
metode implisit merupakan penyempurnaan dari metode eksplisit pada
stabilitasnya karena pada metode implisit ini digunakan sistem persamaan
linier dan iterasi dalam mencari solusi umum. Sehingga proses yang
dilakukan lebih teliti dibandingkan dengan metode eksplisit.
d. Analisa
Pada metode eksplisit, stabilitasnya bergantung pada gain parameter ().
Untuk menentukan kestabilan suatu metode dipastikan bahwa nilai
sangat kecil. Sehingga membutuhkan waktu yang cukup lama pada proses
komputasinya. Untuk memperbaiki skema eksplisit, maka digunakan skema
implisit yang memiliki perbedaan pada operator laplace-nya. Matriksnya
dimulai dengan 1 + dan diakhiri dengan 1 + . Hasil dari skema ini harus
iterasi dan melalui persamaan linier. Dengan demikian skema implisit ini
unconditionally stable. Pada listing program, nilai h atau harus bilangan
bulat. Karena ketika dimasukkan bilangan yang tidak bulat, tampilan
program akan menjadi error. Hal ini dikarenakan nilai dari matriks U harus
sesuai dengan jumlah matriks C agar dapat ditentukan nilai errornya.
0
1
2
3
4
5
6
7
8
9
0 1 2 3 4 5 6 7
E
r
r
o
r
x
Grafik Hubungan Error Terhadap x
t = 0
t = 1
t = 3
3. Skema Crank Nicolson Pada Heat Equation
a. Listing Program
% Crank Nilson scheme for Heat equation
close
clear
P = 10;
h = 0.2;
g = 0.2;
tau = g*(h^2);
T = 1;
m = length(0:tau:T)
xl = 0;xr = 1; % boundaries
x = xl:h:xr;
n = length(x); % number of spatial grids
% initial condition
u = x;
%u(1:round(n/2))=.5 ;u(round(n/2):end)=0;
U = u;
t = 0;
ctr = 0;
set(figure,'backingstore','off','doublebuffer','on'); % to
avoid blinking on the screen
u0 =u;
Temp = zeros(length(0:tau:T),n);
Temp(1,:) = u0;
A=zeros(n-2,n-2)
for i=1:n-2
if (i==1)
A (i,i)=2+g
A (i,i+1)=-g
elseif (i==n-2)
A (i,i)=2+g
A (i,i-1)=-g
else
A (i,i)=2*(1+g)
A (i,i-1)=-g
A (i,i+1)=-g
end
end
B=zeros(n-2,n-2)
for i=1:n-2
if (i==1)
B (i,i)=2-g
B (i,i+1)=-g
elseif (i==n-2)
B (i,i)=2-g
B (i,i-1)=-g
else
B (i,i)=2*(1-g)
B (i,i-1)=-g
B (i,i+1)=-g
end
end
while t<T
ctr = ctr + 1;
t = ctr * tau;
% Crank Nilson scheme
U(2:end-1) = inv(A)*B*u(2:end-1)'
% boundary conditions
U(1) = u(1);
U(end) = u(end);
Temp(ctr+1,:)=U;
% drawing picture
plot(x,u0,'r-',x,U,'r.');
axis([0 1 -2.5 2.5]);
title(['t = ',num2str(t)]);
drawnow;
% change variable
u = U;
end
C = zeros(m,n)
for i = 1:m
t = (i-1)*m
for j = 1:n
x=(j-1)*(n)
C(i,j)=(P/2)-((4*P/pi^2)*(cos((pi*x)/P))*(exp((-
pi^2*t)/P^2)))
end
end
error = C-Temp
surf(Temp);
shading interp
colorbar
b. Tampilan Program
c. Grafik Error Terhadap X
Analisa grafik : grafik error crank nicholson juga hampir sama dengan dua
metode sebelumnya. Namun grafik diatas t =1 dan t = 2 serta selanjutnya
lebih condong dibandingkan dengan grafik pada kedua metode
sebelumnya. Karena metode crank nicholson merupakan penyempurnaan
dari metode implisit dan metode eksplisit. Oleh karena itu ketelitian
errornya lebih baik.
d. Analisa
Skema Crank-Nicholson ini menggunakan paduan antara bentuk skema
eksplisit dan bentuk skema implisit, sehingga skema Crank-Nicholson
menulis ruas kanan pada waktu n + yang merupakan nilai rerata dari
skema eksplisit dan implisit. Meskipun skema implisit bersifat
unconditionally stable, namun skema ini memilki orde akurasi pertama
terhadap waktu dan orde kedua dalam ruang. Sama seperti metode implisit
pada listing program, nilai h atau harus bilangan bulat. Karena ketika
dimasukkan bilangan yang tidak bulat, tampilan program akan menjadi
error. Hal ini dikarenakan nilai dari matriks U harus sesuai dengan jumlah
matriks C agar dapat ditentukan nilai errornya.
0
1
2
3
4
5
6
7
8
9
0 1 2 3 4 5 6 7
E
r
r
o
r
X
Hubungan Error Terhadap X
t=0
t=1
t=2
TUGAS FISIKA KOMPUTASI 2
METODE BEDA HINGGA PADA HEAT EQUATION
1 DIMENSI
Oleh
Mutiara Efendi 140310110016
Utari Handayani 140310110032
Febi Luthfiani 140310110040
Dosen : Dr. Irwan Ary Dharmawan, M.Si
JURUSAN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS PADJADJARAN
2014