Modul I. Metode Regresi Kuadrat Terkecil Linier
Tujuan Praktikum :
1. Mahasiswa dapat menuliskan kembali metode Regresi Kuadrat Terkecil Linier.
2. Mahasiswa dapat membuat sebuah aplikasi komputer terkait penggunaan
metode Regresi Linier Kuadrat Terkecil.
3. Mahasiswa dapat merumuskan sebuah permasalahan fisis dan menyelesaikan
permasalahan tersebut dengan bantuan aplikasi yang telah dibuat.
Dasar Teori
Perumusan Umum Metode Kuadrat Terkecil Linier
Formulasi Matrik untuk Metode Kuadrat Terkecil Linier
Model umum kuadrat terkecil adalah
y=a0 z0+a1 z1+a2 z2+…+am zm+e
dimana z0 , z1 ,…, zm adalah fungsi-fungsi yang saling berbeda. Terminologi linier
diperoleh dari kebergantungan model pada paramater model, yaitu pada ai.
Dalam bentuk matriks persamaan tersebut dapat dituliskan dalam bentuk
{Y }= [Z ] {A }+ {E }
dengan Z adalah matriks nilai dari fungsi yang dihitung untuk setiap variabel bebas,
yang dapat ditulis sebagai :
{Z }=[ z01 z11z02 z12
⋯ zm1
⋯ zm2
⋮ ⋮z0n z1n
⋯ ⋮⋯ zmn
]dengan m adalah jumlah parameter model dan n adalah jumlah data. Karena sering
ditemui n ≥ m+1, matriks [Z] juga ditemukan tidak selalu berupa matriks bujur
sangkar. Vektor kolom [Y] berisi nilai dari hasil observasi, yaitu :
{Y }T= [ y1 y2 … yn ]Vektor kolom [A] merupakan koefisien parameter model
{ A }T= [a0 a1 … am ]dan vektor kolom [E] berisi selisih
{E }T= [e1 e2 … en ]Selisih kuadrat dari model ini dapat dituliskan sebagai :
Sr=∑i=1
n
( y i−∑j=0
m
a j z ji)2
Kuantitas ini diminimumkan dengan mengambil turunan parsial terhadap setiap
parameter model dan membuat turunan parsial tersebut sama dengan nol. Hasil dari
proses tersebut adalah :
[ [ Z ]T [ Z ] ] {A }={[ Z ]T {Y }}Pencarian solusi matriks {A} dapat dilakukan dengan metode dekomposisi LU,
eliminasi Gauss, Eliminasi Gauss-Jordan, Gauss-Seidel maupun metode iteratif
Jacobi.
Langkah Praktikum 1
1. Tuliskan/ turunkan kembali perumusan metode Kuadrat terkecil linier orde 1
secara sistematis untuk kasus z0 = 0 dan z1 = x (biasa disebut dengan regresi
linier).
2. Lengkapi algoritma di bawah ini.
Algoritmanya :
Masukan : Jumlah data (N), xi,yi dengan i=1,2,...,N
Keluaran : A [a1 a2] T
Langkah :
jum_x = ...
jum_y = ...
jum_x2 = ...
jum_xy = ...
Untuk ii =1:N
jum_x = jum_x + x(...);
jum_y = jum_y + y(...);
jum_x2 = jum_x2 + x(...)2;
jum_xy = jum_xy + (x(...)*y(...));
Z=(N jumx
… jumx 2)
Y=( jumy
… )A=Z−1∗…
3. Jika terdapat seperangkat data seperti berikut :
x y
1 0,52 2,53 24 45 3,56 6,57 5,5
Lengkapi kode program berikut berdasarkan algoritma yang telah dibuat
Langkah Praktikum 2
1. Diberikan seperangkat data sebagai berikut :
x y
1 0,52 1,73 3,44 5,75 8,4
tuliskan perumusan metode regresi linier kuadrat terkecil untuk fungsi :
y=a0x
a1+ x
clear all;clc;x=[... ];y=[...];[m,N]=size (x);jum_x = ...;jum_y = ...;jum_xy = ...;jum_x2 =0;for ii=1:N jum_x = jum_x + x(...); jum_ y = jum_y + y(...); jum_xy = jum_xy + (x(...)*y(...)); jum_x2 = jum_x2 + (x(...)^2);endZ=[ ... ... ; ... ...];Y=[... ;...];A= inv(Z)*Y;
2. Modifikasi program aplikasi yang telah dibuat sebelumnya untuk menghitung a0
dan a1 sesuai permasalahan di atas.
3. Plot dan analisis model yang telah dibuat.
Modul II. Metode Regresi Non Linier
Tujuan Praktikum :
1. Mahasiswa dapat menuliskan kembali metode Regresi Non Linier.
2. Mahasiswa dapat membuat sebuah aplikasi komputer penggunaan metode
Regresi Non Linier.
3. Mahasiswa dapat merumuskan sebuah permasalahan fisis dan menyelesaikan
permasalahan tersebut dengan bantuan aplikasi yang telah dibuat.
Dasar Teori
Dalam beberapa kasus di pemodelan sains, terdapat beberapa permasalahan
untuk melakukan pencocokan kurva dengan model yang bersifat non linier, seperti
model cuaca, persamaan pemodelan kedepan Self Potential, peluruhan radioaktif
dan lain-lain.
Seperti halnya kuadrat terkecil, regresi non linier didasarkan pada penentuan
nilai parameter model yang meminimumkan jumlah dari kuadrat kesalahan. Namun,
tidak seperti halnya pada kasus linier, pada kasus non linier solusi diperoleh melalui
proses yang dilakukan secara iteratif.
Pada kasus non linier, secara umum hubungan antara data dengan
persamaan non linier yang dianggap dapat menghampiri data adalah :
y i=f (x i ;a0 , a1 ,…,am)+ei
dengan yi adalah data hasil pengukuran, f(xi) adalah fungsi non linier dari variabel
bebas dengan parameter model a0, a1, ..., am , serta ei adalah kesalahan acak.
Metode Gauss Newton
Pada metode ini, fungsi nonlinier diekspansikan dalam deret Taylor. Bentuk
hampiran tersebut berbentuk fungsi linier.
f (x i ) j+1=f (x i ) j+∂ f (x i ) j∂a0
∆a0+∂ f (x i ) j
∂a1∆a1
dengan j adalah tebakan awal, j+1 adalah prediksi, a0 = a0,j+1 - a0,j dan a1 = a1,j+1
- a1,j
Dari proses ini terlihat hubungan yang linier antara model asal terhadap
parameter modelnya. Persamaan hampiran kemudian disubstitusikan ke
persamaan model menjadi:
y i−f (x i) j=∂ f (x i ) j
∂a0∆a0+
∂ f (xi ) j
∂a1∆a1+e i
atau dalam bentuk matriks :
{D }= [Z j ] {∆ A }+ {E }
dengan [Zj] adalah matrik turunan parsial fungsi non linier terhadap setiap
parameter model, atau biasa juga disebut sebagai matriks Jacobi,
[ Z j ]= [∂ f 1∂a0
∂ f 1∂a1
∂ f 2∂a0
∂ f 2∂a1
⋮∂ f n
∂a0
⋮∂ f n
∂a1
]dengan n adalah jumlah data dan
∂ f n
∂ak adalah turunan parsial fungsi terhadap
parameter model ke k yang kemudian dievaluasi pada data ke i. Vektor {D} berisi
selisih antara data dengan nilai fungsi
{D }=[y1−f (x1)y2−f (x2)y3−f (x3)
⋮yn−f (xn)
]dan vektor {A} adalah vektor yang berisi perubahan nilai parameter model.
{∆ A }=[∆a0∆a1∆a2⋮
∆am
]Dengan menggunakan teorema kuadrat terkecil diperoleh
[ [Z j ]T [ Z j ] ] {∆ A }={[Z j ]
T {D }}
Solusi setiap langkahnya dapat diperoleh dengan menggunakan teknik
penyelesaian SPL pada umumnya. Hasil dari proses ini adalah lebar langkah dari
perubahan parameter model, yang kemudian dapat digunakan untuk melakukan
perbaikan hampiran parameter model yang diperoleh pada iterasi sebelumnya.
Langkah Praktikum
1. Tuliskan/turunkan kembali perumusan metode regresi non linier secara
sistematis untuk kasus f (x ,a0 , a1 )=a0(1−ea1x)
2. Lengkapi algoritma di bawah ini.
Masukan : xi, yi dengan i =1,2,3,..., jumlah data
a00 , a1
0 parameter model awal
n_iter jumlah iterasi
f (x ,a0❑ , a1
❑)
eps
Keluaran : A solusi
Langkah :
Untuk ii = 1 : n_iter
fx = f (x ,a0❑ , a1
❑)
D= { y }−{ fx }
[Z ]=¿
dA=(ZT*Z)-1*(ZT*D);
a0 = a0+dA(1,1);
a1 = a1+dA(2,1);
A = [a0; a1]
fx = f (x ,a0❑ , a1
❑)
jika RMS (y-fx) ≤ eps maka solusi = A
3. Berdasarkan algoritma yang dibuat, lengkapi kode program untuk seperangkat
data berikut
x y
0,25 0,280,75 0,571,25 0,681,75 0,742,25 0,79
dengan tebakan awal a0❑=1 dan a1
❑=1
clc;clear all;
x=[...];y=[...];[m,jumlah_data]=size(x);a0=...; a1=...;n_iter = 10; eps=1e-3;
for iterasi=1:n_iter f = @ (x,a0,a1) a0*(1-exp(a1.*x); dfa0 = @ (x,a0,a1) ...; dfa1 = @ (x,a0,a1) ...; for i = 1 : jumlah_data df_a0(i) = dfa0(a0,a1,x(i)); df_a1(i) = dfa1(a0,a1,x(i)); d=y(i)-fx(x(ii),a0,a1) end D=transpose(d); Zt=[df_a0;df_a1]; Z=transpose (Zt); dA=(Zt*Z)\(Zt*D); a0=a0+dA(1,1); a1=a1+dA(2,1); fx =f(x,a0,a1);selisih=(y-fx); if (norm(selisih)/sqrt(jumlah_data))<=eps
A=[a0; a1]; break; endendplot(x,y,'-b',x,fx,'r');
Modul III. Interpolasi
Tujuan Praktikum :
1. Mahasiswa dapat menuliskan kembali metode-metode interpolasi.
2. Mahasiswa dapat membuat sebuah aplikasi komputer penggunaan metode
interpolasi.
3. Mahasiswa dapat merumuskan sebuah permasalahan fisis dan menyelesaikan
permasalahan tersebut dengan bantuan aplikasi yang telah dibuat.
Dasar Teori
Estimasi nilai tengah dari suatu rentang nilai eksak sering dijumpai dalam
permasalahan sains. Metode yang sering digunakan untuk mengatasi hal ini adalah
metode interpolasi polinomial. Secara umum polinomial yang digunakan adalah
dalam bentuk seperti di bawah ini :
f(x)= a0 + a1x + a2x2 + a3x3 + ... + anxn
Untuk data sejumlah n+1, terdapat hanya sebuah polinomial berderajat n yang
melewati seluruh titik data. Sebagai contoh adalah sebuah garis lurus (polinomial
orde 1) yang menghubungkan dua titik dan sebuah parabola yang menghubungkan
tiga buah titik. Terdapat beberapa bentuk/format polinomial, yaitu polinomial Newton
dan Lagrange.
Polinom Newton
Interpolasi Linier
Bentuk umum dari interpolasi linier adalah
f 1 ( x )= f (x0 )+f (x1)−f (x0 )
x1−x0(x−x0)
yang menghubungkan dua titik data (x¿¿0 , y0)¿ dan (x¿¿1 , y1)¿ dengan sebuah
garis lurus.
Interpolasi Kuadratik
Bentuk umum dari interpolasi kuadratik adalah
f 2 ( x )=b0+b1 (x−x0 )+b2 (x−x0 ) (x−x1 )
dimana (buktikan):
b0=f (x0)
b1=f (x1)−f (x0)
(x1−x0 )
b2=
f (x2 )−f (x1)
(x2−x1 )−
f ( x1 )−f (x0)
(x1−x0 )(x2−x0 )
Polinom Interpolasi beda terbagi Newton
Bentuk polinom beda terbagi Newton adalah bentuk umum dari polinom-polinom
sebelumnya yang digunakan untuk mencocokkan kurva polinomial orde n pada data
sejumlah n+1. Polinom ini dituliskan sebagai :
f n ( x )=b0+b1 (x−x0 )+b2 (x−x0 ) (x−x1 )+…+bn (x−x0 ) (x−x1 )…( x−xn−1)
dengan :
b0=f (x0)
b1=f (x1 , x0 )
b2=f (x2 , x1 , x0 )
...
bn=f (xn , xn−1 , xn−2 ,… x1, x0 )
dimana
f (x i , x j )=f (x i )−f (x j)
x i−x j
f (x i , x j , xk )=f (xi , x j )− f (x j , xk )
x i−xk
f (xn , xn−1 ,… x1 , x0 )=f (xn , xn−1 ,… x1 )−f (xn−1 , xn−2 ,…, x0)
xn−x0
Tabel berikut menunjukkan perumusan polinomial Newton beda terbagi.
i X(i) F(xi) pertama kedua ketiga
0 X0 F(x0) F(x1, x0) F(x2,x1,x0) F(x3,x2,x1,x0)
1 X1 F(x1) F(x2, x1) F(x3,x2,x1)
2 X2 F(x2) F(x3, x2)
3 X3 F(x3)
Langkah Praktikum
1. Tuliskan/turunkan kembali perumusan metode interpolasi Newton untuk
menghitung nilai dari f(x) = ln(x) dari seperangkat data berikut secara sistematis.
x f(x)=ln(x)
1 0
4 1,3862944
6 1,7917595
5 1,6094379
3 1,0986123
1,5 0,4054641
2,5 0,9162907
3,5 1,2527630
2. Pelajari algoritma di bawah ini.
Algoritma Interpolasi Newton Beda Terbagi
Masukan : x,y (m,n ukuran x)Keluaran : f(xu)Langkah :
untuk i=1:n
R(i ,1)= y (i)
untuk j=2:n
untuk i=1:(n+1-j)
R(i , j)=R (i+1 , j−1 )−R (i , j−1)
x ( j+i−1 )−x (i)
untuk i=2:n
b_kw(i)=1;
untuk j=1:(i-1)
b_kw(i) = b_kw(i)*(x_u-x(j))
suku(i)=R(1,i)*b_kw(i)
f(xu) = R(1,1)
untuk i=2:n
f(xu) = f(xu) + suku(i)
3. Salin kode program dalam bahasa Matlab berikut dan modifikasi untuk mencari
nilai dari f(5,5) =ln(5,5)
clc;clear all% input data --------------------------- x = [1 4 6 5 3 1.5 2.5 3.5];y = [0 1.3862944 1.7917595 ... 1.6094379 1.0986123 0.4054641 ... 0.9162907 1.2527630];[m,jum_data] = size(x);R = zeros(jum_data,jum_data);% ---------------------------------------------f(x)=ln(x);for i=1:jum_data; R(i,1) = y(i);endfor j=2:jum_data; for i=1:(jum_data+1-j); R(i,j)=(R(i+1,j-1)-R(i,j-1))/(x(j+i-1)-x(i)); end endxinput=2;for i=2:jum_data; b_kw(i)=1; for j=1:(i-1); b_kw(i)=b_kw(i)*(xinput-x(j)); end suku(i)=R(1,i)*b_kw(i);endfn=R(1,1);for i=2:jum_data fn=fn+suku(i);endfn
Polinom Interpolasi Lagrange
Polinom Interpolasi Lagrange merupakan modifikasi dari bentuk polinom interpolasi
beda terbagi Newton. Polinom ini tidak memerlukan penghitungan beda terbagi
seperti halnya pada polinom interpolasi Newton. Bentuk umum dari polinom
Interpolasi Lagrange adalah sebagai berikut :
f n(x)=∑i=0
n
Li ( x ) f (x i)
dengan
Li (x )=∏j=0j ≠i
n x−x j
x i−x j
Sebagai contoh, untuk orde 1, polinom ini berbentuk :
f 1 ( x )=x− x1x0−x1
f (x0 )+x−x0x1−x0
f (x1 )
dan untuk orde 2, polinom ini berbentuk :
f 2 ( x )=x−x1x0−x1
x−x2x0−x2
f (x0 )+x−x0x1−x0
x− x2x1−x2
f (x1 )+x−x0x2−x0
x−x1x2−x1
f (x2 )
Langkah Praktikum
1. Tuliskan/turunkan kembali perumusan metode interpolasi Lagrange untuk
menghitung nilai dari f(x) = ln(x) dari seperangkat data pada tabel percobaan
sebelumnya secara sistematis.
2. Pelajari algoritma di bawah ini.
Algoritma Interpolasi Lagrange
Masukan : x,y (m,n ukuran x)Keluaran : f(xu)Langkah :
f(xu)=0
untuk i=1:n
Li ( xu )=1
untuk j=1:n
jika j ≠ i maka Li ( xu )=Li
(xu )∗xu− x j
x i−x j
f(xu) = f(xu) + (Li(xu)*y(i))
3. Dari Algoritma tersebut, buat sebuah aplikasi dalam bahasa Matlab untuk
melakukan interpolasi pada data tabel percobaan sebelumnya.
Modul IV. Akar karakteristik (Eigen)
Tujuan Praktikum :
1. Mahasiswa dapat menuliskan kembali metode pencarian akar karakteristik.
2. Mahasiswa dapat membuat sebuah aplikasi komputer penggunaan metode
pencarian akar karakteristik.
3. Mahasiswa dapat merumuskan sebuah permasalahan fisis dan menyelesaikan
permasalahan tersebut dengan bantuan aplikasi yang telah dibuat.
Dasar Teori
Jika terdapat suatu matriks A, yang berukuran n x n, nilai karakteristik dari matriks
A tersebut salah satunya dapat diartikan sebagai nilai skalar yang berpasangan
dengan vektor x ≠ 0 dan memenuhi persamaan matriks:
Ax=λx
dimana A adalah suatu matriks berukuran n x n dan X adalah vektor karakteristik.
Persamaan di atas, dengan identitas matriks dapat dituliskan sebagai :
Ax−λIx=0
[ A− λI ] x=0
Jika dimisalkan matrix A merupakan suatu matriks bujur sangkar yang berorde 2 x 2
maka dapat dituliskan sebagai :
[ A− λI ] x=[[A11 A12
A21 A22]−[ λ 00 λ]] [x1x2]=[00]
Karena vektor x tidak boleh bernilai nol, maka persamaan di atas dapat diselesaikan dengan cara:
det [ A−λI ]=0
dan dapat ditulis sebagai:
λ2−λ ( A11+A22 )−( A11A22−A12 A21 )=0
Persamaan tersebut dikenal dengan persamaan akar karakteristik. Contoh dari
penggunaan metode ini adalah untuk menentukan besarnya nilai dan vektor Eigen
dari suatu matriks. Untuk matriks yang memiliki orde yang besar, maka penentuan
akar karakteristik dapat dilakukan dengan metode Le Verrier-Faddeev.
M etode Le V errier-Faddeev
Jika nilai matriks di atas ditulis dalam bentuk polinomial:
|A−λI|=a0 λn+a1 λ
n−1+…+an−1 λ+an=Pn( λ)dengan:
a0=(−1)n
a1=−a0 s1
a2=−(a¿¿0 s2+a1 s1) /2¿
...
aK=−(a¿¿0 sK+a1 sK−1+…+aK−1 s1)/K ¿
menurut teorema Newton, untuk sebuah matriks A, jumlah elemen diagonal matriks
A sama dengan jumlah nilai eigen dari matriks A tersebut, yang dapat dituliskan
sebagai :
sk=∑i=1
n
λik=trace ( Ak )=∑
i=1
n
aii
dan berdasarkan rumusan Faddeev, maka akan didapatkan:
a i=−(−1 )n P i i=1,2,3 ,…ndengan:
Pi=1itrace ( A i) i=1,2,3 ,…n
Sehingga dengan formulasi tersebut, persamaan karakteristik untuk matriks berorde
lebih dari 2 (dua) dapat ditentukan. Secara sistematis proses penentuan persamaan
karakteristik dapat dilakukan sebagai berikut :
A1 = A P1 = trace (A1) B1 = A1 -P1*IA2 = AB1 P2 = trace (A2)/2 B2 = A2 -P2*I... ... ...An-1 = ABn-2 Pn-1 = trace (An-1)/(n-1) Bn-1 = An-1 -Pn-1*IAn = ABn-1 Pn-2 = trace (An) / n Bn = An -Pn * I
Langkah Praktikum
1. Tuliskan/turunkan kembali perumusan metode pencarian akar karakteristik untuk
mencari persamaan dan akar karakteristik dari matriks [1 2 32 2 −13 −1 1 ]
2. Lengkapi algoritma berikut.
Masukan : A (m,n ukuran A)Keluaran : persamaan karakteristikLangkah :
0. [m,n] = ukuran (A)Jika m ≠ n maka 'Matriks tidak dapat diselesaikan'
1. penentuan trace matrikstrace (A) = 0untuk i =1 : n
untuk j = 1: mJika i=j maka trace(A)=trace(A)+Aij
2. penentuan persamaan karakteristika. buat matriks B = matriks identitas ukuran n x nb. untuk i=1 : n
A_temp = A * BP(i) = trace(A_temp)/iB = A_temp - P(i) * I
c. persamaan karakteristik (-1)n ( n - P1 n-1
- P2 n-2 - ... - Pn-1 - Pn ) = 0
3. Penentuan akar karakteristik. Pada bagian ini digunakan subroutine rutis (Munadi,1990)
function (S) = trace_g(A)S = 0;[m,n] = size(A);for i = 1 : n
for j = 1 : mif i==j
S = S + A(i,j);end
endend
3. Lengkapi kode program Matlab berikut ini
clc;clear all; P=[];A=[ 1 2 3;2 2 -1;3 -1 1];[jlh_baris,jlh_kolom]=size (A);n=jlh_baris;B=eye(jlh_baris,jlh_kolom);for hitung=1:n Al=A*B; P=[P trace_g(Al)/hitung]; B=Al-P(hitung)*eye(n,n);end% persamaan karakteristikP =(-1)^n *[1 -P][akar,ier,D] =Rutis(P,n,60,1e-2)
function[Q,IER,D]=Rutis(P,N,KMAX,eps) Q=zeros(1,N); D=zeros(1,N+1); IER=0; K=0; Q(1)=-P(2)/P(1); D(1,1)=0; for j=2:N;
Q(1,j)=0;D(1,j)=P(1,j+1)/P(1,j);
end D(1,N+1)=0;while K<KMAXK=K+1;Aux=Q(1,1);
Q(1,1)=D(1,2)+Q(1,1);D(1,1)=0;E=abs(Q(1,1)-Aux);for j=2:N Aux= Q(1,1); Q(1,j)=D(1,j+1)-D(1,j)+Q(1,j); D(1,j)=Q(1,j)*D(1,j)/(Q(1,j-1)); E=E+abs(Q(1,j)-Aux);end D(1,N+1)= 0;if E<epsIER=1;endend
Modul V. Beda Hingga (Finite Differences)
Bentuk umum dari persamaan differensial parsial (PDP) orde 2 (dua) adalah :
A∂2u∂x2
+B∂2u∂ y2
+C∂2u
∂ y ∂x+D(x , y , u ,
∂u∂ x
,∂u∂ y )=0
Jika:1. B2−4 AC < 0 maka persamaan diferensial parsial ini digolongkan dalam
persamaan diferensial model eliptik (contoh: persamaan Laplace dan persamaan Poisson)
2. B2−4 AC = 0 maka persamaan diferensial parsial ini digolongkan dalam persamaan diferensial model parabolik (contoh : persamaan konduksi panas bergantung waktu dan persamaan difusi)
3. B2−4 AC > 0 maka persamaan diferensial parsial ini digolongkan dalam persamaan diferensial model hiperbolik (contoh : persamaan gelombang)
Beda hingga merupakan suatu metode untuk menentukan solusi dari suatu persamaan differensial parsial dengan menghampiri turunan fungsi dengan deret Taylor untuk kemudian diambil selisih dari hampiran maju dan hampiran mundur yang dilakukan pada fungsi tersebut. Terdapat beberapa varian hampiran, namun pada kali ini hampiran turunan ke dua yang digunakan khusus untuk domain ruang adalah hampiran perbedaan nilai tengah.
Hal yang terlebih dahulu harus dilakukan untuk menggunakan metode beda hingga adalah membagi (mendiskritisasi) domain permasalahan menjadi subdomain-subdomain yang lebih kecil. Setiap variabel pada titik simpul dari subdomain tersebut kemudian akan digunakan untuk membangun sebuah sistem persamaan linier (SPL) (yaitu pada persamaan Laplace, domain ruang pada persamaan difusi dan persamaan gelombang) ataupun sistem persamaan yang bersifat iteratif (yaitu pada domain waktu di persamaan difusi maupun gelombang). Solusi dari persamaan diferensial tersebut adalah solusi dari SPL maupun solusi iteratif dari sistem persamaan yang dibangun.
h
x
hy
u1
u5
u2
u3
u6
u7
u4
u8
u10u9 u11 u12
u7+u5+u10−4u6+u2=0Adapun bentuk umum hampiran untuk beda hingga adalah :
∂2u∂ x2
≅u ( x+h )−2u ( x )+u(x−h)
h2
dengan h merupakan jarak antara satu titik simpul ke titik simpul yang lain.
Modul V.1. Metode Beda Hingga untuk PDP Eliptik
Tujuan Praktikum :
1. Mahasiswa dapat menuliskan kembali metode beda hingga untuk menyelesaikan
permasalahan persamaan diferensial parsial eliptik.
2. Mahasiswa dapat membuat sebuah aplikasi komputer penggunaan metode beda
hingga untuk kasus PDP Eliptik.
3. Mahasiswa dapat merumuskan sebuah permasalahan fisis dan menyelesaikan
permasalahan tersebut dengan bantuan aplikasi yang telah dibuat.
Dasar Teori
Bentuk umum dari persamaan Laplace adalah:
∇2u=0
Untuk permasalahan dalam ruang 2 (dua) dimensi pada koordinat kartesian, persamaannya dapat dituliskan sebagai :
∂2u∂ x2
+ ∂2u∂ y2
=0
Formulasi beda hingga untuk persamaan tersebut dengan spasi jarak antar titik simpul adalah h dituliskan dalam bentuk :
u (x+h , y )−2u ( x , y )+u ( x−h , y )h2
+u ( x , y+h )−2u ( x , y )+u ( x , y−h )
h2=0
yang dapat juga ditulis dalam bentuk
u ( x+h , y )−2u (x , y )+u ( x−h , y )+u (x , y+h )−2u ( x , y )+u ( x , y−h )=0dan
u ( x+h , y )+u ( x−h , y )+u ( x , y+h )−4u ( x , y )+u ( x , y−h )=0
Solusi PDP akan bernilai unik apabila diberikan syarat batas. Dikenal 2 (dua) jenis
syarat batas yang digunakan yaitu:
1. Syarat batas Dirichlet, yaitu nilai paramater fisis permasalahan diketahui di dalam
maupun pada batas domain.
2. Syarat batas Neumann, yaitu nilai turunan pertama dari parameter fisis yang
ditinjau diketahui baik di dalam maupun pada batas domain.
Persamaan linier yang dibangun untuk setiap titik simpul kemudian diselesaikan
dengan metode penyelesaian SPL yang pernah dibahas sebelumnya. Solusi dari
SPL tersebut adalah solusi bagi PDP Eliptik untuk setiap titik simpul yang terdapat di
dalam domain permasalahan.
Syarat batas yang diberikan disubstitusikan pada SPL yang dibangun. Untuk syarat
batas Dirichlet, secara langsung telah diaplikasikan pada SPL yang dibangun.
Khusus untuk syarat batas Neumann, titik simpul ditambah pada bagian subdomain
yang diketahui syarat batas Neumannya. Turunan pertama dihampiri dengan
perbedaan tengah kemudian diaplikasikan pada titik simpul batas domain. SPL yang
telah dibangun sebelumnya kemudian dimodifikasi pada persamaan linier bagian titik
simpul.
Langkah Praktikum
1. Diberikan sebuah persoalan berikut :
Sebuah plat baja berbentuk bujur sangkar memiliki dimensi 10 cm x 10 cm. Plat
tersebut dikondisikan memiliki suhu pada 3 (tiga) sisinya 0oC dan satu sisi
lainnya 100oC. Tentukan suhu di bagian dalam dari plat baja tersebut pada
keadaan tunak dan efek sumber pemanas diabaikan.
2. Jika diberikan variabel T adalah temperatur, maka permasalahan tersebut sesuai
dengan persamaan Laplace dalam koordinat kartesian :
∂2T∂x2
+ ∂2T∂ y2
=0
3. Diskritisasi domain menjadi 10 bagian sama besar baik dalam arah x maupun y
(yaitu x=y=h=1 cm).
Gambar . diskritisasi domain permasalahan
4. Beri tanda setiap titik simpul sesuai kaidah matriks. Inisialisasi syarat batas
Dirichlet pada setiap titik simpul yang didefinisikan.
% inisialisasi syarat batas Dirichlet
clc;clear all;nx=10; % jumlah bagian x ny=10; % jumlah bagian y
T(1,1:nx+1)=100;T(1:ny+1,1)=0;T(1:ny+1,nx+1)=0;T(ny+1,1:nx+1)=0;
5. Buat sistem persamaan linier dari setiap titik simpul yang berada di dalam
domain.
T (2 ,2 )=T (3 ,2 )+T (1 ,2 )+T (2 ,1 )+T (2,3 )4
...
T (10 ,10 )=T (11 ,10 )+T (9 ,10 )+T (10 ,9 )+T (10 ,11)4
dalam bahasa Matlab dituliskan dalam bentuk :
6. Susun sistem persamaan linier tersebut dalam format berikut :
[ A ] {Tunknown }={T known }dengan
{T unknown }=[T 22T 23…T 1010 ]dalam bahasa Matlab dituliskan dalam bentuk :
j_unk = (nx-1)*(ny-1); % jumlah titik simpul yang tidak diketahuiu = zeros(j_unk,j_unk);u1=diag(ones(j_unk-1,1),1);u2=diag(ones(j_unk-1,1),-1);u3=diag(ones(j_unk-(nx-1),1),nx-1);u4=diag(ones(j_unk,1)*-4);u5=diag(ones(j_unk-(nx-1),1),-(nx-1));u=u1+u2+u3+u4+u5;for j=1:fix(nx/2) u((j*(nx-1))+1,(j*(nx-1)))=0; u((j*(nx-1)),(j*(nx-1)+1))=0;end
M=zeros(j_unk,1);for i = 1:(nx-1) % dirichlet atas M(i,1)=M(i,1)+T(1,i+1); endfor i=1:(ny-1) % dirichlet kanan M((nx-1)*i,1)=M((nx-1)*i,1)+T(i+1,nx+1); endfor i=1:(ny-1) % dirichlet kiri M((i-1)*(nx-1)+1,1)=M((i-1)*(nx-1)+1,1)+T(i+1,1); endfor i=1:(nx-1) % dirichlet bawah M(2*(nx-1)+i,1)=M(2*(nx-1)+i,1)+T(ny+1,i+1); endT_known = -M;
7. Selesaikan SPL yang sudah dibuat dengan memanfaatkan fungsi inversi matriks
built-in dalam Matlab.
8. Analisis hasilnya dan bandingkan dengan solusi analitiknya
Syarat batas Neumann pada formulasi Beda Hingga untuk PDP Eliptik
Syarat batas ini merupakan syarat batas berbentuk turunan pertama (flux) dari
parameter fisis yang ditinjau. Turunan pertama dihampiri dengan beda tengah
hampiran deret Taylor.
∂T∂x
≅T x +∆ x−T x−∆x
2∆ x
Domain permasalahan khusus untuk permasalahan syarat batas ini ditambah satu
node di luar domain yang ada sebelumnya.
T_known = -M;T_unknown =(A'*A)\(A'*T_known);
% untuk plotT_unknown = reshape(T_unknown,nx-1,ny-1)';image(T_unknown(1:nx-1,1:ny-1));figure(gcf);
Gambar memperlihatkan penambahan node (sub domain) baru untuk dapat
ditambahkan syarat batas Neumann. Jika syarat batas tersebut berupa
∂T∂ y
=−a
dengan a merupakan sebuah konstanta dan syarat batas ini terdapat pada bagian
utara domain permasalahan, maka persamaan hampiran beda hingga untuk T1
adalah (seperti pada gambar) :
T n−4 T1+T 2+T7+Ta=0
dengan Tn adalah syarat batas Dirichlet. Variabel Ta dihampiri oleh :
∂T∂ y
≅T a−T 7
2∆ y=−a
sehingga
T a=T 7−2a∆ y
persamaan ini kemudian disubstitusikan ke persamaan hampiran beda hingga
sebelumnya,
T n−4 T1+T 2+T7+T 7−2a∆ y=0
untuk kemudian diselesaikan seperti pada contoh sebelumnya.
Modul V.2. Metode Beda Hingga untuk PDP Parabolik
Tujuan Praktikum :
1. Mahasiswa dapat menuliskan kembali metode beda hingga untuk menyelesaikan
permasalahan persamaan diferensial parsial parabolik.
2. Mahasiswa dapat membuat sebuah aplikasi komputer penggunaan metode beda
hingga untuk kasus PDP parabolik.
3. Mahasiswa dapat merumuskan sebuah permasalahan fisis dan menyelesaikan
permasalahan tersebut dengan bantuan aplikasi yang telah dibuat.
Dasar Teori
Bentuk PDP seperti yang pernah dituliskan sebelumnya dengan nilai:
B2−4 AC=0
adalah PDP jenis parabolik, yaitu yang memiliki bentuk :
∇2u¿C p∂u∂ t
Untuk permasalahan dalam koordinat kartesian dan berdimensi 2 (dua) dapat
dituliskan dalam bentuk :
k ( ∂2u∂x2+ ∂2u
∂ y2 )=C p∂u∂ t
dengan k dan Cp adalah sebuah konstanta. Terlihat, selain terdapat turunan
terhadap domain ruang, terdapat juga turunan terhadap domain waktu. Turunan
terhadap domain waktu hanya dalam orde turunan pangkat 1(satu). Salah satu
contoh PDP jenis ini adalah persamaan difusi.
Syarat batas yang berlaku pada PDP ini sama seperti syarat batas yang
berlaku pada PDP Eliptik, yaitu syarat batas Dirichlet dan syarat batas Neumann.
Terdapat sedikit perbedaan hampiran untuk kedua syarat batas ini jika dibandingkan
dengan PDP Eliptik.
Metode Eksplisit
Pendekatan yang digunakan pada metode ini adalah perbedaan tengah untuk
domain ruang, sementara untuk domain waktu digunakan hampiran perbedaan
maju, yaitu (kasus 1(satu) Dimensi) :
∂2u∂ x2
≅ui+1
j −2uij+ui−1
j
(∆ x )2
∂u∂ t
≅ui
j+1−u ij
∆ t
subskript i menyatakan indeks posisi dalam domain permasalahan dan superskript j
menyatakan indeks dalam waktu. Jika digabungkan, formulasi dalam metode ini
menjadi :
uij+1=
∆ t
Cp (∆ x )2(ui+1
j +ui−1j )+(1− 2 ∆t
Cp (∆ x )2 )u ij
Hampiran yang umum digunakan untuk menjaga kesatabilan perhitungan adalah :
∆ t
Cp ( ∆x )2=12
Namun jika terdapat syarat batas Neumann, nilai tersebut harus < 1/2.
Kasus Dua Dimensi atau Lebih pada Metode Eksplisit
Pada kasus ini, jika ∆ x=∆ y dan
r= ∆ t
Cp (∆ x )2
hampiran beda hingga untuk PDP parabolik ditulis sebagai :
ui , jk +1−ui , j
k =r (u i+1 , jk −2ui , j
k +ui−1 , jk +u i , j+1
k −2ui , jk +u i , j−1
k )yang disederhanakan menjadi
ui , jk +1=r (ui+1 , j
k +u i−1, jk +ui , j+1
k +u i , j−1k )+(1−4 r )u i , j
k
dengan nilai r maksimum agar proses perhitungan stabil adalah 14
. Untuk kasus
lebih umum dimana ∆ x ≠∆ y, maka kriteria nilai r adalah :
r= ∆ t
Cp {( ∆x )2+( ∆ y )2 }≤18
Untuk kasus tiga dimensi dan untuk kasus ukuran grid sama untuk setiap arahnya,
maka koefisien suku terakhir untuk kasus dua dimensi diubah menjadi ¿) serta nilai r
untuk menjaga kestabilan perhitungan bernilai ≤16
.
Metode Crank-Nicolson (Implicit)
Pada metode ini, hampiran untuk domain ruang dilakukan pada waktu j dan waktu
j+1, kemudian diambil nilai rata-ratanya. Persamaan tersebut dapat ditulis sebagai :
∂2u
∂ x2≅12 ( ui+1
j −2uij+ui−1
j
(∆ x )2+
ui+1j+1−2u i
j+1+u i−1j+1
( ∆ x )2 )sedangkan terhadap domain waktu
∂u∂ t
≅ui
j+1−u ij
∆ t
sehingga jika dituliskan secara lengkap :
∇2u¿C p
∂u∂ t
→12 ( ui+1
j −2uij+u i−1
j
(∆ x )2+
u i+1j+1−2ui
j+1+ui−1j+1
(∆ x )2 )¿C p( uij+1−u i
j
∆ t )yang dapat juga dituliskan sebagai :
−rui−1j+1+(2+2r )ui
j+1−r ui+1j+1=r ui−1
j +(2−2 r ) uij+ru i+1
j
dimana
r= ∆ t
Cp (∆ x )2
untuk penyederhanaan dibuat r=1, sehingga:
−ui−1j+1+4u i
j+1−ui+1j+1=ui−1
j +ui+1j
Kelebihan dari metode Crank-Nicolson adalah kestabilan perhitungan untuk
berbagai nilai r, namun lebih disarankan untuk menggunakan nilai r yang cukup
kecil. Nama metode implicit juga dilekatkan pada metode ini karena terdapatnya
suku uij+1 yang tidak secara langsung diketahui pada saat awal-awal perhitungan.
Nilai u pada t=t1 tidak hanya merupakan fungsi t=t0, tapi juga melibatkan nilai u pada
langkah waktu yang sama. Hal ini menunjukkan diperlukannya menyelesaikan SPL
untuk setiap langkah waktu yang didefinisikan sebelumnya.
Kasus Dua Dimensi atau Lebih pada Metode Implisit
fluifluida domain
x = 0 x = 10
Perumusan untuk kasus dua dimensi pada metode ini dituliskan sebagai :
ui , jk +1−ui , j
k = r2
(u i+1 , jk+1 −2ui , j
k +1+u i−1 , jk+1 +ui+1 , j
k −2u i , jk +ui−1 , j
k +ui , j+1k +1 −2ui , j
k+1+ui , j−1k +1 +u i , j+1
k −2ui , jk +ui , j−1
k )
Secara unik (dapat dibuktikan) menggunakan skema Alternating Direction Implicit
(ADI) untuk kemudahan proses komputasi dan penghematan penggunaan memori,
metode ini dituliskan sebagai :
ui , jk +1−ui , j
k =r (u¿¿ i+1, jk−2u i , jk +u i−1 , j
k +ui , j+1k +1 −2u i , j
k+1+ui , j+1k +1 )¿
↑
bagian dari∂2u∂ x2
↑
bagian∂2u∂ y2
sementara langkah waktu berikutnya menggunakan hampiran berikut :
ui , jk +2−ui , j
k +1=r (u¿¿ i+1 , jk +2−2ui , jk+2+ui−1 , j
k+2 +ui , j+1k +1 −2ui , j
k+1+ui , j+1k +1 )¿
↑
bagian dari∂2u∂ x2
↑
bagian∂2u∂ y2
Proses diulang hingga jumlah perulangan yang ditentukan sebelumnya.
Syarat Batas Neumann
Pada batas domain terdapatnya syarat batas jenis ini, domain permasalahan
ditambah satu node. Nilai turunan pertama dari syarat batas tersebut didekati
dengan perbedaan tengah. Variabel tak diketahui pada node tambahan kemudian
disubstitusikan pada persamaan sebelumnya untuk langsung diselesaikan secara
iteratif (metode eksplisit) atau dilakukan penyusunan ulang SPL yang telah
didefinisikan sebelumnya (metode implicit).
Langkah Praktikum
1. Jika diberikan permasalahan sebagai berikut:
Sebuah kubus alumunium memiliki ukuran 10cm x 10cm x 10cm (k=217 J/smC,
c=946 J/kgC, =2,7.103 kg/m3). Satu sisi pada kubus tersebut tidak diisolasi
dengan baik dan kubus dibuat bersuhu 550C pada saat awal. Panas yang hilang
berasal dari sisi yang tak diisolasi tersebut akibat kontak dengan aliran fluida
berdasarkan persamaan (temperatur fluida = 20C) :
laju kehilangan panas = hA(u-uo)
dengan
h= 98,9117 J/sm2C
A= luas permukaan setiap sisi alumunium
u = temperatur (C)
uo= temperatur fluida
Tentukan distribusi suhu di dalam kubus setiap saatnya.
2. Dari soal dapat ditentukan u(x,0)=550 dan pada sisi terbuka berlaku
−kA∂u∂ x|x=0=−h A (u−20)
karena laju aliran panas yang keluar sama dengan laju aliran panas yang masuk
ke sistem. Tanda negatif menunjukkan arah yang berlawanan dengan arah positif
gradien. Pada sisi kubus yang lain, laju aliran panas yang keluar adalah
∂u∂x |
x=4=0
3. Jika digunakan metode eksplisit dengan Δ x=2cm, dan dengan menggunakan
hubungan berikut :
k ∆ t
(ρ Δ x )2= 14
maka akan dihasilkan ∆ t= 1,17 s.
Untuk rasio yang dipilih tersebut, persamaan beda hingga untuk kasus ini
menjadi :
uij+1=1
4(ui+1
j +ui−1j )+ 1
2ui
j
yang akan diaplikasikan pada titik x=0 hingga x=10.
4. Karena terdapat syarat batas Neuman, ujung domain ditambahkan sebuah node
khayal xL (untuk ujung kiri) dan xR(untuk ujung kanan).
dan aplikasikan persamaan berikut pada node khayal.
u1j+1=1
4(u2j+uL
j )+ 12
u1j
u6j+1=1
4(uR
j +u5j )+ 12
u6j
x1 x2 x3 x4 x5 x6xL xR
5. Penggunaan syarat batas neumann digunakan untuk menghilangkan titik khayal
ini. Formulasi beda tengah untuk syarat batas ini memberikan :
−k∂u∂x |
x=0=−217( u2
j−uLj
2 (2 ) )=98,97 (u1j−20 )
−k∂u∂x |
x=6=−217( uR
j −u4j
2 (2 ) )=0
6.
Contoh pada kasus aliran panas pada sebuah plat baja yang berukuran 20 cm,
dengan syarat sebagai berikut:
u=100x saat 0≤x ≤1u=100 (2−x ) saat1≤x ≤2
Dengan:K=0.13 cal/s.cmocC=0.11 cal/gocDensitas=7.8g/cm3
U0=70ocjika dibagi menjadi 8 ruas maka didapatkan panjang tiap segmen menjadi 0.25 cm.dari syarat kestabilan:
k ∆ t
(ρ Δ x )2≤1 /2
Adapun algoritma untuk menyelesaikan persoalan tersebut adalah sebagai berikut:masukan: U0,k,rho,c,l,n,tKeluaran: Ut
Proses:k=…..c=……rho=….l=….t=…n=8delta_x=0:l /n:2[o,p]=size(delta_x)Untuk i=1:oJika u(i,1)= 100*delta_x
lainyau(i,1)=100*(2-x)akhiri
u(0,1)=2h (u (1,1 )−70 )
k−u (2,1 )
untuk j=2:tuntuk i=1:ou(i,j)=(u(i+1,j-1)+u(i-1,j-1)-2(i,j-1))/4
Adapun bahasa pemrogramannya pada Matlab sebagai berikut:clc;clear all;%inisiasi domainpanjang=2;del_x=0.25;%--------%inisiasi untuk komputasi beda hingga jumlah_titik=(panjang/del_x)+1; k=0.13; c=0.11; rho=7.8; r=0.5;%untuk kebijakan umum,nilai ini tidak boleh lebih dari 0.5 del_t=c*rho*(del_x^2)/(2*k); %---------------nilai awalfor ii=1:jumlah_titik x(ii)=(ii-1)*del_x; if x(ii)<=1 u(ii,1)=100*x(ii); else u(ii,1)=100*(2-x(ii)); endend%berhitungfor jj=1:200 for ii=2:(jumlah_titik-1) u(ii,jj+1)=(r*(u(ii-1,jj)+u(ii+1,jj)))+((1-(2*r))*u(ii,jj)); endendu(1,:)=0;u(jumlah_titik,:)=0;%bagian nampilplot(u)
Modul VII. Persamaan Differensial Parsial Hiperbolik
PDP hiperbolik, sering ditemukan dalam kasus untuk menyelesaikan persamaan gelombang. Dari persamaan umum persamaan PDP:
A∂2u∂x2
+B∂2u∂ y2
+C∂2u
∂ y ∂x+D(x , y , u ,
∂u∂ x
,∂u∂ y )=0
Maka untuk PDP hiperbolik akan diperoleh nilai untuk D sebesar:B2−4 AC>0
Sebagai contoh untuk tinjauan pada gelombang tali:∂2 y∂ t2
=TgW
∂2 y∂ x2
Dengan metode beda hingga maka:∂2 y∂ t2
=TgW
∂2 y∂ x2
y ij+1−2 y i
j+ y ij−1
∆ t 2=Tg
W ( y i+1j −2 y i
j+ y i−1j
∆ x2 )Untuk nilai x yang menuju nol, maka akan didapat nilai y yang stabil sebesar :
y ij+1= y i+1
j + y i−1j − y i
j−1
Dengan aturan beda tengah maka akan diperoleh nilai untuk y i1yakni sebesar:
y i1=12
( y i+10 + y i−1
0 )+g(x )∆t
Sehingga dapat ditentukan kemudian solusi untuk persamaan diferential tersebut.
Tinjau untuk kasus dimana senar sebuah instrument ditarik hingga 0.6 cm dari jarak 20 cm terhadap ujungnya, dan kemudian dibiarkan berosilasi. dengan:
T=40.000g=980w=1
Simpangan tiap saatnya kemudian dapat dihitung dengan metode beda hingga explicit.
Algoritma:
Masukan : T,g,w,delta_xKeluaran: uj
Proses:T=…g=…w=…l=80;n=10;Delta_t=sqrt((w*delta_x)/(T*g))x=0:l/n:l[o,p]=size(x)
Untuk i=1:oJika x(i)<2u(i,1)=0.1*xlainya:u(i,1)=-0.1*x+0.8akhiriuntuk j=2:t
untuk i=2:o-1u(i,j)=(1/2)*(u(i-1,j-1)+u(i+1,j-1))
Top Related