1
DAFTAR ISI
TUJUAN ...............................................................................................................................................3
TEORI ..................................................................................................................................................3
ALGORITMA ..........................................................................................................................................5
LATIHAN ..............................................................................................................................................5
TUGAS .................................................................................................................................................6
TUJUAN ...............................................................................................................................................7
TEORI ..................................................................................................................................................7
ALGORITMA ..........................................................................................................................................9
LATIHAN ..............................................................................................................................................9
TUGAS ............................................................................................................................................... 10
TUJUAN ............................................................................................................................................. 11
TEORI ................................................................................................................................................ 11
ALGORITMA ........................................................................................................................................ 13
LATIHAN ............................................................................................................................................ 13
TUGAS ............................................................................................................................................... 14
TUJUAN ............................................................................................................................................. 15
TEORI ................................................................................................................................................ 15
ALGORITMA ........................................................................................................................................ 15
LATIHAN ............................................................................................................................................ 19
TUGAS ............................................................................................................................................... 21
1
TUJUAN ............................................................................................................................................. 22
TEORI ................................................................................................................................................ 22
ALGORITMA ........................................................................................................................................ 22
LATIHAN ............................................................................................................................................ 24
TUGAS ............................................................................................................................................... 25
TUJAN ............................................................................................................................................... 26
TEORI ................................................................................................................................................ 26
ALGORITMA ........................................................................................................................................ 27
LATIHAN ............................................................................................................................................ 29
TUGAS ............................................................................................................................................... 30
2
INTERPOLASI LAGRANGE
Tujuan
Teori
Interpolasi merupakan suatu cara untuk menghubungkan satu titik dengan titik yang lain sehingga
memperoleh bentuk pendekatan, seperti pendekatan linier (derajat 1), kuadrat (derajat 2), kubik
(derajat 3) dan seterusnya yang memiliki derajat yang tinggi. Salah satunya adalah interpolasi
Lagrange. Interpolasi Lagrange merupakan konsep pendekatan data yang menggunakan metode
polinomial Lagrange untuk membangun interpolasi polinomian. Bentuk sederhana dari polinomial
adalah
1 𝑏𝑖𝑙𝑎 𝑖 = 𝑘
𝐿𝑛,𝑘 (𝑥𝑖 ) = 𝛿𝑖,𝑘 ≔ {
0 𝑏𝑖𝑙𝑎 𝑖 ≠ 𝑘
Persamaan (1) dapat ditulis bentuk polinomial untuk derajat n sebagai berikut
dimana
𝑥−𝑥𝑖
𝐿𝑛,𝑘 (𝑥) = ∏𝑛𝑖=1,𝑖≠𝑘 𝑥 (3)
𝑘 −𝑥𝑖
Contoh:
Tentukan interpolasi Lagrange derajat dua dimana ketika x = 8 dari data berikut ini;
3
k 1 2
x 5 10
y 1 0
Banyak data N = 2, maka orde yang digunakan adalah m = N-1 = 2-1 = 1. Artinya, contoh di atas
merupakan bentuk polinomial yang linier. Menggunakan persamaan (3) hasil interpolasi dapat
diperoleh.
1 1
𝑃 (𝑥 ) = 1 . ( (𝑥 − 10)) + 0 . ( (𝑥 − 10))
−5 5
4
Gambar 1. Kiri: Data (titik merah). Kanan: Hasil interpolasi Lagrange (garis biru)
Algoritma
Latihan
Buatlah program Fortran terkait dengan interpolasi Lagrange dari data berikut ini:
k 1 2
x 5 10
y 1 0
Simpan data di atas dalam bentuk text file (*.txt) dengan nama LagrangeData.txt
PSEUDOCODE
Set N
Set NT
% READ DATA
Opendata = load('Nama_File.txt');
X = Opendata(:,1); % X kolom 1 dari variable Opendata
Y = Opendata(:,2); % Y kolom 2 dari variable Opendata
5
% LAGRANGE PROCESS
Set XU
Loop J = 1:NT
FUNC = 0.0;
Loop K = 1:N
L = 1.0;
Loop I = 1:N
Kondisi I Tidak saama dengan K
L = L.*((XU(J) - X(I))/(X(K) - X(I)));
End Kondisi
End Loop I
FUNC = FUNC + (Y(K).*L);
End Loop K
YU(J) = FUNC;
End Loop J
% Save Output
fileID = fopen('LagrangeOut.txt','w');
fprintf(fileID,'%6s %6s\r\n','x','y');
fprintf(fileID,'%6.2f %6.2f\r\n',XU,YU);
figure()
plot(X,Y,'r*--')
hold on
plot(XU,YU,'b')
Jika program sudah selesai dan berhasil dibuat, maka plot-lah hasil yang diperoleh!
Tugas
K 1 2 3
X 6 8 23
Y 5 2.4 4
6
FINITE DIFFERENCE (FIRST DERIVATIVE)
Tujuan
Teori
Finitie difference merupakan suatu metode numerik yang digunakan untuk menyelesaikan
persamaan diferensial secara numerik. Secara umum terdapat tiga metode di dalam finite
difference, yaitu forward, backward dan central-difference, dimana bentuk matematisnya adalah
sebagai berikut:
Forward:
𝑓(𝑎+ℎ)−𝑓(𝑎)
𝑓 (𝑥 ) = (1)
ℎ
Backward:
𝑓(𝑎)−𝑓(𝑎−ℎ)
𝑓 (𝑥 ) = ℎ
(2)
Central:
𝑓(𝑎+ℎ)−𝑓(𝑎−ℎ)
𝑓 (𝑥 ) = (3)
2ℎ
Contoh:
Diketahui suatu fungsi f(x) = x2. Tentukanlah hasil turunan dari fungsi tersebut ketika x = 2.
Jawab:
Secara analitik, fungsi f(x) = x2 memiliki turunannya yaitu f’(x) = 2x, maka ketika x = 2 hasil
fungsi turunan diperoleh
𝑓 ′(𝑥 = 2) = 2. (2) = 4
7
Secara numerik dapat dilakukan sebagai berikut (menggunakan Forward Difference):
Atur parameter a sebagai batas awal (a = 0), b sebagai batas akhir (b = 5), dan N banyak data (N
= 100), maka h dapat dihitung,
𝑏−𝑎 5−0 5
ℎ= = = 100 = 0.05
𝑁 100
𝑓 (𝑎) = 𝑓(0) = 02 = 0
𝑓(𝑎+ℎ)−𝑓(𝑎)
𝑓 (𝑥 ) = ℎ
0.0025−0 0.0025
𝑓 (0) = = = 0.05
0.05 0.05
𝑓(𝑎+ℎ)−𝑓(𝑎)
𝑓 (𝑥 ) = ℎ
0.01−0.0025 0.0075
𝑓 (0.05) = = = 0.15
0.05 0.05
Gambar 2, (Kiri): Fungsi x2 dan (Kanan): hasil turunan menggunakan finite difference (biru), hasil
turunan analitik (merah)
8
Proses dari Tahap 1 dan Tahap 2 akan terus dilakukan hingga mencapai batas terkahir ketika b =
5 dengan selang h = 0.05 (N = 100 data). Sehingga hasil akhir secara menyeluruh dalam bentuk
visual adalah seperti pada Gambar 2 di atas. Gambar 2 (kiri) merupakan fungsi asli ketika 𝑓 (𝑥 ) =
𝑥 2 dan fungsi ini disebut sebagai fungsi kuadrat. Setelah fungsi tersebut diturunkan, maka hasilnya
seperti pada Gambar 2 (kanan). Fungsi turunan dari fungsi asli (fungsi kuadrat) akan menghasilkan
fungsi linier, dimana fungsi turunannya adalah 𝑓(𝑥 ) = 2𝑥. Garis biru pada Gambar 2 (kanan)
merupakan hasil turunan menggunakan metode finite difference – forward difference sedangkan
garis merah pada Gambar 2 (kanan) merupakan hasil turunan secara analitik, ketika nilai x
memiliki rentang dari a = 0 sampai b = 5 dengan selang h = 0.05.
Algoritma
Latihan
Buatkah program finite difference untuk kasus forward difference pada fungsi 𝑓 (𝑥 ) = 𝑥 2 .
PSEUDOCODE
Loop I = 1:N
FX(I) = (F(I+1) - F(I))/H;
End Loop I
% Save Output
fileID = fopen('Nama_Output.txt','w');
fprintf(fileID,'%6s %6s %6s\r\n','X','F','FX');
fprintf(fileID,'%6.2f %6.2f %6.2f\r\n',X,F,FX);
9
Set FXA %Set FXA sebagai turunan F (Uji Secara Analitik)
subplot(1,2,1)
plot(X(2:N),F(2:N),'b')
xlabel('X')
ylabel('F(X) = X^{2}')
title('FUNGSI DASAR')
legend('Fungsi Dasar','location','NorthWest')
grid minor
subplot(1,2,2)
plot(X(2:N),FX(2:N),'b','linewidth',1.5)
hold on;
plot(X(2:N),FXA(2:N),'r')
xlabel('X')
ylabel('dF(X) = 2X')
title('FUNGSI TURUNAN')
legend('Forward
Difference','Analitik','location','NorthWest')
grid minor
Tugas
1. Buatlah program finite difference untuk kasus backward difference dan central difference
dengan menggunakan fungsi 𝑓 (𝑥 ) = 2𝑥 4 , dan plotlah hasil perhitungan fungsi awal, serta
turunannya secara numerik dan secara analitik! (untuk a = 0, b = 10 dan N = 100)
2. Apakah hasil antara backward difference dengan central difference dari fungsi yang
digunakan terdapat perbedaan? Jelaskan!
10
HIGH ORDE DERIVATIVE
Tujuan
Teori
Persamaan diferensial merupakan persamaan matematika untuk menjelaskan hubungan nilai suatu
fungsi dan turunannya dalam berbagai orde. Secara analitik proses diferensial dapat dilakukan
dengan cara berikut:
𝑦 = 𝑥𝑛 (1)
𝑑𝑦
= 𝑛𝑥 𝑛−1 (2)
𝑑𝑥
𝑑2 𝑦
= 𝑛(𝑛 − 1)𝑥 𝑛−2 (3)
𝑑𝑥 2
Sehingga untuk mendapatkan diferensial pertama dan kedua dari suatu persamaan matematika 𝑦 =
𝑥 3 dapat ditulis:
𝑦 = 𝑥3 (4)
𝑑𝑦
= 3𝑥 3−1 = 3𝑥 2 (5)
𝑑𝑥
𝑑2 𝑦
𝑑𝑥 2
= 3(3 − 1)𝑥 3−2 = 6𝑥 (6)
Contoh diatas merupakan contoh sederhana untuk menyelesaikan persamaan diferensial. Untuk
menyelesaikan persamaan diferensial yang lebih kompleks, perlu digunakan proses komputasi
dalam menyelesaikannya. Proses komputasi tidak bisa menyelesaikan problem dengan cara
menggunakan persamaan diatas, karena proses komputasi menyelesaikan problem dengan cara
pendekatan (aproksimasi). Salah satu pendekatan yang bisa digunakan untuk menyelesaikan
problem diferensial yaitu dengan menggunakan deret Taylor. Deret Taylor dapat ditulis dengan:
ℎ2 𝑦′′ (𝑥)
𝑦(𝑥 + ℎ) ≈ 𝑦(𝑥 ) + ℎ𝑦 ′ (𝑥 ) + +⋯ (7)
2!
Untuk menyelesaikan turunan pertama, dari deret diatas digunakan dua suku pertama yaitu:
11
Sehingga turunan orde-1 𝑦 ′(𝑥 ) adalah:
𝑦(𝑥+ℎ)−𝑦(𝑥)
𝑦 ′ (𝑥 ) = (9)
ℎ
𝑦′(𝑥+ℎ)−𝑦′(𝑥)
𝑦 ′ ′ (𝑥 ) = (10)
ℎ
𝑦(𝑥+2ℎ)−2𝑦(𝑥+ℎ)+𝑦(𝑥)
𝑦 ′ ′ (𝑥 ) = (11)
ℎ2
Untuk turunan lebih lanjut dapat dilakukan dengan melanjutkan proses turunan seperti pada orde-
2.
Contoh:
𝑦 ′(𝑥 ) = 3𝑥 2
𝑦 ′′(𝑥 ) = 6𝑥
𝑦 ′′(𝑥 ) = 6𝑥 = 6 (2) = 12
Dan secara numerik dapat menggunakan persamaan (11) untuk x = a = 0 dan N = 100, maka
𝑏−𝑎 5−0 5
ℎ= = = = 0.05
𝑁 100 100
12
Persamaan (13) sampai (15) disubtitusi ke dalam persamaan (11)
𝑦(𝑥+2ℎ)−2𝑦(𝑥+ℎ)+𝑦(𝑥)
𝑦 ′ ′ (𝑥 ) = ℎ2
0.001−0.00025+0 0.00075
𝑦 ′′(0) = (0.05)2
= = 0.3
0.0025
Gambar 3. (Kiri): Fungsi awal, f(x) = x3. (Kanan): Fungsi turunan kedua, f’’(x) = 6x
Algoritma
Latihan
PSEUDOCODE
13
% Hitung Forward Difference Orde Pertama
Set X
Set F
Loop I = 1:N
FX(I) = (F(I+2) - (2.*F(I+1)) + F(I))/(H.^2);
End Loop I
% Save Output
fileID = fopen('HighOrdeOut.txt','w');
fprintf(fileID,'%6s %6s %6s\r\n','X','F','FX');
fprintf(fileID,'%6.2f %6.2f %6.2f\r\n',X,F,FX);
subplot(1,2,1)
plot(X(1:N),F(1:N),'b')
xlabel('X')
ylabel('Function')
title('Original Function, f(x) = x^3')
legend('Original Function','location','NorthWest')
grid minor
subplot(1,2,2)
plot(X(1:N),FX(1:N),'b','linewidth',1.5)
hold on;
plot(X(1:N),FXA(1:N),'r')
xlabel('X')
ylabel('Second Derivative Function, f"(x)=6x')
title('High Orde Derivative (Second Orde)')
legend('High Orde (2nd
Orde)','Analytic','location','NorthWest')
grid minor
Tugas
1. Buatlah program untuk high orde derivative (orde kedua) dengan menggunakan fungsi
𝑓 (𝑥 ) = 2𝑥 4 dan plotlah perhitungan fungsi awal, hasil turunannya secara numerik dan
hasil turunan secara analitik! (untuk a = 0, b = 10 dan N = 100)
2. Berapakah, hasil turunan orde kedua secara numerik dan secara analitik ketika x = 3.5, x =
7 dan x = 8? Jelaskan!
14
BISECTION METHOD (METODE BAGI DUA)
Tujuan
1. Memahami konsep bisection method (metode bagi dua) secara umum untuk mencari nilai
akar dari suatu fungsi
2. Memahami konsep bisection method, baik secara matematik dan numerik
3. Mampu merancang program bisection method
4. Mampu memvisualisasikan hasil bisection method
Teori
Metode bagi dua (bisection method) termasuk ke dalam katagori metode kurung yang merupakan
suatu metode numerik sederhana untuk menentukan suatu nilai akar dari suatu persamaan yang
diberikan. Metode ini bekerja dengan membagi dua selang dari batas yang diberikan hingga
menemukan suatu nilai akar dari rentang tersebut dengan nilai kesalahan yang minimum. Metode
ini sangat sederhana dan mudah dipahami. Bentuk umum dari metode bagi dua adalah sebagai
berikut:
𝑥𝑖 + 𝑥𝑓
𝑥𝑟 = (1)
2
dimana:
Prinsip kerja dari metode terkait adalah mencari suatu nilai akar dimana pada fungsi yang
digunakan dimana f(x) = 0, fungsi tersebut harus sama dengan nol. Dalam penggunaan yang lebih
lanjut, dalam metode numerik tidak akan memperoleh hasil yang cocok dengan hasil dari proses
analitik, melainkan mendekati hasil dari proses analitik. Maka dari itu perlu dikontrol dengan
perhitungan nilai kesalahan (error) yang minimum
𝑥𝑟𝑏𝑎𝑟𝑢 − 𝑥𝑟𝑙𝑎𝑚𝑎
𝑒𝑟𝑟𝑜𝑟 = | | 𝑥 100%. (2)
𝑥𝑟𝑏𝑎𝑟𝑢
Algoritma
15
a. f |xi|*f |xr| <= 0, maka atur xf = xr
b. f |xi|*f |xr| >= 0, maka atur xi = xr
c. f |xi|*f |xr| = 0, maka nilai akarnya adalah xr
4. Hitung nilai kesalahan (error) dengan persamaan (2) untuk perhitungan yang sudah
dilakukan.
Contoh:
Berapa nilai akar dari fungsi 𝑓 (𝑥 ) = 𝑥 − 5?
Jawab:
➢ Secara analitik
Syarat untuk memperoleh akar adalah 𝑓(𝑥 ) = 0, maka untuk fungsi 𝑓 (𝑥 ) = 𝑥 − 5 ketika 𝑥 = 0,
diperoleh
𝑓 (0) = 0 − 5 = −5
Dari fungsi di atas tidak memenuhi syarat untuk memperoleh suatu akar. Maka estimasikan nilai
x yang baru. Ketika 𝑥 = 5
𝑓 (5) = 5 − 5 = 0
Fungsi di atas 𝑓 (5) = 0 telah memenuhi syarat untuk memperoleh suatu akar, maka dapat
disimpulkan nilai akarnya ketika x = 5.
➢ Secara Numerik
Atur nilai batas bawah (xi) = 0 dan nilai batas atas (xf) = 5. Cek apakah dengan nilai batas tersebut
telah memenuhi syarat sesuai dengan langkah nomor 2 pada Algoritma di atas.
𝑓 (𝑥𝑖 ) = 𝑥𝑖 − 5
𝑓 (0) = 0 − 5 = −5
16
𝑓(𝑥𝑓 ) = 𝑥𝑓 − 5
𝑓 (5) = 5 − 5 = 0
𝑓 (𝑥𝑖 ) ∗ 𝑓(𝑥𝑓 ) ≤ 0
𝑓 (0) ∗ 𝑓 (5) ≤ 0
−5 ∗ 0 ≤ 0
0≤0 memenuhi sayarat f(xi)*f(xf) <= 0
𝑥𝑖 +𝑥𝑓 0+5 5
𝑥𝑟 = = = 2 = 2.5
2 2
Kemudian, cek kondisi menggunakan langkah ketiga pada bagian Algoritma di atas
Hasil nilai akar sementara yang diperoleh 𝑥𝑟 = 2.5 dengan error sebesar 100 %, maka dapat
dikatakan nilai akar belum diperoleh yang sesuai. Ingat kembali bahwa untuk menentukan nilai
akar suatu fungsi harus memenuhi kondisi 𝑓 (𝑥 ) = 0. Karena ketika 𝑥 = 𝑥𝑟 = 2.5 belum
memperoleh nilai akar yang sesuai, maka hitung kembali dengan nilai batas yang baru, dimana nilai
awal 𝑥𝑖 = 𝑥𝑟 = 2.5 dan nilai akhir 𝑥𝑓 = 5.
17
Dengan menggunakan nilai batas yang baru, ulang kembali langkah-langkah pada Algoritma di
atas. Cek kembali kondisi 𝑓 (𝑥𝑖 ) ∗ 𝑓(𝑥𝑓 ) ≤ 0
𝑓 (𝑥𝑖 ) = 𝑥𝑖 − 5
𝑓 (2.5) = 2.5 − 5 = −2.5
𝑓(𝑥𝑓 ) = 𝑥𝑓 − 5
𝑓 (5) = 5 − 5 = 0
𝑓 (𝑥𝑖 ) ∗ 𝑓(𝑥𝑓 ) ≤ 0
𝑓 (2.5) ∗ 𝑓 (5) ≤ 0
−2.5 ∗ 0 ≤ 0
0≤0 memenuhi sayarat f(xi)*f(xf) <= 0
Kemudian, cek kondisi menggunakan langkah ketiga pada bagian Algoritma di atas
18
Hasil nilai akar sementara yang diperoleh 𝑥𝑟 = 3.75 dengan error sebesar 33.33 %, maka dapat
dikatakan nilai akar belum diperoleh yang sesuai, karena nilai erornya masih besar. Ingat kembali
bahwa untuk menentukan nilai akar suatu fungsi harus memenuhi kondisi 𝑓 (𝑥 ) = 0. Karena ketika
𝑥 = 𝑥𝑟 = 3.75 belum memperoleh nilai akar yang sesuai, maka hitung kembali dengan nilai batas
yang baru, dimana nilai awal 𝑥𝑖 = 𝑥𝑟 = 3.75 dan nilai akhir 𝑥𝑓 = 5. Lakukan proses yang sama
hingga mendapatkan nilai akar ketika 𝑓(𝑥 ) = 0 dan nilai eror yang mendekati 0 %.
Gambar 4. Visualisasi nilai akar yang diperoleh dari fungsi 𝑓 (𝑥 ) = 𝑥 − 5 (garis merah), dimana
nilai akarnya sama 𝑥 = 5 (lingkaran biru).
Latihan
PSEUDOCODE
19
xu=input('Masukkan batas akhir dari interbal dugaan:');
Set eror
x = xl:0.01:xu %Ubah x menjadi area yang diinginkan
if f(xu)*f(xl)<0
%Membuat variabel output;
xg(1) = xu;
yg(1) = xl;
zg(1) = (xu+xl)/2;
for i=2:1000
xr=(xu+xl)/2;
if f(xu)*f(xr)<0
xl=xr;
else
xu=xr;
end
if f(xl)*f(xr)<0
xu=xr;
else
xl=xr;
end
p = plot(x,f(x),'k-'
,xu,f(xu),'c.',xl,f(xl),'b.',xr,f(xr),'r*');
p(2).MarkerSize = 12;
p(3).MarkerSize = 12;
grid on;
pause(1);
xg(i) = xu;
yg(i) = xl;
zg(i) = xr;
xnew(1)=0;
xnew(i)=xr;
if f(xl)*f(xr)== 0 break,end
if abs((xnew(i)-xnew(i-1))/xnew(i))<eror , break , end
end
str = ['Akar daripersamaan adalah: ', num2str(xr), '']
fileID = fopen('bisection.txt','w');
20
fprintf(fileID,'%6s %6s %6s\r\n','Xu','Xl','Xr');
fprintf(fileID,'%6.2f %6.2f %6.2f\r\n',xg,yg,zg);
else
fprintf('Dugaan tidak benar! Masukkan nilai dugaan
baru\n');
End Kondisi
Tugas
1. Buatlah program bisection untuk menentukan nilai akar dari fungsi 𝑓(𝑥 ) = 3𝑥 2 + 9𝑥 + 1!
2. Berapakah nilai akar dari fungsi pada nomor 1 secara analitik? Bandingkan dengan hasil
secara numerik (program)!
3. Plot fungsi tersebut dari batas xa = -5 sampai xb = 5
21
INTEGRASI: METODE EULER
Tujuan
Teori
Setelah mempelajari bagaimana proses numerik untuk kasus diferensial pada bagian finite
difference dan high orde derivative. Selanjutnya proses numerik untuk kasus integral akan dibahas
pada bagian ini. Secara sederhana, intergal merupakan kebalikan dari diferensial dan secara
maematis integral berguna untuk mencari luasan di dalam suatu fungsi. Secara numerik, metode
yang digunakan untuk melakukan integral dari suatu fungsi adalah metode Euler. Tentunya, masih
banyak lagi metode-metode yang bisa digunakan untuk melakukan integral secara numerik.
𝑦1 = 𝑦0 + ℎ𝑦0′ (1)
dimana n = 0, 1, 2, ... dan 𝑦𝑛′ merupakan fungsi 𝑓(𝑦𝑛 ) yang memiliki sampling waktu 𝑡1 = 𝑡0 + ℎ.
secara numerik untuk sampling waktu dapat ditulis
𝑡𝑛+1 = 𝑡𝑛 + ℎ
𝑏−𝑎
𝑛=
ℎ
Algoritma
22
7. Tampilkan x, y (dimana y merupakan fungsi yang sudah diintegralkan)
Contoh:
Jawab:
➢ Secara analitik
𝑓 ′ (𝑥 ) = 𝑥 2
1
𝑓 (𝑥 ) = ( 3 ) 𝑥 3
1 1 8
Jika 𝑥 = 2, maka 𝑓(𝑥 ) = ( ) 𝑥 3 = ( ) (2)3 = ( ) = 2.666
3 3 3
Untuk xbaru = xlama + h = 0 + 0.1 = 0.1, maka 𝑓 ′(𝑥 = 𝑥𝑖 = 0.1) = (0.1)2 = 0.01 dan hasil integral
𝑦𝑏𝑎𝑟𝑢 = 𝑦𝑙𝑎𝑚𝑎 + 𝑓 ′(𝑥 = 0.1) ∗ ℎ = 0 + (0.01 ∗ 0.1) = 0.001, ini untuk daya yang kedua, ibaru =
ilama + 1= 1 + 1 =2
Proses yang sama dilakukan hingga mencapai i = n = 100 data. Ketika data suatu mencapai 100
data, diperoleh hasil intergal seperti pada Gambar 5.
23
Gambar 5. (Kiri): fungsi turunan pertama 𝑓 ′(𝑥 ) = 𝑥 2 , (Kanan): fungsi yang sudah diintegralkan
1
𝑓 (𝑥 ) = ( 3 ) 𝑥 3
Latihan
Buatlah program integrasi menggunakan metode Euler dari fungsi turunan pertama 𝑓 ′ (𝑥 ) = 𝑥 2 !
dengan batas awal 𝑥𝑖 = 0, 𝑥𝑓 = 10, ℎ = 0.1
PSEUDOCODE
X = XI:H:XF;
SET F
i = 1;
Y(1) = 0;
while i < N+H
24
Y(i+1) = Y(i) + F(i).*H;
i = i + 1;
end
% Save Output
fileID = fopen('euler.txt','w');
fprintf(fileID,'%6s %6s %6s\r\n','X','Y','F');
fprintf(fileID,'%6.2f %6.2f %6.2f\r\n',X,Y,F);
subplot(1,2,1)
plot(X(1:N),F(1:N))
title('Fungsi awal f(x)=x^2')
xlabel('X')
ylabel('F(x)')
grid minor
subplot(1,2,2)
plot(X(1:N),Y(1:N))
hold on
plot(X(1:N),FA(1:N))
title('Integrasi Metode Euler dan Analitik')
xlabel('X')
ylabel('Fungsi f(x)=(1/3)x^3')
legend('Integrasi Metode Euler','Integrasi
Analitik','location','NorthWest')
grid minor
Tugas
1. Buatlah program intergasi menggunakan metode Euler dari fungsi turunan pertama
𝑓 ′ (𝑥 ) = 122 + 16𝑥. Dengan 𝑥𝑖 = 0, 𝑥𝑓 = 10, ℎ = 0.01
2. Hasil pada nomor 1, bandingkan dengan hasil secara analitik. Apakah terdapat
perbedaannya? Jelaskan!
25
INTEGRASI: RUNGE-KUTTA ORDE DUA
Tujan
Teori
Sebelumnya telah dipelajari metode Euler untuk menyelesaikan proses integrasi. Untuk
mengembangkan metode tersebut agar lebih mendekati hasil analitk, C. Runge dan M. W. Kutta
mengembangkan metode Runge-Kutta. Metode Runge-Kutta (RK) terus berkembang dari metode
RK orde-2, orde-3 hingga orde-4. Pada praktikum kali ini, metode yang akan digunakan
merupakan metode Runge-Kutta orde-2. Metode runge kutta orde 2 berbentuk;
𝑘1 = 𝑓 (𝑦 ∗ (𝑡0), 𝑡0 )
𝑘2 = 𝑓(𝑦 ∗ (𝑡0 ) + 𝛽ℎ𝑘1 , 𝑡0 + 𝛼ℎ)
𝑦 (𝑡0 + ℎ) = 𝑦 ∗ (𝑡0) + ℎ(𝛼𝑘1 + 𝑏𝑘2 )
∗
Untuk menggunakan persamaan tersebut sebagai algoritma pemograman. Bentuk Integrasi pada
metode Runge-Kutta diformulasikan dengan;
𝑘1 = 𝑓 (𝑦0 , 𝑡0 )
𝑦1 (𝑡0 + ℎ) = 𝑦0 + ℎ𝑘1
𝑘2 = 𝑓 (𝑦1(𝑡0 + ℎ), 𝑡0 + ℎ)
𝑘 +𝑘
𝑦(𝑡0 + ℎ) = 𝑦0 + ℎ ( 1 2 2 ) (1)
26
𝑘1 = 𝑓 (𝑦𝑛 , 𝑡𝑛 )
𝑦1 (𝑡𝑛 + ℎ) = 𝑦𝑛 + ℎ𝑘1
𝑘2 = 𝑓 (𝑦1(𝑡𝑛 + ℎ), 𝑡𝑛 + ℎ)
𝑘 +𝑘
𝑦𝑛+1 = 𝑦𝑛 + ℎ ( 1 2 2 ) (2)
dimana n = 0, 1, 2, ... dan 𝑦𝑛′ merupakan fungsi 𝑓(𝑦𝑛 ) yang memiliki sampling waktu 𝑡1 = 𝑡0 + ℎ.
secara numerik untuk sampling waktu dapat ditulis
𝑡𝑛+1 = 𝑡𝑛 + ℎ
𝑏−𝑎
𝑛=
ℎ
Algoritma
Contoh:
Jawab:
➢ Secara analitik
𝑓 ′ (𝑥 ) = 𝑥 2
1
𝑓 (𝑥 ) = ( ) 𝑥 3
3
1 1 8
Jika 𝑥 = 2, maka 𝑓(𝑥 ) = (3) 𝑥 3 = (3) (2)3 = (3) = 2.666
27
𝑥𝑓 −𝑥𝑖 10−0 10
Hitung banyak data 𝑛 = = = 0.1 = 100, dan Atur x = xi, y = 0 dan i = 0
ℎ 0.1
𝑘 +𝑘 0+0.001
𝑦1 = 𝑦0 + ( 1 2 2 ) = 0 + ( 2 ) = 0.0005, ini untuk data indeks kedua yaitu i = i + 1 = 1 +
1 = 2. Data pertama telah diberikan sebelumnya yaitu y = 0.
𝑘 +𝑘 0.001+0.0041
𝑦𝑛+1 = 𝑦𝑛 + ( 1 2 2 ) = 0.0005 + ( ) = 0.0031, ini untuk data indeks ketiga yaitu i =
2
i + 1 = 2 + 1 = 3.
Proses yang sama dilakukan hingga mencapai i = n = 100 data. Ketika data suatu mencapai 100
data, diperoleh hasil intergal seperti pada Gambar 5.
Gambar 5. (Kiri): fungsi turunan pertama 𝑓 ′(𝑥 ) = 𝑥 2 , (Kanan): fungsi yang sudah diintegralkan
1
𝑓 (𝑥 ) = ( 3) 𝑥 3
28
Latihan
Buatlah program integrasi menggunakan metode Runge-Kutta dari fungsi turunan pertama
𝑓 ′(𝑥 ) = 𝑥 2 ! dengan batas awal 𝑥𝑖 = 0, 𝑥𝑓 = 10, ℎ = 0.1
PSEUDOCODE
XI = input(' MASUKAN X BATAS AWAL:');
XF = input(' MASUKAN X BATAS AKHIR:');
H = input('MASUKAN SELANG DATA:');
X = XI:H:XF;
SET f1
SET k1
SET f2
SET k2
% Proses Analitik
SET ya
y(1) = 0;
i = 1;
while i < N+1
% Numerik
y (i+1) = y(i) + ((k1(i)+k2(i))/2);
i = i + 1;
end
% Error
error = abs((ya-y)/ya).*100
% Save Output
fileID = fopen('rungekuta.txt','w');
fprintf(fileID,'%6s %6s %6s\r\n','X','Y','YA');
fprintf(fileID,'%6.2f %6.2f %6.2f\r\n',X,y,ya);
subplot(1,2,1)
plot(X(2:N),f1(2:N))
title('Fungsi awal f(x)=x^2')
xlabel('X')
29
ylabel('F(x)')
grid minor
subplot(1,2,2)
plot(X(2:N),y(2:N),'r-')
hold on
plot(X(2:N),ya(2:N),'-.','color',[0 1 0])
title('Integrasi Metode Euler dan Analitik')
xlabel('X')
ylabel('Fungsi f(x)=(1/3)x^3')
legend('Runge-Kutta','Analitik','location','NorthWest')
title('Perbandingan Metode RK dan Analitik')
grid minor
Tugas
1. Buatlah program intergasi menggunakan metode Runge-Kuta dari fungsi turunan pertama
𝑓 ′ (𝑥 ) = 122 + 16𝑥 Dengan 𝑥𝑖 = 0, 𝑥𝑓 = 10, ℎ = 0.01
2. Hasil pada nomor 1, bandingkan dengan hasil secara analitik. Apakah terdapat
perbedaannya? Jelaskan!
30