Hasil Pratikum 10

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 7

NAMA : AMIN ADIL ADA

NIM : F1A121044
PRAKTIKUM : METODE NUMERIK
KELOMPOK : II (DUA)
HASIL PRAKTIKUM 10
Praktikum kesepuluh ini membahas tentang Metode Euler, Metode Heun,
dan Metode Runge Kutta 2. Ketiga metode ini digunakan untuk mencari
pendekatan nilai integrasi persamaan dengan penyelesaian numerik.
A. Metode Euler
Metode Euler adalah suatu metode yang paling sederhana dalam
menyelesaikan PDB orde satu secara numerik. Metode ini merupakan
metode yang paling sederhana yang diturunkan dari deret Taylor.
Dalam penurunan rumusnya, kita dapat menurunkannya dengan deret
Taylor, namun dapat juga kita turunkan dengan mencari gradien pada
suatu garis, yaitu

∆𝑦
𝑦= ∆𝑡 = ℎ
𝑓(𝑡) ∆𝑦 𝑦1 −
𝑓(𝑡0, 𝑦0) = 𝑦0
𝑦1 = ∆𝑡 ℎ
ℎ𝑓(𝑡0, 𝑦0) = 𝑦1 − 𝑦0
𝑦0 ℎ𝑓(𝑡0, 𝑦0) + 𝑦0 = 𝑦1

Sehingga, secara umum rumus metode
𝑡0 𝑡1 Euler, yaitu :
𝑦𝑖+1 = 𝑦𝑖 + ℎ𝑓(𝑡𝑖, 𝑦𝑖).

Berikut penurunan rumus metode Euler dengan deret Taylor :


Secara Numerik :
𝑦 ′ = 𝑓 ( 𝑡 , 𝑦)
𝑦′(𝑡0) = 𝑓(𝑡0, 𝑦0)

Dengan Deret Taylor, dimisalkan 𝑡 = 𝑡0


𝑦′′(𝑡0)(𝑡 − 𝑡0)2

𝑦(𝑡) = 𝑦(𝑡0) + 𝑦 (𝑡0)(𝑡 − 𝑡0) +
+ (𝑛)( ) 2!

𝑦 𝑡0 (𝑡 − 𝑡0) 𝑛
+
𝑛!
Terdapat partisi – partisi dimana masing – masing selisihnya adalah ℎ
ℎ ℎ ℎ

𝑡0 𝑡1 𝑡2 𝑡3
Sesuai partisi di atas, didapatkan : 𝑡1 = 𝑡0 + ℎ ; 𝑡2 = 𝑡1 + ℎ ;
dst… Maka,
𝑦′′(𝑡0)(𝑡 − 𝑡0)2
( ) ( ) ′ ( )( )
𝑦 𝑡 = 𝑦 𝑡0 + 𝑦 𝑡0 𝑡 − 𝑡0 +
+ ( 2!

)

𝑦 ′′
𝑡 0 (𝑡 1 − 𝑡 0 ) 2

𝑦(𝑡1) = 𝑦(𝑡0) + 𝑦 (𝑡0)(𝑡1 − 𝑡0) +


2! ⋯
+ 𝑦 (𝑡0)(𝑡1 − 𝑡0)2
′′

= 𝑦(𝑡0) + 𝑦 (𝑡0)(𝑡0 + ℎ − 𝑡0) +
+ 2!

𝑦 (𝑡0)ℎ
′′ 2

= 𝑦(𝑡0) + 𝑦′ (𝑡0)ℎ +
2!
+ dapat ditunjukkan bahwa ⋯
Sehingga,
𝑦(𝑡1) = 𝑦(𝑡0) + 𝑓(𝑡0, 𝑦0)ℎ
Maka, didapatkan rumus Metode Euler :
𝑦1 = 𝑦0 + 𝑓(𝑡0,
𝑦0)ℎ
Atau dapat dituliskan :
𝑦𝑖+1 = 𝑦𝑖 + 𝑓(𝑡𝑖, 𝑦𝑖). ℎ
𝑡𝑖 = 𝑡program
Dengancontoh
Berikut 0 + 𝑖. ℎ dari Metode Euler, yaitu :

