laporan akhir metode numerik ii
DESCRIPTION
Metnum IITRANSCRIPT
-
VI. Tugas Akhir
1. Crank-Nichoson
a. Crank-Nicolson dengan syarat Dirichlet
Listing Program
print"Program Heat Equation dengan Skema Crank-Nicolson menggunakan
syarat batas Dirichlet"
print"\n"
print"Nama: Fatah Ramdhan"
print"NPM : 140710130002"
print"Praktikum Metode Numerik II"
print"Geofisika Universitas Padjadjaran"
print"\n"
from numpy import *
from math import *
from matplotlib.pyplot import *
import scipy as sp
import scipy.sparse
import scipy.sparse.linalg
import numpy.linalg
#diskritisasi
L=1
T=1
N=64
dx=1/(N+1.0)
gamma=0.5
dt=gamma*dx*dx
M=int(round(T/float(dt)))
-
x=linspace(0,L,N+1)
tg=linspace(0,T,M+1)
#initial condition
u0= zeros(N+1)
U= zeros(N+1)
Ua=zeros(N+1)
for i in range(0,N+1):
u0[i]=sin(pi*x[i])
a=sp.ones((3,N))
a[0]=-gamma/2
a[1]=1+gamma
a[2]=-gamma/2
diags=[-1,0,1]
A=sp.sparse.spdiags(a,diags,N,N)
b=sp.ones((3,N))
b[0]=gamma/2
b[1]=1-gamma
b[2]=gamma/2
B=sp.sparse.spdiags(b,diags,N,N)
print A
ctr=0
t=0
u=u0
ion()
show()
while t
-
U[:N]=sp.sparse.linalg.spsolve(A,B.dot(u[:N]))
U[0]=0
U[N]=0
clf()
axis([0,1,0,1])
plot(x,U,'r*',x,u0,'b-')
xlabel('x')
ylabel('u')
draw()
u=U
Tampilan
-
Analisa
Program di atas merupakan program Crank-Nicolson dengan menggunakan
syarat batas Dirichlet di mana nilai ujung-ujungnya kita set sama dengan nol.
Dalam program, untuk syarat batas Dirichlet ini kita gunakan U[0]=0 dan U[N]=0
yang artinya nilai U di ujung kanan dan kiri bernilai sama dengan nol. Metode ini
-
memiliki akurasi O(2, 2) dan kestabilan akan stabil apabila tanpa syarat
(|| 1 untuk setiap S > 0). Hasil program menunjukkan bahwa semakin besar
nilai N maka semakin kecil errornya. Hal ini karena kita mendiskritnya ke dalam
banyak bagian N dan membuat diskrit menjadi rapat. Dalam contoh kasus di atas,
kita memasukkan nilai N = 64, L = 1, T = 1.
b. Crank-Nicolson dengan syarat Neumann
Listing Program
print"Program Heat Equation dengan Skema Crank-Nicolson Menggunakan
Syarat Batas Neumann"
print"\n"
print"Nama: Fatah Ramdhan"
print"NPM : 140710130002"
print"Praktikum Metode Numerik II"
print"Geofisika Universitas Padjadjaran"
print"\n"
from numpy import *
from math import *
from matplotlib.pyplot import *
import scipy as sp
import scipy.sparse
import scipy.sparse.linalg
import numpy.linalg
#diskritisasi
-
L=1
T=1
N=64
dx=1/(N+1.0)
gamma=0.5
dt=gamma*dx*dx
M=int(round(T/float(dt)))
x=linspace(0,L,N+1)
tg=linspace(0,T,M+1)
#initial condition
u0= zeros(N+1)
U= zeros(N+1)
Ua=zeros(N+1)
for i in range(0,N+1):
u0[i]=sin(pi*x[i])
a=sp.ones((3,N))
a[0]=-gamma/2
a[1]=1+gamma
a[2]=-gamma/2
diags=[-1,0,1]
A=sp.sparse.spdiags(a,diags,N,N)
b=sp.ones((3,N))
b[0]=gamma/2
b[1]=1-gamma
b[2]=gamma/2
B=sp.sparse.spdiags(b,diags,N,N)
print A
-
ctr=0
t=0
u=u0
ion()
show()
while t
-
Analisa
Program di atas merupakan program Crank-Nicolson dengan menggunakan
syarat batas Neumann di mana nilai ujung-ujungnya kita set tidak sama dengan
nol. Dalam program, untuk syarat batas Neumann ini kita gunakan U[0]=U[1]
dan U[N]=U[N-1]. Metode ini memiliki akurasi O(2, 2) dan kestabilan akan
stabil apabila tanpa syarat (|| 1 untuk setiap S > 0). Perbedaan dari kedua
program di atas hanya terletak pada syarat batasnya saja, secara umum sama.
Hasil program menunjukkan bahwa semakin besar nilai N maka semakin kecil
errornya. Hal ini karena kita mendiskritnya ke dalam banyak bagian N dan
membuat diskrit menjadi rapat. Dalam contoh kasus di atas, kita memasukkan
nilai N = 64, L = 1, T = 1.
-
2. Resume
Dalam persamaan difusi atau heat equation terdapat tiga macam skema untuk
menyelesaikannya, yaitu skema Eksplisit, Implisit dan Crank-Nicolson. Dalam
skema Eksplisit, persamaan dan teknik penyelesaiannya straight-forward,
penyelesaian dilakukan node per node. Rentan terhadap konvergensi dan
stabilitas hitungan serta time step terkendala oleh konvergensi dan stabilitas
hitungan. Sedangkan Implisit, persamaan dan teknik penyelesaiannya lebih
rumit, penyelesaian dilakukan secara simultan untuk seluruh node. Konvergensi
dan stabilitas hitungan lebih mudah dijaga serta time step tidak terkendala oleh
konvergensi dan stabilitas hitungan. Skema Crank-Nicolson merupakan
gabungan dari kedua skema tersebut. Skema Crank-Nicolson memiliki akurasi
yang sama pada aproksimasi suku derivative waktu dan ruang. Ditinjau dari nilai
, apabila = 0, maka skema adalah Eksplisit. Apabila = 1, maka skema
adalah Implisit. Sedangkan apabila =1
2, maka skema adalah Crank-Nicolson.
-
VII. Kesimpulan
Berdasarkan praktikum yang telah dilaksanakan, maka dapat disimpulkan
bahwa praktikan telah memahami dan bisa menggunakan metode beda hingga
untuk mencari solusi numeric persamaan parabolic satu dimensi,
mengaplikasikan skema Eksplisit, Implisit dan Crank-Nicolson dalam solusi
Heat Equation 1D, mampu menentukan dan membandingkan orde akurasi
untuk masing-masing skema serta mampu menyelesaikan masalah syarat batas
secara numerik. Berdasarkan hasil percobaan program, diperoleh :
Pada skema eksplisit dengan menggunakan syarat batas Dirichlet (U[0]=0 dan
U[N]=0), kurva menunjukkan bahwa nilai analitik dan numerik cukup
berdekatan dan berjalannya temperatur seiring dengan berjalannya waktu, nilai
temperatur maksimum berada di titik nol. Nilai gamma yang dimasukkan akan
mempengaruhi stabilitasnya. Jika nilai gamma yang dimasukkan cukup besar,
maka akan menghasilkan blow up.
Pada skema eksplisit dengan menggunakan syarat batas Neumann (U[0]=U[1]
dan U[N]=U[N-1]). Kurva yang didapat bentuknya berbeda dengan kurva saat
syarat batasnya menggunakan Dirichlet. Titik maksimum dan minimum yang
semula berada pada U = 0 kali ini berada pada satu nilai yaitu pada U = 0.63.
Hal ini dakibatkan perbedaan syarat batas. Sama seperti pada Dirchlet Besar
nilai gamma mempengaruhi kestabilan program, jika kita memilih nilai gamma
yang lebih besar dari 0.5 maka program akan mengalami blow up.
Pada skema implisit didapat bahwa kurva antara solusi analitik dan solusi
numerik error yang cukup kecil. Nilai gamma yang dimasukan tidak
berpengaruh pada kestabilan program. Skema implisit dibutuhkan solusi
persamaan linier untuk menentukan nilai U. Nilai U akan berubah seiring
dengan berjalannya waktu. karena syarat batas yang dibuat dalam program
adalah syarat batas dirichlet untuk U = 0 maka nilai temperatur akan memiliki
nilai maksimum dan minimum di 0 derajat.
-
Pada skema Implisit Neumann, matriks yang diperoleh berbeda dengan
eksplisit yang memiliki nilai N yang berbeda. Syarat batasnya diubah sehingga
mengakibatkan nilai maksimum dan minimumnya berbeda pula. Skema
implisit lebih cepat dibandingkan implisit.
Pada skema Crank-Nicolson, menunjukkan bahwa semakin besar nilai N maka
semakin kecil errornya. Hal ini karena kita mendiskritnya ke dalam banyak
bagian N dan membuat diskrit menjadi rapat. Kestabilan akan stabil apabila
tanpa syarat (|| 1 untuk setiap S > 0). Dalam contoh kasus di atas, kita
memasukkan nilai N = 64, L = 1, T = 1.
-
DAFTAR PUSTAKA
Chapra, S. C., Carale R. P., 1990, Numerical Methods for Engineers, 2nd Ed., Mc.Graw-
Hill Book Co., Newyork., Chapter 23 dan 34, hlm.707-749
Istiarto, n.d, Persamaan Differensial Parsial (PDE), Yogyakarta, UGM [online]
http://www.istiarto.staff.ugm.ac.id/persamaan-differensial-parsial.pdf [diakses
12 Maret 2015]
Munir Rinaldi, 2003, Metode Numerik revisi kedua, Bandung, Informatika
[noname], 2012, Partial Differential Equation, Bandung, SRP12 ITB [online] http://www.itb.ac.id/partial-differential-equation.pdf [diakses 12 Maret 2015]