Anda di halaman 1dari 7

1

PENYELESAIAN PERSAMAAN DIFERENSIAL BIASA


DENGAN METODE NUMERIK

A. Tujuan Praktikum
1. Memahami metode penyelesaian persamaan diferensial dengan metode numerik.
2. Mampu membuat program dengan Delphi sebagai penerapan algoritma metode
numerik untuk penyelesaian persamaan diferensial.
3. Mampu membuat aplikasi berbasis Delphi untuk penerapan persamaan diferensial
pada kasus nyata.
B. Persamaan Diferensial
Persamaan diferensial adalah gabungan antara fungsi yang tidak diketahui secara eksplisit
dan turunan (diferensial)-nya. Contoh pada persamaan pegas berikut
m
J
2
x
Jt
2
+c
Jx
Jt
+kx(t) =0
Dengan m =masa pegas, k =tetapan pegas, c =koefisien redaman, dan x =posisi sebuah titik
pada pegas. Karena x adalah fungsi dari t. Persamaan diatas dapat juga ditulis sebagai berikut
mx"(t) +cx(t) +kx =0
atau
mx" +cx +kx =0
Persamaan diatas mengandungn fungsi x(t) yang tidak diketahui fungsi eksplisitnya, turunan
pertamanya adalah x(t), dan turunan kedua x(t).
Sehingga arti diferensial secara fisis adalah laju perubahan sebuah variabel terhadap variabel
lain. Pada persamaan pegas diatas x(t) menyatakan laju perubahan posisi pegas x terhadap waktu
t.
Persamaan diferensial dikelompokan menjadi dua yaitu
a. Persamaan diferensial biasa (PDB)/Ordinary Differensial Equations (ODE)
PDB adalah persamaan diferensial yang hanya memiliki satu variabel bebas.
Umumnya variabel bebas ini disimbolkan dengan x. Contoh
1.
d
dx
=(x,y)
2.
d
dx
=x +y
2

3. 2
d
dx
+x
2
y y =0
4. y =x
2
+2y
2

Variabel bebas adalah x sedangkan variabel terikatnya adalah y yang merupakan
fungsi dari x atau ditulis sebagai y=f(x).
Berdasarkan turunan tertinggi yang terdapat dalam persamaannya, PDB
dikelompokkan lagi menurut ordenya yang disebut PDB orde 1, PDB orde 2, dst.
b. Persamaan diferensial parsial (PDP) /Partial Differensial Equations (PDE)
PDP adalah persamaan diferensial yang mempunyai lebih dari satu variabel bebas.
Turunan fungsi terhadap setiap variabel bebas dilakukan secara parsial. Contoh
persamaan
d
2
u
dx
2
+
d
2
u
d
2
=3xyc
x+
memiliki variabel bebas yaitu x dan y sedangkan
variabel terikat adalah u yang merupakan fungsi dari x dan y, atau ditulis dengan
u=f(x,y).
Pengertian dari penyelesaian persamaan diferensial adalah mencari solusi unik, yaitu nilai unik
atau konstan dari persamaan diferensial, umumnya dengan diketahui nilai awalnya.
Pada praktikum ini akan dibahas penyelesaian PDB orde 1 dengan beberapa metode numerik.
C. Metode Euler
Suatu PDB orde 1 y
i
=
d
dx
=(x

,y

) yang merupakan turunan pertama memberikan suatu


taksiran langsung dari slope pada x
1
. Dimana f(x
i
, y
i
) adalah persamaan diferensial yang
dievaluasikan pada x
i
dan y
i
. Taksiran ini dapat disubstitusikan menjadi
y
+1
=y

+(x

,y
,
)
Formula ini diacu sebagai metode Euler. Sebuah harga y baru diprediksikan dengan
menggunakan slope untuk mengekstrapolasikan secara linier di sepanjang ukuran langkah h.








x
i+h
x

y

x
i
h

Prediksi
Sebenarnya
Kesalahan
3

Untuk mendapatkan solusi unik dari PDB maka dilakukan dengan memperkecil nilai h.
berdasarkan persamaan diatas maka algoritma metode Euler adalah
1. Tentukan rentang nilai x dan h.
2. Tentukan nilai x
0
dan y
0

3. Lakukan iterasi sebanyak N dengan langkah tiap h (diawali dari x
0
dan y
0
), lalu hitung
y
+1
=y

+(x

,y
,
)
4. Nilai y diperoleh dengan rentang x.

D. Metode Heun (Modifikasi Euler)
Suatu cara untuk memperbaiki perkiraan slope termasuk penentuan dua turunan untuk
interval yaitu pertama pada titik awal dan yang lainnya pada titik akhir. Kedua turunan tersebut
kemudian direratakan agar memperoleh suatu perkiraan slope yang diperbaiki untuk keseluruhan
interval. Pendekatan ini disebut metode Heun.















J ika pada metode Euler, maka slope pada awal interval adalah
y

i
=(x

,y

)

Digunakan untuk mengekstrapolasikan secara linier terhadap y
i+1
yaitu
x
i+h
x

y

x
i
h

slopc =(x
+1
,y
+1
0
)

slopc =(x

,y

)

x
i+h
x

y

x
i
h

slopc =
(x

,y

) +(x
+1
,y
+1
0
)
2

4

y
+1
0
=y

+(x

,y

)
Pada metode Euler standar perhitungan hanya sampai disini. Tetapi pada metode Heun, y
+1
0

yang
dihitung sebelumnya bukan jawaban akhir, oleh karenanya diberikan superskrip 0. Persamaan y
i