clear
clc

disp('===============================');
disp(' METODE EULER ');
disp('===============================');
disp(' NAMA : AMIN ADIL ADA ');
disp(' NIM : F1A121044 ');
disp('ASDOS : KAK NANDA');
disp(' ');
%input
syms t;
syms y;
fx=input('Masukkan Persamaan :' );%y'=t^2-y
f=inline(fx);
y0=input('Masukkan Nilai y0 :');%y0=1
t0=input('Masukkan Nilai t0 :');%t0=0
h=input('Masukkan Nilai h :');%h=1/2
n=6;
y=y0;
t=t0;
fprintf('===============================\n');
fprintf('| i | ti | yi |\n');
fprintf('===============================\n');

%proses
for i=1:n
y=y+f(t,y)*h;%rumus metode Euler
t=t+h;%tk=t0-k*h
fprintf('| %d | %.5f | %.5f |\n',i,t,y);%output
end fprintf('===============================\
n');
Hasil Run :

Gambar 1. Program Metode Euler

B. Metode Heun
Metode Heun merupakan salah satu peningkatan dari Metode Euler. Metode
ini melibatkan 2 buah persamaan.
Persamaan pertama :
𝑦𝑖0+1 = 𝑦𝑖 + 𝑓(𝑥𝑖, 𝑦𝑖)ℎ
disebut sebagai persamaan prediktor yang digunakan untuk memprediksi
nilai integrasi awal.
Persamaan kedua :
𝑓(𝑥𝑖, 𝑦𝑖) + 𝑓(𝑥𝑖+1, 𝑦0 )
𝑦𝑖+1 = 𝑦𝑖 + 𝑖+1

2
Berikut merupakan grafik metode Heun:
𝑦

𝑦(𝑥)
𝑥1

𝑦0
ℎ ℎ
2 2

𝑥0 𝑥1 𝑥
Berikut merupakan penurunan rumus metode Heun dari grafik diatas:
𝑦′(𝑥) = 𝑓(𝑥, 𝑦(𝑥))
𝑥𝑟+1 𝑥𝑟+1

∫ 𝑓(𝑥, 𝑦(𝑥)) 𝑑𝑥 = ∫ 𝑦′(𝑥) 𝑑𝑥


𝑥𝑟 𝑥𝑟

= 𝑦(𝑥𝑟+1) − 𝑦(𝑥𝑟)
= 𝑦𝑟+1 − 𝑦𝑟
𝑥𝑟+1

𝑦𝑟+1 = 𝑦𝑟 + ∫ 𝑓(𝑥, 𝑦(𝑥)) 𝑑𝑥


𝑥𝑟
𝑥𝑟+1

∫ 𝑓(𝑥, 𝑦(𝑥)) 𝑑𝑥 ≈ [𝑓(𝑥𝑟, 𝑦𝑟) + 𝑓(𝑥𝑟+1, 𝑦𝑟+1)]
2
𝑥𝑟

𝑦𝑟+1 = 𝑦𝑟 + [𝑓(𝑥𝑟, 𝑦𝑟) + 𝑓(𝑥𝑟+1,
𝑦𝑟+1)] 2
Berikut merupakan program metode Heun:
clc;
clear;
disp(' Metode Heun ');
disp('Nama :AMIN ADIL ADA');
disp('Nim :F1A121044');
disp('Kelompok :II(DUA)');
disp('==================================');
a=input('Masukan nilai x0 : ');
b=input('Masukan nilai b : ');
y0=input('Masukkan nilai y0 : ');
h=input('Masukkan nilai h : ');
n=(b-a)/h;
y=y0;
x=a;
fprintf('i yi xi\n');
fprintf('%d %.3f %.3f\n',1,y(1),x(1));
for r=1:n
y1=y;
y=y+h;
y=y1+h/2;
x=x+h;
fprintf('%d %.3f %.3f\n',r,y,x);
end
fprintf('Hasilnya adalah :%.5f\n',y);
Hasil run :

