Professional Documents
Culture Documents
Imam Fachruddin
(Departemen Fisika, Universitas Indonesia)
Daftar Pustaka:
• P. L. DeVries, A First Course in Computational Physics (John Wiley &
Sons, Inc., New York, 1994)
• W. H. Press, et. al., Numerical Recipes in Fortran 77, 2nd Ed. (Cambridge
University Press, New York, 1992)
(online / free download: http://www.nrbook.com/a/bookfpdf.php)
• R. H. Landau & M. J. Páez, Computational Physics: Problem Solving with
Computers (John Wiley & Sons, Inc., New York, 1997)
• S. E. Koonin, Computational Physics (Addison-Wesley Publishing Co., Inc.,
Redwood City, 1986)
Isi
• akar fungsi
• solusi sistem persamaan linear
• fitting dengan least square
• interpolasi
• integrasi
• persamaan differensial
Akar Fungsi
f(x) = 0 x=?
1
Contoh: x- =0 x2 = 1 x = 1 dan -1
x
x = r cos (ωt) = vt
r
lampu
gambar 1 gambar 2
ω cos (t) = t
celah
sensor
plat
v ?
Plot cos(x) dan x:
Grafik ini
menunjukkan
bahwa cos(x) = x
pada x sedikit
kurang dari 0.75.
Prinsip: Kurung akar fungsi di antara dua batas, lalu paruh batas itu
terus menerus sampai batas itu sedemikian sempit dan dengan
demikian lokasi akar fungsi diketahui dengan keakuratan tertentu.
Langkah:
1. Perkirakan akar fungsi (bisa akar fungsi
dengan cara memplot fungsi).
2. Tentukan batas awal yang
mengurung akar fungsi.
a df e c b
3. Belah dua daerah berisi akar fungsi
itu.
4. Tentukan daerah yang berisi akar
fungsi. Batas e, f atau
nilai di
5. Ulangi langkah 3 dan 4 sampai tengahnya bisa
dianggap cukup. dipilih sebagai
6. Tentukan akar fungsi. akar fungsi.
• Menentukan daerah yang berisi akar fungsi:
a c b
Jika z merupakan akar fungsi, maka
f(x < z) dan f(x > z) saling berbeda f(x)
tanda.
f(a)*f(c) negatif, berarti di antara a & c x
z
ada akar fungsi.
f(b)*f(c) positif, berarti di antara b & c
tidak ada akar fungsi
Dalam perhitungan numerik, nilai sebenarnya justru sering tidak diketahui, yang
didapat hanya perkiraan terbaik. Karena perkiraan langkah berikut dianggap lebih
akurat, yaitu lebih mendekati nilai sebenarnya, maka kesalahan yang dihitung
yaitu:
x
c
a
p(x)
x −b x−a
Diperoleh: p(x) = f(a) + f(b)
a −b b−a
af(b) − bf(a)
p(c) = 0 c=
f(b) − f(a)
Langkah:
1. Perkirakan akar fungsi (bisa akar fungsi
f(x)
dengan cara memplot fungsi).
b
2. Tentukan batas awal yang
mengurung akar fungsi. x
c
3. Tarik garis lurus penghubung
a
nilai fungsi pada kedua batas,
lalu cari titik potongnya
dengan garis nol.
4. Geser salah satu batas ke
titik potong itu, sementara
batas lain tidak berubah. f(x)
Ulangi langkah 3.
b
5. Ulangi langkah 4 sampai
dianggap cukup. x
c
6. Titik potong garis nol dan a
garis lurus yang terakhir af(b) − bf(a)
dinyatakan sebagai akar c=
fungsi. f(b) − f(a)
f(x)
af(b) − bf(a)
c=
f(b) − f(a)
b
c
x
Metode false position juga
menggunakan dua batas seperti a
metode bisection. Namun, berbeda
dari metode bisection, pada
metoda false position hanya satu
batas yang berubah. f(x)
Pada contoh sebelum ini, batas a
berubah sementara batas b tetap.
Pada contoh berikut terjadi b
sebaliknya. c
x
a
Menghitung akar fungsi dengan metode false position,
menggunakan a dan b sebagai batas awal:
• jika batas a tetap, batas b berubah:
af(xi ) − xif(a)
xi+1 = (i = 0, 1, 2, ...; x0 = b)
f(xi ) − f(a)
bf(xi ) − xif(b)
xi+1 = (i = 0, 1, 2, ...; x0 = a )
f(xi ) − f(b)
xi − xi+1
∆ rel =
xi+1
Prinsip: Buat garis singgung kurva f(x) di titik di sekitar akar fungsi.
Titik tempat garis singgung itu memotong garis nol ditentukan
sebagai akar fungsi.
x
a p(x) = garis singgung kurva
f(x) di titik f(a)
akar fungsi sebenarnya
f(x)
c
x
a
p(x)
f(a)
p(c) = 0 c=a−
f'(a)
Langkah: f(x)
1. Perkirakan akar fungsi.
c
2. Buat garis singgung pada titik x
sesuai akar fungsi yang a
diperkirakan itu, lalu cari
titik potongnya dengan garis akar fungsi
nol. sebenarnya
3. Titik potong itu merupakan
perkiraan akar fungsi baru.
4. Ulangi langkah 2 dan 3 sampai
dianggap cukup. f(x)
5. Titik potong garis nol dan a
garis singgung kurva yang
x
terakhir dinyatakan sebagai c
akar fungsi. f(a)
c=a−
f'(a)
1
f(x)
Contoh perkiraan akar
fungsi awal yang baik
perkiraan akar fungsi x
makin mendekati akar
fungsi sebenarnya.
1
f(x)
Contoh perkiraan akar
fungsi awal yang buruk
perkiraan akar fungsi x
makin menjauhi akar
fungsi sebenarnya.
2
Menghitung akar fungsi dengan metode Newton-Raphson:
f(xi )
xi+1 = xi − (i = 0, 1, 2, ...; x0 = a )
f'(xi )
xi − xi+1
∆ rel =
xi+1
Kembali ke metode False Position, untuk contoh batas b tetap, akar fungsi
dicari sebagai berikut:
Pada metode Secant, batas tidak dijaga tetap, melainkan berubah. Akar
fungsi dicari sebagai berikut:
xi-2f(xi-1 ) − xi-1f(xi-2 )
Jadi, mulai dari i = 3, akar fungsi dihitung dengan: xi =
f(xi-1 ) − f(xi-2 )
f(x) f(x)
b b
x x
a x1
x1 x2
I II
x3
III III
Akar fungsi pada metode Secant untuk i = 1, 2 bisa dihitung dengan metode
yang lain atau ditebak. Mulai i = 3, akar fungsi dihitung dengan rumus:
-1
x f(x ) − xi-1f(xi-2 ) f(xi-1 ) − f(xi-2 )
xi = i-2 i-1 xi = xi-1 − f(xi-1 )
f(xi-1 ) − f(xi-2 ) xi-1 − xi-2
Yang menarik, jika i makin besar, maka beda antar dua akar fungsi yang
berturutan semakin kecil, sehingga
Kesalahan relatif semu dihitung sama seperti pada metode False Position
atau Newton-Raphson.
Kecepatan Konvergensi
akar fungsi
a b
x1
x2
x3
x4
ε1 = x2 − x1 , ε2 = x3 − x2 , ε3 = x4 − x3
ε2 = 21 ε1 , ε3 = 21 ε2
-1
f(xi ) − f(a)
False Position: xi+1 = xi − f(xi ) (atau a diganti b)
xi − a
f(xi )
Newton-Raphson: xi+1 = xi −
f'(xi )
-1
f(xi ) − f(xi-1 )
Secant: xi+1 = xi − f(xi )
xi − xi-1
xj = ?
Soal: 2x − 3y + 2z = −6 (1)
3 persamaan dan
− x + 2y − 3z = 2 (2) 3 unknown
x+ y− z =0 (3)
Jawab: 2x − 3y + 2z = −6 (1)
eliminasi x:
0.5y − 2z = −1 (2) pers. (2) + 0.5 pers. (1)
2.5y − 2z = 3 (3) pers. (3) – 0.5 pers. (1)
2x − 3y + 2z = −6 (1)
eliminasi y:
0.5y − 2z = −1 (2) pers. (3) – 5 pers. (2)
8z = 8 (3)
z =1
substitusi mundur:
− 1 + 2z pers. (3) mencari z
y= =2
0.5 pers. (2) mencari y
− 6 + 3y − 2z pers. (1) mencari x
x= = −1
2
Dalam bentuk matriks:
Soal: 2 −3 2 x − 6
−1 2 − 3 y = 2
1 1 − 1 z 0
Jawab: 2 −3 2 x − 6
0 0.5 − 2 y = − 1
0 2.5 − 2 z 3
2 −3 2 x − 6
0 0.5 − 2 y = − 1
0 0 8 z 8
z =1
− 1 + 2z
y= =2
0.5
− 6 + 3y − 2z
x= = −1
2
Eliminasi Gauss
Metode Eliminasi Gauss mencari solusi sebuah sistem persamaan linear
dengan cara seperti ditunjukkan pada contoh sebelum ini:
a11(0) (0)
a12 (0)
a13 ⋯ a1n(0) x1 b1(0)
(1) (1) (1)
(1)
0 a22 a23 ⋯ a2n x2 b2
(2) (2)
x3 = b3(2)
0 0 a33 ⋯ a3n
⋮ ⋮ ⋮ ⋱ ⋮ ⋮ ⋮
(n-1) (n-1)
0 0 0 ⋯ ann x
n bn
bn(n-1)
xn = (n-1)
ann
n
(n- j-1)
b
n-j − ∑a
k =n- j+1
(n- j-1)
x
n - j,k k
xn − j = (n- j-1)
(j = 1, ..., n − 1)
a n - j,n - j
A X = B atau AX = B
= =
A X = B atau AX = B
U
A X = B X = B
L
Langkah:
U U
A = X = B
L L
U
Y = X Y = B
L
Diperoleh:
secara bergantian:
1. matriks L kolom 1, matriks U baris 1
2. matriks L kolom 2, matriks U baris 2
3. …
4. matriks L kolom (n-1), matriks U baris (n-1)
5. matriks L kolom n
Substitusi maju untuk menghitung y:
l11 0 0 ⋯ 0 y1 b1 b1
y1 =
l21 l22 0 ⋯ 0 y2 b2 l11
l l l ⋯ 0 y3 = b3 i−1
31 32 33 bi − ∑ lij yj
⋮ ⋮ ⋮ ⋱ ⋮ ⋮ ⋮ j=1
yi = (i = 2, ..., n)
ln1 ln2 ln3 ⋯ lnn yn bn lii
Jawab: 2 0 0 1 − 1.5 1
A = LU L = − 1 0.5 0 , U = 0 1 − 4
1 2.5 8 0 0 1
− 3
Y = UX, LY = B Y = − 2
1
−1
UX = Y X = 2
1
Kasus Beberapa Sistem Persamaan Linear
Pada kasus yang lebih umum bisa saja terdapat beberapa sistem
persamaan linear dengan nilai B yang berlainan, namun memiliki nilai A
yang sama.
A X = B atau AX = B
a11 a12 a13 ⋯ a1n x11 b11 a11 a12 a13 ⋯ a1n x12 b12
a21 a22 a23 ⋯ a2n x21 b21 a21 a22 a23 ⋯ a2n x22 b22
a a32 a33 ⋯ a3n x31 = b31 a a32 a33 ⋯ a3n x32 = b32
31 31
⋮ ⋮ ⋮ ⋱ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋱ ⋮ ⋮ ⋮
a an2 an3 ⋯ ann xn1 bn1 a an2 an3 ⋯ ann xn2 bn2
n1 n1
• rumus triangulasi:
bnr(n-1)
xnr = (n-1) (r = 1, ..., m)
ann
n
b(n- j-1)
n- j,r − ∑a
k =n - j+1
(n- j-1)
n- j,kx kr
b1r
y1r = (r = 1, ..., m)
l11
i−1
bir − ∑ lij yjr
j=1
yir = (i = 2, ..., n; r = 1, ..., m)
lii
x4 = 1 − 1 + 0.5x3 + 2.5x4
x2 = =1
2
3 + 0.5x4
x3 = =1 2 + 4x2 − x3 − 3x4
3.5 x1 = =1
2
2 −4 1 3 2 2 0 0 0 1 − 2 0.5 1.5
−1
A=
2 3 − 2 2
B= − 1 l22 0 0 0 1 u23 u24
L= U=
3 −4 1 2 2 3 l32 l33 0 0 0 1 u34
1 − 3 −1 5 2 1 l l43 l44 0
42 0 0 1
2 −4 1 3 2 0 0 0 2 0 0 0
3 −4 1 2 3 2 0 0 −1 0 0 0
A= L= L=
−1 2 3 − 2 − 1 0 l33 0 3 2 l33 0
1 − 3 −1 1 −1 l l44 1 −1 l l44
5 43 43
2 1 −2 0.5 1.5 2 0 0 0
2 0 1 − 0.25 − 1.25 3 2 0 0
B= U= L=
2 0 0 1 u34 − 1 0 3.5 0
2 0 0 0 1 1 − 1 − 1.75 l
44
2 0 0 0 1 −2 0.5 1.5
¨
s 2 3 2 0 0 0 1 − 0.25 − 1.25
r i 3 L= U=
ba ris − 1 0 3.5 0 0 0 1 − 1/7
ba
1 − 1 − 1.75
2 0
0 0 1
Data Fitting dengan
Metode Least Square
f(x) Keterangan:
Sifat fitting:
tidak selalu p(xi ) = f( xi )
untuk semua xi .
x
Prinsip penentuan fungsi p(x):
j= 0
• Jumlah kuadrat selisih antara p(x) dan f(x) untuk semua titik data:
2
N N N m
S = ∑ ∆i = ∑ (f(xi ) − p(xi ) ) = ∑ f(xi ) − ∑ ajxi
2 2 j
g(x)
x
a
dg(x)
= 2ax + b
dx g(x) memiliki satu titik minimun jika a > 0 atau
2
d g(x) sebaliknya satu titik maksimum jika a < 0.
= 2a
dx 2
S merupakan fungsi kuadratik dalam aj (j = 0, …, m):
2
N m N m
j
( 2 2j 2
)
S(a0 , ..., am ) = ∑ f(xi ) − ∑ ajxi = ∑ ∑ aj xi + ... + f (xi )
i=1 j= 0 i=1 j= 0
N k
∂S(a0 , ..., am ) m
= −2∑ f(xi ) − ∑ ajxi xi
j
(k = 0, ..., m)
∂ak i=1 j= 0
∂ 2S(a0 , ..., am ) N
2
= 2∑ xi2k > 0 (k = 0, ..., m)
∂ak i=1
N k
∂S(a0 , ..., am ) m
= −2∑ f(xi ) − ∑ ajxi xi = 0
j
(k = 0, ..., m)
∂ak i=1 j= 0
m
N j+k N
N N
Definisikan: ckj ≡ ∑ x i
j +k
bk ≡ ∑ f(xi )xik
i=1 i=1
m
maka diperoleh sebuah sistem persamaan linear: ∑c
j= 0
a = bk
kj j (k = 0, ..., m)
Dari data itu jelas p(x) bukan fungsi linear. f(x) p(x)
Jadi, dicoba fungsi kuadratik:
120
p(x) = a0 + a1x + a2x2
3 6 14 a0 220
30
6 14 36 a
1
= 530
14 36 98 a 1390 x
2
1 2 3
3 6 14 a0 220 a0 0
0 1 4 a1 = 45 a1 = 25
0 0 1 a 5 a 5
2 2
θ [derajat] E [V/cm]
y
10 0.01794775
15 0.03808997
20 0.05516225 θ E
25 0.05598281
30 0.04795629
35 0.04807485
40 0.06273566
45 0.07853982
50 0.07395442
55 0.04201338
a0 = - 3.557800654975570E - 02
a0 = 8.983713484853211E - 03 a1 = 1.061996221844471E - 03
a1 = 1.324478388111303E - 03 a2 = 8.802185976358352E - 04
m = 3: a2 = 3.487808787880805E - 05 m = 5: a3 = - 5.862332690401015E - 05
a3 = - 8.085809790211842E - 07 a4 = 1.362046192596346E - 06
S = 1.0339E - 03 a5 = - 1.063951754163944E - 08
S = 8.1573E - 05
a0 = - 1.757260839248139E - 02
a1 = 1.596300085173997E - 02 a0 = 1.864754537649403E - 01
a2 = - 3.402768734407800E - 03 a1 = - 4.631839872868015E - 02
a3 = 3.358961098305538E - 04 a2 = 4.007658091692495E - 03
a4 = - 1.368895999268855E - 05 a3 = - 8.985715636865594E - 05
m = 9: a5 = 1.132254508386570E - 07 m = 7: a4 = - 3.230489224228010E - 06
a6 = 8.262829873458547E - 09 a5 = 1.912806006890119E - 07
a7 = - 2.741786330789355E - 10 a6 = - 3.252863805243949E - 09
a8 = 3.317446724324134E - 12 a7 = 1.876184315740421E - 11
a9 = - 1.459511835946927E - 14
S = 3.1629E - 07
S = 1.7528E - 11
Interpolasi
f(x) Keterangan:
Sifat interpolasi:
p(xi ) = f(xi )
untuk semua xi .
x
Interpolasi Lagrange
x − x2 x − x3 x − x1 x − x3 x − x1 x − x2
p(x) = f(x1 ) + f(x2 ) + f(x3 )
x
1 − x2 1 x − x3 x − x
2 1 2 x − x3 x − x
3 1 3 x − x2
N
Secara umum, untuk N data p(x) = ∑ l(x, xi )f(xi )
i=1
rumus interpolasi Lagrange:
x − xj
l(x, xi ) = ∏
j≠i xi − xj
Untuk x = xk (k = 1, …, N):
xi − xj
∏ = 1, (i = k)
xk − xj j≠i xi − xj
l(xk , xi ) = ∏ =
j≠i xi − xj ... xk − xk ... = 0, (i ≠ k)
x −x
i j
x − x2 x − x3 x − x4 x − x1 x − x3 x − x4
l(x, x1 ) = l(x, x2 ) =
x1 − x2 x1 − x3 x1 − x4 x2 − x1 x2 − x3 x2 − x4
x − x1 x − x2 x − x4 x − x1 x − x2 x − x3
l(x, x3 ) = l(x, x4 ) =
x3 − x1 x3 − x2 x3 − x4 x4 − x1 x4 − x2 x4 − x3
Dapat dilihat bahwa, l(x, x1 ) < l(x, x2 ) < l(x, x3 ) < l(x, x4 ) .
Ini berarti, semakin jauh dari x pengaruh data f( xi ) semakin kecil dalam
menentukan nilai p(x). Data yang penting yaitu yang berada di sekitar titik x.
Karena itu, cukup data-data di sekitar titik x yang digunakan.
Dengan kata lain, untuk interpolasi cukup digunakan polinomial p(x) berorde
rendah, contoh berorde 3 (fungsi kubik).
Interpolasi Lagrange Kubik
Diperoleh
3 x − xk
p(x) = ∑ l(x, xj )f(xj ) l(x, xj ) = ∏
k ≠ j xj − xk
j= 0
Catatan:
Karena fungsi interpolasi p(x) dicocokkan dengan data f(x0 = xi-1 ), ..., f(x3 = xi+2 )
maka p(x) berlaku hanya untuk daerah xi-1 ≤ x ≤ xi+2 . Untuk daerah x yang lain
berlaku fungsi interpolasi p(x) yang lain.
pI (x2 ) = f(xi+2 ) II
Dengan kata lain, p(x) bersifat kontinyu. Tetapi, tidak begitu dengan turunannya:
p’(x) bersifat diskontinyu pada batas dua daerah yang bersebelahan.
Interpolasi Hermite Kubik
Jadi, pada interpolasi Hermite diperlukan sebagai data bukan saja f(x)
namun juga turunannya f’(x).
Diperoleh aj (j = 0, 1, 2, 3) sebagai berikut:
2
(
p(x) = ∑ h1 (x, xj )f(xj ) + h2 (x, xj )f'(xj ) )
j=1
2
(x − x1 ) x − x2
h1 (x, x1 ) = 1 − 2
(x1 − x2 ) x1 − x2
2
(x − x2 ) x − x1
h1 (x, x2 ) = 1 − 2
(x2 − x1 ) x2 − x1
2
x − x2
h2 (x, x1 ) = (x − x1 )
x1 − x2
2
x − x1
h2 (x, x2 ) = (x − x2 )
x2 − x1
Pada interpolasi Hermite bukan saja p(x) yang dicocokkan dengan data f(x) namun
juga turunannya p’(x) dicocokkan dengan data f’(x). Karena itu, baik p(x) maupun
p’(x) bersifat kontinyu. Ini berbeda dari yang ditemui pada interpolasi Lagrange.
Interpolasi Hermite Orde Lebih Tinggi
Secara umum fungsi interpolasi Hermite p(x) berupa polinomial berorde (2n - 1)
memerlukan n data f(x) dan n data f’(x):
n
(
p(x) = ∑ h1 (x, xj )f(xj ) + h2 (x, xj )f'(xj ) )
j=1
dengan:
( )
h1 (x, xj ) = 1 − 2(x − xj )l'(xj ) l2 (x, xj )
h2 (x, xj ) = (x − xj )l2 (x, xj )
x − xk
l(x, xj ) = ∏
k ≠ j xj − xk
1
l'(xj ) = ∑
k ≠ j (xj − xk )
Interpolasi Hermite Kubik tanpa Data f’(x)
Interpolasi Hermite memerlukan sebagai data selain f(x) juga f’(x). Pada
beberapa kasus bisa saja data f’(x) tidak tersedia, melainkan hanya data f(x).
Pada kasus ini sebenarnya interpolasi Hermite tidak bisa dipakai. Tetapi, jika
f’(x) bisa diperoleh melalui pendekatan (approximation) maka, interpolasi
Hermite bisa dipakai.
f’( xi ) dapat dihitung sebagai turunan sebuah fungsi kuadratik g(x), yang
dicocokkan dengan data f(x) pada titik-titik xi-1 , xi , xi+1 :
g(xi-1 ) = f(xi-1 )
g(x) = ax 2 + bx + c g(xi ) = f(xi ) (a, b, c)
g(xi+1 ) = f(xi+1 )
f'(xi ) ≅ g'(xi ) = 2axi + b
Dapat dilihat bahwa, proses pencarian f’(x) ini berdiri sendiri, berada di luar
atau bukan bagian dari proses interpolasi Hermite. Dengan begitu, sifat
kontinyu fungsi interpolasi Hermite p(x) dan turunannya p’(x) tidak berubah.
Dari sistem persamaan linear:
diperoleh:
sehingga:
3
p(x) = ∑ h(x, xj )f(xj ) (xi ≤ x ≤ xi+1 ; x0 = xi-1 , x1 = xi , x2 = xi+1 , x3 = xi+2 )
j= 0
x1 − x2 1
h(x, x0 ) = h2 (x, x1 )
x0 − x2 (x0 − x1 )
1 1 x − x3 1
h(x, x1 ) = h1 (x, x1 ) + h2 (x, x1 ) + + h2 (x, x2 ) 2
x1 − x2 x1 − x0 x1 − x3 (x1 − x2 )
1 1 x − x0 1
h(x, x2 ) = h1 (x, x2 ) + h2 (x, x2 ) + + h2 (x, x1 ) 1
x2 − x1 x2 − x3 x2 − x0 (x2 − x1 )
x − x1 1
h(x, x3 ) = h2 (x, x2 ) 2
x3 − x1 (x3 − x2 )
Interpolasi Spline Kubik
Seperti interpolasi Lagrange, interpolasi Spline kubik juga memerlukan hanya
f(x) sebagai data. Namun, turunan fungsi interpolasi Spline kubik p’(x) dibuat
bersifat kontinyu.
p(x) = di + ci (x − xi ) + bi (x − xi )2 + ai (x − xi )3 ≅ f(x)
p''i+1 ≡ p''(xi+1 ) = 2bi + 6aihi pi+1 ≡ p(xi+1 ) = di + cihi + bihi2 + aihi3 = f(xi+1 ) hi ≡ xi+1 − xi
Jadi,
p''i p''i+1 −p''i pi+1 − pi hip''i+1 +2hip''i
di = pi bi = ai = ci = −
2 6hi hi 6
sehingga diperoleh:
p(x) telah dicocokkan dengan data f(x) di titik-titik batas interval, sehingga
bersifat kontinyu. Untuk membuat p’(x) kontinyu maka dicari ekspresi p’(x)
untuk daerah sebelumnya xi-1 ≤ x ≤ xi :
pi+1 − pi pi − pi-1
hi-1p''i-1 +2(hi-1 + hi )p''i +hip''i+1 = 6 − (i = 2, ..., N - 1)
hi hi-1
Untuk menghitung p(x) diperlukan p’’(x) di semua N titik data. (N-2) buah
persamaan di atas tidak cukup untuk mendapatkan p’’(x) di semua titik data.
Masih diperlukan 2 persamaan lagi, yang diperoleh dengan mengevaluasi p’(x) di
titik awal x = x1 (memakai ekspresi p’(x) untuk x1 ≤ x ≤ x2 ) dan akhir x = xN
(memakai ekspresi p’(x) untuk xN-1 ≤ x ≤ xN ). Didapat:
p −p
(i = 1) 2h1p''1 +h1p''2 = 6 2 1 − p'1
h1
p −p
(i = N) hN-1p''N-1 +2hN-1p''N = 6 p'N − N N-1
hN-1
Ada dua cara. Pertama yang disebut spline alamiah yaitu, menetapkan p’’(x) di
titik awal x = x1 dan akhir x = xN sama dengan nol. Kedua, menebak nilai p’(x) di
titik awal x = x1 dan akhir x = xN .
Interpolasi Multidimensi
Jika data bergantung pada lebih dari satu variabel, maka dilakukan interpolasi
multidimensi. Metode interpolasi yang telah disampaikan bisa dipakai untuk
melakukan interpolasi multidimensi. Sebagai contoh di sini ditunjukkan
interpolasi 2 dimensi. Untuk dimensi lebih tinggi berlaku cara yang sama.
n m
p(x, y) = ∑ S(x, xi )∑ S(y, yj )f(xi , yj )
i=1 j=1
3 3
p(x, y) = ∑ l(x, xi )∑ l(y, yj )f(xi , yj )
i= 0 j= 0
x − xk
l(x, xi ) = ∏
k ≠i xi − xk
y − ys
l(y, yj ) = ∏
s ≠ j yj − ys
Kembali ke contoh problem least square:
Kuat medan listrik E di sekitar sebuah benda berbentuk lempeng
diukur pada jarak 10 cm dari pusat massanya dan arah yang
bervariasi. Arah dinyatakan dalam sudut θ terhadap sumbu y yang
ditetapkan sebelum pengukuran. Diperoleh data sebagai berikut:
θ [derajat] E [V/cm]
y
10 0.01794775
15 0.03808997
20 0.05516225 θ E
25 0.05598281
30 0.04795629
35 0.04807485
40 0.06273566
45 0.07853982
50 0.07395442
55 0.04201338
f(x) f(x)
analitik numerik
∫ f(x) dx ∑ w f(x )
i
i i
a
x x
a b a b
b N
I = ∫ f(x) dx ≅ ∑ wif(xi )
a i=1
Dilihat dari titik-titik xi tempat integrand f(x) dihitung, ada teknik integrasi
numerik yang menggunakan xi berjarak tetap dan ada yang memakai xi
berjarak tidak tetap.
Kurva integrand f(x) diinterpolasi dengan sebuah garis lurus (f(x) diinterpolasi
dengan fungsi linier / polinomial orde 1):
b b N
I = ∫ f(x) dx ≅ ∫ p(x) dx = ∑ wip(xi ), p(x) = r + sx
a a i=1
f(x)
∫ p(x) dx
a
x
a b
Dengan diketahui hanya p(a) dan p(b) (r dan s tidak dicari), maka integrasi
numerik dikerjakan untuk N = 2:
b 2
Mencari w1 dan w2 :
b
w1 + w2 = b - a 1
1 w1 = w2 = (b − a)
aw1 + bw2 = (b2 − a2 ) 2
2
b
h
Rumus quadrature trapezoid: I = ∫ f(x) dx ≅ (f(a) + f(b) ) (h = b − a)
a
2
Cara yang sama seperti pada quadrature trapezoid bisa dipakai untuk polinomial
p(x) orde lebih tinggi. Contoh, quadrature Simpson memakai p(x) fungsi
kuadratik / polinomial orde 2 untuk menginterpolasi integrand f(x):
c c N
I = ∫ f(x) dx ≅ ∫ p(x) dx = ∑ wip(xi ), p(x) = r + sx + tx2
a a i=1
f(x)
a+c
dengan b= x
2 a b c
Integrasi numerik dikerjakan untuk N = 3:
c 3
Mencari w1 , w2 , w3:
p(x) = r + sx + tx2
c
∫
2 2 2
(r + sx + tx ) dx = w1 (r + sa + ta ) + w2 (r + sb + tb )
a
+ w3 (r + sc + tc2 )
1 1
r(c - a) + s(c2 − a2 ) + t(c3 − a3 ) = r(w1 + w2 + w3 ) + s(aw1 + bw2 + cw3 )
2 3
+ t(a2w1 + b2w2 + c2w3 )
w1 + w2 + w3 = c - a 1
w1 = w3 = (c − a)
1 6
aw1 + bw2 + cw3 = (c2 − a2 )
2 2
1 w2 = (c − a)
a2w1 + b2w2 + c2w3 = (c3 − a3 ) 3
3
c
h
Diperoleh Rumus quadrature Simpson: I = ∫ f(x) dx ≅ (f(a) + 4f(b) + f(c) )
a
3
c−a
dengan h = yaitu jarak antar titik xi tempat f(x) dihitung: h = b − a = c − b
2
Dengan cara yang sama, menggunakan p(x) polinomial orde 3 diperoleh rumus
quadrature Simpson 3 8 :
d
3h d-a
I = ∫ f(x) dx ≅ (f(a) + 3f(b) + 3f(c) + f(d) ) h = = b − a = c − b = d − c
a
8 3
e
2h e-a
I = ∫ f(x) dx ≅ (7f(a) + 32f(b) + 12f(c) + 32f(d) + 7f(e) ) h = = b− a
45 4
a
= c −b
= d−c
= e − d
Integrasi Komposit
b
I = ∫ f(x) dx ≅ h[21 (f0 + f8 ) + f1 + f2 + f3 + f4 + f5 + f6 + f7 ]
a
f(x)
x
a b
h
Integrasi komposit yang menggunakan quadrature trapezoid dan Simpson;
daerah integrasi [a,b] yang dibagi 3:
b
h1
I = ∫ f(x) dx ≅ (fa + 2fa +h1 + fc ) + h2 (fc + 4fc+h2 + fb )
a
2 3
f(x)
Simpson
trapezoid
x
a c b
h1 h1 2h2
Quadrature Gaussian
b n
∫ v(x)O (x)O
n m (x) dx = δnm , On (x) = ∑ bixi
a i= 0
Contoh:
1
On = 2n +1
P , Pn = polinomial Legendre
2 n ∫ O (x)O
-1
n m (x) dx = δnm
∞
On = n!1 Ln , Ln = polinomial Laguerre ∫e
-x
On (x)Om (x) dx = δnm
0
∫ v(x)f(x)dx = ∑ w f(x )
a i=1
i i wi , xi = ?
Mencari xi :
Anggap integrand f(x) merupakan polinomial orde 2N-1 (atau katakan saja f(x)
diinterpolasi dengan polinomial p(x) orde 2N-1):
2N -1 N -1 2N -1
f(x) ≅ p(x) = ∑ aix = r(x) + s(x)
i= 0
i
dengan r(x) = ∑ aix , s(x) =
i= 0
i
∑ i
a
i =N
x i
s(x) bisa ditulis sebagai s(x) = q(x)ON (x) dengan q(x) polinomial orde N-1:
N -1 N -1
q(x) = ∑ dix = ∑ ciOi (x)i
i= 0 i= 0
b N -1 b N -1
Maka: ∫ v(x)s(x)dx = ∑ c ∫ v(x)O (x)O
a i= 0
i
a
i N (x)dx = ∑ ciδiN = 0
i= 0
b N N
Secara numerik: ∫ v(x)s(x)dx = ∑ w s(x ) = ∑ w q(x )O
a i=1
i i
i=1
i i N (xi ) = 0
∫ v(x)f(x)dx = ∑ w f(x )
a i=1
i i ∫ v(x)s(x)dx = ∑ w s(x )
a i=1
i i
Integrasi numerik yang sama tentu berlaku juga untuk integrand polinomial orde
lebih rendah, contohnya r(x), yang berorde N-1:
b N N-1
∫ v(x)r(x)dx = ∑ wir(xi ),
a i=1
r(x) = ∑ aixi
i= 0
Dari penurunan rumus quadrature trapezoid, Simpson dll sebelum ini diketahui
bahwa untuk mencari wi bisa digunakan r(x) sembarang polinomial orde N-1
(koefisien ai tidak diperlukan). Karena itu, dipilih r(x) yang memudahkan:
x − xj
r(x) = l(x, xi ) = ∏ , (i, j = 1, ..., N) l(xk , xi ) = δik
j≠i xi − xj
b N b
Diperoleh: ∫ v(x)l(x, xj )dx = ∑ wil(xi , xj ) = wj wj = ∫ v(x)l(x, xj )dx (j = 1, ..., N)
a i=1 a
Pada integrasi numerik Gaussian, diperlukan N buah titik evaluasi xi untuk
integrand f(x) ≅ p(x) polinomial orde 2N-1.
trapezoid : 2N = 2
Simpson : 2N = 3
Simpson 3 8 : 2N = 4
Boole : 2N = 5
dst
On = 2n +1
2 nP: ∫ O (x)O
-1
n m (x) dx = δnm
∫ f(x)dx = ∑ w f(x )
-1 i=1
i i
1 N b
2
Contoh: ∫-1 f(x)dx = ∑ w f(x ) = ∫ f(y)dy
b N
∫ f(y)dy = ∑ u f(y )
i i
i=1 b−a a i i
a i=1
∫ f(x)dx = ∑ w f(x )
-1 i=1
i i
N x w
2 ± 0.577350269189626 1.000000000000000
3 ± 0.774596669241483 0.555555555555556
0.000000000000000 0.888888888888889
4 ± 0.861136311594053 0.347854845137454
± 0.339981043584856 0.652145154862546
5 ± 0.906179845938664 0.236926885056189
± 0.538469310105683 0.478628670499367
0.000000000000000 0.568888888888889
Distribusi xi pada quadrature Gauss-Legendre tidak merata seperti distribusi
pada quadrature trapezoid dan Simpson. Makin dekat ke batas-batas integral
distribusi makin rapat. Distribusi itu simetris terhadap garis x = 0.
Distribusi ini lebih cocok untuk Untuk f(x) yang berkurva tajam di
integrand f(x) yang bentuk kurvanya bagian tengah dan kurang tajam di
lebih tajam di sekitar batas sekitar batas integral diperlukan
integral, sementara kurang tajam di beberapa penanganan (mis. membagi
bagian tengah. daerah integrasi, redistribusi x dll).
Quadrature Gauss-Laguerre
N x w
2 0.585786437626905 0.853553390593274
3.414213562373095 0.146446609406726
4 0.322547689619392 0.603154104341634
1.745761101158347 0.357418692437800
4.536620296921128 0.038887908515005
9.395070912301133 0.000539294705561
Lain-Lain
∞
dx batas integral sampai tak behingga, jika
Contoh: I=∫ dievaluasi langsung memerlukan sangat banyak
1 + x2
0 titik, tidak praktis dan hasilnya bisa saja buruk
1+ y 2
transformasi: x= , dx = 2
dy
1− y (1 − y)
1
2dy
I=∫
-1
2
(1 − y) 1 +( ( ))
1+ y 2
1− y
1
dy quadrature
= 2∫
(1 − y)2 + (1 + y)2 Gauss-Legendre
-1
Meringkas Daerah Integrasi
a 2N
dx wi
Contoh: • I=∫
1 + x 2
= ∑ 2
i=1 1 + xi
-a
a 2N
dx wi
= 2∫
1 + x 2
= 2
i
∑
= N + 1 1 + x 2
0 i
1 2N
dy wi
• I=∫
(1 − y) 2
+ (1 + y) 2
= ∑ 2
i=1 (1 − yi ) + (1 + yi )
2
-1
1 2N
dy wi
= 2∫
(1 − y) 2
+ (1 + y) 2
= 2
i
∑
= N + 1 (1 − y ) 2
+ (1 + y ) 2
0 i i
Beberapa fungsi memiliki simetri, contoh fungsi trigonometri:
2π
[ ] integral tertutup bisa
∫
im(x − a)
I= f(sin(x − a)) + f(cos(x − a)) e dx
0
dimulai dari titik mana saja
2π
∫ [f(sin(x)) + f(cos(x))]e
imx
= dx
0
π telah
[
= ∫ {f(sin(x)) + f(cos(x))}e imx
+ {f( −sin(x)) + f( −cos(x))}e im(x + π)
]dx dipakai
0
π
2
x = x'+ π
∫ [f(sin(x))(e ) ( )
imx
= + eim(π −x) + f(cos(x)) eimx + eim(2π −x) x = −x'
0
( ) (
+ f( −sin(x)) eim(π + x) + eim(2π −x) + f( −cos(x)) eim(π + x) + eim(π −x) dx )]
Menangani Singularitas
a
dx
Contoh: • I=∫ singular pada x = 0
0 (1 + x) x
a a a
dx dx dx
=∫ −∫ +∫ ditambah nol
0 (1 + x) x 0 x 0 x
a
1 1
a
dx subtraksi pada
= ∫ − dx + ∫
integral asal
0 (1 + x) x x 0 x
a
x
= −∫ dx + 2 a
0
1 + x
a
x2f(x)dx
• I=∫ 2 (0 < b2 ≤ a2 ) singular pada x = b
0
(b − x2 )
a ∞
x2f(x)dx b2f(b)dx
=∫ 2 2
−∫ 2 2
ditambah nol (lihat *)
0
(b − x ) 0
(b − x )
=∫
a
(x f(x) − b f(b))dx −
2 2 ∞
b2 f(b)dx subtraksi pada
0
(b2 − x2 ) ∫a (b2 − x2 ) integral asal
=∫
a
(x f(x) − b f(b))dx − 1 bf(b)ln a − b
2 2
0
(b2 − x2 ) 2 a +b
∞ ∞ ∞ ∞
dx 1 1 1 1 dx 1 dx
(*) ∫0 (b2 − x2 ) 2b ∫0 b − x b + x 2b −∫∞b + x 2b −∫∞ x = 0
= + dx = =
Quadrature Filon
Bisa saja ditemui integrand f(x) yang sangat berosilasi; dalam jarak yang
pendek f(x) berubah-ubah naik turun. Dengan macam-macam quadrature yang
sudah disampaikan, integrasi menjadi sulit karena dibutuhkan banyak sekali
titik evaluasi. Integral seperti ini dapat dihitung dengan menggunakan rumus
quadrature Filon (M. Abramowitz & I. A. Stegun, Handbook of Mathematical
Function, Dover Publications, Inc., NY, 1972).
f(x)
x
Quadrature Filon (tanpa suku kesalahan, yang bisa diabaikan):
b
∫ f(x)cos(tx)dx = h[α(th)(f
a
2n sin(tb) − f0 sin(ta)) + β(th)Cgenap + γ(th)Cganjil ]
n
b−a
Cgenap = ∑ f2icos(tx2i ) − 21 (f2n cos(tb) + f0 cos(ta) ) h= = xi+1 − xi
i= 0 2n
n
x0 = a
Cganjil = ∑ f2i−1cos(tx2i−1 )
i=1 fj = f(xj )
b
f(x) 1 n
< f(x) >= ∑ f(xi )
n i=1
xi = bilangan acak : a ≤ xi ≤ b
<f(x)>
b
1 n
I = ∫ f(x)dx ≅ (b - a) ∑ f(xi )
(b-a)<f(x)> a
n i=1
x
a b
Persamaan Differensial
dy
Bentuk umum PD orde 1: y'= = f(x, y)
dx
x0 +h
Dicari y(x) pada titik x = x0 + h : y(x0 + h) = y0 + ∫ f(x, y)dx
x0
f(x,y)
f(x0 , y0 ) f(x,y) dianggap
konstan dan
dihitung pada x = x0.
x
x0 x0 + h
Diperoleh: y(x0 + h)
y(x)
yg diperoleh
x0 +h
y(x0 + h) ≅ y0 + f(x0 , y0 ) ∫ dx
x0
y(x0 + h)
≅ y0 + hf(x0 , y0 ) y0
sebenarnya
x
x0 x0 + h
Metode Euler yang Dimodifikasi
f(x,y)
Diperoleh:
Kali ini dipakai nilai f(x,y) yang merupakan rata-rata dari dua nilai f(x,y),
masing-masing pada titik x0 dan x0 + h :
1
2
[f(x0 , y0 ) + f(x0 + h, y(x0 + h))] f(x,y)
Ini sama dengan menggunakan quadrature trapezoid
untuk mengevaluasi integral:
x0 +h
Diperoleh:
Metode Euler dan variasinya sebelum ini sebetulnya termasuk metode Runge-
Kutta, yang menyatakan solusi PD y(x) dalam turunannya f(x,y), yang dihitung
untuk argumen x,y yang bervariasi. Sebuah metode Runge-Kutta disebut
berorde n jika memiliki suku koreksi O(hn+1 ) (diperoleh dari ekspansi Taylor):
2
Euler : y(x0 + h) = y0 + hf(x0 , y0 ) + O(h )
Euler yg dimodifikasi: y(x0 + h) = y0 + hf(x0 + 21 h, y0 + 21 hf(x0 , y0 )) + O(h3 )
Euler yg lebih baik : y(x0 + h) = y0 + 21 h[f(x0 , y0 ) + f(x0 + h, y0 + hf(x0 , y0 ))] + O(h3 )
x0 +h
∫ f(x, y)dx ≅ 1
6 h[f(x0 , y0 ) + 4f(x0 + 1
2 h, y(x0 + 1
2 h)) + f(x0 + h, y(x0 + h))]
x0
f1 dan f2 memiliki nilai berbeda, karena dihitung untuk nilai argumen y(x0 + 21 h)
yang berbeda: menurut metode Euler, y(x0 + 21 h) dapat diperoleh melalui 2
persamaan:
dengan:
d2 y
Bentuk umum PD orde 2: y''= 2 = f(x, y, y')
dx
Masalah PD orde 2
berubah menjadi
masalah PD orde 1.
Contoh penyelesaian dengan metode Euler yang lebih baik (improved):
Alur perhitungan:
x0 + h → x0 , u(x0 + h) → u0 , y(x0 + h) → y0
Contoh penyelesaian dengan metode Runge-Kutta orde 4:
Alur perhitungan:
x0 + h → x0 , u(x0 + h) → u0 , y(x0 + h) → y0
PD dengan Syarat Batas
terikat terikat
Bentuk umum PD orde 1 & 2 linear: (1) y'= f(x, y) = d(x) − e(x)y
(2) y''= g(x, y, y') = a(x) − b(x)y − c(x)y'
Diketahui: x0 ≤ x ≤ xn
y(x0 ) = y0 y(x) = ?
y(xn ) = yn
xn − x0
Dicari yi = y(xi ) pada titik xi = x0 + ih (i = 1, ..., n − 1) dengan h = .
n
Metode Finite Differences
(1) y'+e(x)y = d(x)
yi+1 − yi−1
(2) y''+c(x)y'+b(x)y = a(x) y'i ≅
2h
y − 2yi + yi−1
(1) y'i +ei yi = di y''i ≅ i+1
h2
(2) y''i +ci y'i +bi yi = ai
yi+1 − yi−1
(1) + ei yi ≅ di
2h
y − 2yi + yi−1 yi+1 − yi−1
(2) i+1 2
+ ci + bi yi ≅ ai
h 2h
n
1 n
sistem persamaan linear: ∑a x ij j = bi (i = 1, ..., n) solusi: xi =
aii
bi − ∑ aijxj
j=1 j≠i
Pencarian solusi dimulai dengan nilai awal xi(0) (i = 1, …, n) hasil perkiraan /
tebakan. Dengan nilai tebak awal ini diperoleh nilai perkiraan berikut xi(1) melalui:
1 n
x i
(1)
= bi − ∑ aijxj (i = 1, ..., n)
(0)
aii j≠i
Demikian seterusnya berulang-ulang, nilai perkiraan pada langkah ke k diperoleh
dari nilai perkiraan pada langkah ke k-1:
1 n
xi
(k)
= bi − ∑ aijxj(k-1) (i = 1, ..., n)
aii j≠i
Pencarian dihentikan setelah didapat nilai xi yang konvergen yaitu, yang tidak
atau sedikit berubah dari nilai yang diperoleh pada langkah sebelumnya:
xi(k-1)
1 − (k) < ε, ε = bilangan kecil
xi
Iterasi Gauss-Siedel
1
Rumus iterasi Jacobi dapat ditulis: x i
(k)
= bi − ∑ aijxj − ∑ aijxj
(k -1) (k -1)
Jika pada tiap langkah pencarian dilakukan dengan urutan i yang makin besar,
(k) (k)
maka semua xj<i sudah diperoleh ketika mencari xi .
Sebaliknya, jika dilakukan dengan urutan i yang makin kecil, maka semua xj(k)
>i
(k)
sudah diperoleh ketika mencari xi .
(k) (k)
Karena itu, nilai xj<i atau xj>i itu bisa langsung dipakai untuk mencari xi(k),
sehingga iterasi mencapai nilai konvergen menjadi lebih cepat:
1
xi(k) =
aii
bi − ∑ a x
ij j
(k)
− ∑ a x
ij j
(k -1)
(i = 1, 2, ..., n)
j<i j>i
1
xi
(k)
= bi − ∑ aijxj − ∑ aijxj
(k -1) (k)
(i = n, ..., 2, 1)
aii j<i j>i
1
(1) yi(k) ≅
2eih
(
2dih + yi(k-1-1) − yi(k+1-1) )
1 cih (k-1) cih (k-1)
(2) yi(k) ≅ 2
(2 − bih2 ) i 1 − 2 yi-1 + 1 + 2 yi+1
− a h +
1
(1) yi(k) ≅
2eih
(
2dih + yi(k) (k -1)
-1 − yi+1 )
1 cih (k) cih (k-1)
(2) yi(k) ≅ 2
− a h 2
+ 1 − yi-1 + 1 + yi+1
(2 − bih ) i
2 2
Bentuk umum PD eliptik: ∇2ψ(r ) = −4π ρ (r )
∂2 ∂2
Untuk kasus 2 dimensi: 2 + 2 ψ(x, y) = −4π ρ (x, y)
∂x ∂y
∂2 ψ(xi , yj+1 ) − 2ψ (xi , yj ) + ψ(xi , yj-1 ) ψi, j+1 − 2ψi, j + ψi, j-1
ψ(x, y) ≈ =
∂y2 x ,y
h 2
h 2
i j
(h = xi+1 − xi = yj+1 − yj )
Dicari
distribusi
Diperoleh: [
ψi, j = h2 π ρi, j + 41 ψi+1, j + ψi-1, j + ψi, j+1 + ψi, j-1 ] spasial ψ .
i,j+1 Langkah:
1. Buat grid pada bidang xy, dengan jarak
terdekat antar titik h.
i-1,j i,j i+1,j 2. (Dianggap nilai pada batas-batas bidang
xy diketahui.)
i,j-1 Hitung dengan rumus :
y
[
ψi, j = h2 π ρi, j + 41 ψi+1, j + ψi-1, j + ψi, j+1 + ψi, j-1 ]
secara berurutan ψi, j untuk i = 1 & j = 1,
2, 3, ..., lalu i = 2 & j = 1, 2, 3, ..., i = 3 &
j = 1, 2, 3, ... dan seterusnya.
3. Jika dalam langkah 2 ditemui nilai ψi, j
h yang belum diketahui, gunakan nilai
x tebakan.
h 4. Ulangi langkah 2 – 3 sampai dicapai
kestabilan untuk nilai ψi, j di semua titik:
(iterasi sebelum) (iterasi berikutnya)
ψ0,0 ψi, j − ψi, j < ε (bilangan kecil)
Persamaan Differensial Parabolik
2 1 ∂
Bentuk umum PD parabolik: ∇ − ψ(r , t) = −4π ρ (r , t)
Γ ∂t
∂2 1 ∂
Untuk kasus 2 dimensi: 2 − ψ(x, t) = −4π ρ (x, t)
∂x Γ ∂t
t Γht
ψi, j+1 = 4Γ ht π ρi, j + ψi, j + 2
hx
(
ψi+1, j − 2ψi, j + ψi-1, j )
secara berurutan ψi, j+1 untuk j = 0 & i = 1, 2, 3,
..., lalu j = 1 & i = 1, 2, 3, ..., j = 2 & i = 1, 2, 3,
... dan seterusnya.
Kasus khusus:
ht Jika ρ dan nilai pada batas-batas daerah x
x tetap (tidak bergantung waktu), maka akan
tercapai suatu waktu t, bahwa ψi, j+1 tidak
hx berubah lagi (atau berubah hanya sedikit,
sehingga dapat diabaikan):
2 1 ∂2
Bentuk umum PD hiperbolik: ∇ − 2 2 ψ(r ) = −4π ρ (r )
c ∂t
∂2 1 ∂2
Untuk kasus 2 dimensi: 2 − 2 2 ψ(x, t) = −4π ρ (x, t)
∂x c ∂t
∂2 ψ(xi , tj+1 ) − 2ψ (xi , tj ) + ψ(xi , tj-1 ) ψi, j+1 − 2ψi, j + ψi, j-1
ψ(x, t) ≈ =
∂t2 xi ,tj
ht
2
h 2
t Untuk tiap
(hx = xi+1 − xi , ht = tj+1 − tj ) posisi dicari
perubahan ψ
terhadap
2 2
c ht waktu.
ψ
Diperoleh: i, j+1 = 4c 2 2
h t π ρi, j + 2ψi, j − ψi, j-1 +
hx2
(ψi +1, j − 2ψi, j + ψi-)
1, j
Untuk j = 0 diperoleh ψi,1 sebagai berikut:
c2ht2
2 2
ψi,1 = 4c h π ρi,0 + 2ψi,0 − ψi,-1
t + 2 (ψi+1,0 − 2ψi,0 + ψi-1,0 )
hx
?
∂
Anggap
∂
∂t ψ(x, t) pada semua x dan t = 0 diketahui: ψ(x, t) = bi
∂t xi ,t0
Dengan demikian:
c2ht2
• untuk j = 0:
2 2
ψi,1 = 2c h π ρi,0 + biht + ψi,0 +
t (ψi+1,0 − 2ψi,0 + ψi-1,0 )
2hx2
c2ht2
• untuk j > 0: ψi, j+1
2 2
(
= 4c h π ρi, j + 2ψi, j − ψi, j-1 + 2 ψi+1, j − 2ψi, j + ψi-1, j
t
hx
)
i,1
Langkah:
1. Buat grid pada bidang xt, dengan lebar hx
untuk arah x dan ht untuk arah t.
i-1,0 i,0 i+1,0 2. (Dianggap nilai awal dan nilai pada batas-batas
i,j+1 daerah x diketahui.)
Hitung dengan rumus :
c2ht2
2 2
ψi,1 = 2c h π ρi,0 + biht + ψi,0 +
t 2
(ψi+1,0 − 2ψi,0 + ψi-1,0 )
i-1,j i,j i+1,j 2hx
c2ht2
t i,j-1 ψi, j+1 2 2
(
= 4c h π ρi, j + 2ψi, j − ψi, j-1 + 2 ψi+1, j − 2ψi, j + ψi-1, j
t
hx
)
secara berurutan ψi, j+1 untuk j = 0 & i = 1, 2, 3,
..., lalu j = 1 & i = 1, 2, 3, ..., j = 2 & i = 1, 2, 3,
... dan seterusnya.
ht
x
ψ0,0 hx
Persamaan Eigenvalue
Contoh, lagi, gelombang pada tali yang kedua ujungnya diikat. Pada suatu waktu
simpangan di sepanjang tali y(x) memenuhi PD orde 2:
d2
f(x) 2 y(x) = ky(x)
dx
dengan k berhubungan dengan frekwensi, yang nilainya tidak sembarang, yang
menunjukkan modus gelombang. Untuk tiap-tiap modus/frekwensi/k yang
mungkin, berlaku simpangan y(x) tertentu. Dengan kata lain, k merupakan
eigenvalue untuk eigenfunction y(x). Persamaan di atas disebut persamaan
eigenvalue.
f
Dengan metode Finite Differences, PD di atas menjadi: i2 (yi+1 − 2yi + yi−1 ) = kyi
h
yang membentuk persamaan matriks:
⋱ ⋱ ⋮ ⋮
⋱ ⋱ ⋱ yi−1 y
i−1
fi − 2fi fi k=?
2 yi = k yi
h h2 h 2
y=?
⋱ ⋱ ⋱ yi+1 yi+1
⋮
⋱ ⋱ ⋮
Metode Pangkat (Power Method)
Ax= y y→x
n n n
Untuk kali pertama: y (1)
= A x = A∑ ciui = ∑ ciAui = ∑ ciλiui
i=1 i=1 i=1
n n n
Setelah m kali iterasi diperoleh: y (m) m
=A x =A m
∑cu = ∑cA u = ∑c λ
i=1
i i
i=1
i
m
i
i=1
m
u
i i i
λi≠k
Anggap λk merupakan eigenvalue terbesar: <1
λk
Maka, jika m besar (banyak iterasi):
λim
y (m)
= A x = c λ u + ∑ c λ u = λ ck uk + ∑ ci m ui ≅ ck λkmuk
m m
k k k
m
i i i
m
k
i ≠k i ≠k λk
Jika λk(m) merupakan nilai λk yang diperoleh setelah iterasi sebanyak m kali,
maka iterasi dihentikan setelah dicapai nilai yang konvergen:
λk(m-1)
1 − (m) < ε, ε = bilangan kecil
λk
Untuk mencari eigenvalue terbesar kedua, hilangkan uk dari perhitungan. Jadi,
dipakai vector awal baru x’:
n n
x'= (A − λk ) x = ∑ ci (A − λk )ui = ∑ ci (λi − λk )ui = ∑ ci (λi − λk )ui = ∑ diui (di ≡ ci (λi − λk ))
i=1 i=1 i ≠k i≠ k
λi≠k ≠l
Anggap λl merupakan eigenvalue terbesar kedua: <1
λl
A-1 x = y y→x
n
Setelah m kali iterasi diperoleh: y (m)
= (A ) x = ∑ ci (λi-1 ) m ui
-1 m
i=1
Jika λs eigenvalue terkecil, maka setelah banyak kali iterasi: y (m) ≅ cs (λs-1 ) m us
xT y (m-1) y (m)
Jadi, λs diperoleh sebagai: λs = T (m) dan us : us ≅
x y y (m)