disebut persamaan Prediktor, dimana persamaan tersebut dapat digunakan untuk memberikan
taksiran y
i+1
yang memungkinkan kalkulasi perkiraan slope pada akhir interval.
y
+1
i
=(x
+1
,y
+1
0
)
Kemudian kedua slope tersebut digabungkan untuk mendapatkan rata-rata sehingga
y
+1
=y

+
(x

,y

) +(x
+1
,y
+1
0
)
2

Persamaan diatas disebut persamaan Korektor.
Algoritma Heun diuraikan sebagai berikut
1. Tentukan rentang nilai x
0
dan nilai x
akhir

2. Tentukan y
0
, dan h
3. Lakukan iterasi sebanyak N
a. k1=h*fd(x,y);
b. k2=h*(fd(x+h,y+k1));
c. y=y+(k1+k2)/2;
d. x:=x+h;

E. Langkah Praktikum
1. Aplikasi menghitung persamaan diferensial biasa dengan metode Euler\
a. Buka aplikasi Delphi
b. Siapkan pembuatan form, simpan seluruh file/project terlebih dahulu
c. Gunakan komponen berikut, atur properti minimal seperti pada tabel berikut, dan atur
properti yang lain sesuai keinginan.
Nama Object Property Nilai
TForm Caption Metode Euler
Name MetodeEuler
TLabel Caption Nilai x0
TLabel Caption Nilai y0
TLabel Caption Nilai h
TLabel Caption Batas x
TEdit Name edX0
Text
TEdit Name edY0
5

Text
TEdit Name edNilaiH
Text
TEdit Name edBatasX
Text
TEdit Name edError
Text
TButton Caption Hitung
StringGrid Name sgPerbandingan
TChart

d. Susun seluruh object dengan bentuk seperti Gambar 1 , atau sesuai kreasi.

Gambar 1. Susunan Object
i. Isikan program sesuai dengan contoh berikut (contoh ini merupakan potongan
program mulai dari baris deklarasi var)
var
Met odeEul er : TMet odeEul er ;
i : i nt eger ;
x: ar r ay[ 1. . 500] of r eal ;
y: ar r ay[ 1. . 500] of r eal ;
yt r ue: ar r ay[ 1. . 500] of r eal ;
er r or : ar r ay[ 1. . 500] of r eal ;
xx, yy, del t ax, h: r eal ;

i mpl ement at i on
6


{$R *. df m}

/ / f ungsi per samaan di f er ensi al
f unct i on f ( z: r eal ) : r eal ;
begi n
f : =- 2*z*z*z+12*z*z- 20*z+85;
end;

/ / f ungsi sebenar nya hasi l i nt egr al anal i t i s
f unct i on f i nt ( z: r eal ) : r eal ;
begi n
f i nt : =- 0. 5*z*z*z*z+4*z*z*z- 10*z*z+8. 5*z+1;
end;

pr ocedur e TMet odeEul er . bt Hi t ungCl i ck( Sender : TObj ect ) ;
var
j : i nt eger ;
Er r Tot al , MeanEr r : r eal ;
begi n
xx: =st r t oi nt ( edX0. Text ) ;
yy: =st r t oi nt ( edY0. Text ) ;
x[ 1] : =xx;
y[ 1] : =yy;
h: =st r t of l oat ( edNi l ai H. Text ) ;
i : =2;
whi l e xx<st r t of l oat ( edBat asX. Text ) do
begi n
yy: =yy+f ( xx) *h;
xx: =xx+h;
y[ i ] : =yy;
x[ i ] : =xx;
i : =i +1;
end;
sgPer bandi ngan. Col Count : =4;
sgPer bandi ngan. RowCount : =i ;
wi t h sgPer bandi ngan do
begi n
cel l s[ 0, 0] : =' x' ;
cel l s[ 1, 0] : =' y- eul er ' ;
cel l s[ 2, 0] : =' y- sebenar nya' ;
cel l s[ 3, 0] : =' kesal ahan' ;
end;

/ / menghi t ung ni l ai y sebenar nya dar i f ungsi f i nt
f or j : =1 t o i do
begi n
yt r ue[ j ] : =f i nt ( x[ j ] ) ;
er r or [ j ] : =yt r ue[ j ] - y[ j ] ;
end;

/ / menghi t ung er r or r er at a
Er r Tot al : =0;
f or j : =1 t o i do
begi n
Er r Tot al : =Er r Tot al +abs( er r or [ j ] ) ;
end;
7

MeanEr r : =Er r Tot al / i ;
edEr r or . Text : =f l oat t ost r f ( MeanEr r , f f Gener al , 2, 2) ;

/ / menampi l kan dat a di t abel dan gr af i k
char t 1. Ser i es[ 0] . Cl ear ;
char t 1. Ser i es[ 1] . Cl ear ;
f or j : =1 t o i do
begi n
wi t h sgPer bandi ngan do
begi n
cel l s[ 0, j ] : =f l oat t ost r ( x[ j ] ) ;
cel l s[ 1, j ] : =f l oat t ost r ( y[ j ] ) ;
cel l s[ 2, j ] : =f l oat t ost r ( yt r ue[ j ] ) ;
cel l s[ 3, j ] : =f l oat t ost r ( abs( er r or [ j ] ) ) ;
char t 1. Ser i es[ 0] . AddXY( x[ j ] , yt r ue[ j ] ) ;
char t 1. Ser i es[ 1] . AddXY( x[ j ] , y[ j ] ) ;
end;
end;

end;
end.

2. Buat Aplikasi untuk menghitung persamaan diferensial dengan algoritma Heun

Anda mungkin juga menyukai