Gambar 2. Program Metode Heun

C. Metode Runge Kutta 2


Metode Runge-Kutta adalah alternatif lain dari metode deret Taylor yang
tidak membutuhkan perhitungan turunan. Metode ini berusaha
mendapatkan derajat ketelitian yang lebih tinggi, dan sekaligus
menghindarkan keperluan
mencari turunan yang lebih tinggi dengan jalan mengevaluasi fungsi 𝑓(𝑥,
𝑦)
pada titik terpilih dalam setiap selang langkah.
 Berikut ini adalah penurunan rumus Metode Runge Kutta 2

𝑦 (𝑥𝑟, 𝑦𝑟)
𝑦𝑟+1 𝑦𝑟+1 = 𝑦𝑖 +
𝑚ℎ

𝑦𝑟
𝑆𝑙𝑜𝑝𝑒 =
𝑚

𝑥𝑟+1 𝑥
𝑥𝑟

Adapun penurunan rumus dari Metode Runge Kutta Orde 2 :


𝑦𝑟+1 = 𝑦𝑟 + 𝑚ℎ
Untuk orde 1
𝑚ℎ = 𝑘1 = ℎ𝑓(𝑥𝑟, 𝑦𝑟)
Untuk orde 2
𝑚ℎ = 𝑎1𝑘1 + 𝑎2𝑘2
𝑦𝑟+1 = 𝑦𝑟 + 𝑚ℎ
𝑦𝑟+1 = 𝑦𝑟 + (𝑎1𝑘1 + 𝑎2𝑘2)
𝑘1 = ℎ𝑓(𝑥𝑖, 𝑦𝑖)
𝑘2 = ℎ𝑓(𝑥𝑖 + 𝑝1ℎ, 𝑦𝑖 + 𝑞11𝑘1)
Metode Runge Kutta Orde 2 adalah Metode Heun, yang dalam hal ini
dengan menggunakan deret taylor diperoleh nilai yaitu :
1 1
𝑎2= . 𝑎1= , 𝑝1 = 𝑞11 =
2 2
1
Sehingga
𝑘1 = ℎ𝑓(𝑥𝑖, 𝑦𝑖)
𝑘2 = ℎ𝑓(𝑥𝑖 + (1)ℎ, 𝑦𝑖 + (1)𝑘1)
𝑘2 = ℎ𝑓(𝑥𝑖 + ℎ, 𝑦𝑖 + 𝑘1)
Maka diperoleh rumus Metode Runge Kutta Orde 2
1 1
𝑦𝑟+1 = 𝑦𝑟 + ( 𝑘1 +
2 2
𝑘 2)
1
𝑦𝑟+1 = 𝑦𝑟 + (𝑘1 + 𝑘2)
2

 Berikut ini adalah contoh program Metode Runge Kutta Orde 2 pada
Matlab :
clc;
clear
disp('===============PRAKTIKUM 10===============');
disp('Nama : AMIN ADIL ADA');
disp('Nim : F1A121044');
disp('Kelompok : II (DUA)');
disp(' METODE RUNGE KUTTA 2 ');

x0=input('Masukan Nilai x0 : ');


y0=input('Masukan Nilai y0 : ');
h=input('Masukan Nilai step size h : ');
n=input('Masukan Nilai n : ');
x=x0;
y=y0;
fprintf('i k1 k2 yr xr\n');
for r=1:n
k1=h*(x^2-y);
k2=h*((x+h)^2-(y+k1));
y=y+((k1+k2)/2);
x=x+h;
fprintf('%d %.3f %.3f %.3f
%.3f\n',r,k1,k2,y,x);
end
fprintf('Hasil penyelesaian dengan metode runge kutta 2
adalah %.5f \n', y)

Hasil Run :

Gambar 3. Hasil Run Metode Runge Kutta 2

You might also like