Metode Numerik
Tugas 7
| Kontak | : \(\downarrow\) |
| clara.evania@student.matanauniversity.ac.id | |
| https://www.instagram.com/claraevania/ | |
| RPubs | https://rpubs.com/claradellaevania/ |
Tentukan nilai Y(0,1) dengan Metode Eluer dan Huen dengan h = 0,025 dengan fungsi yang diberikan pada contoh pembahasan PDB ordo satu
\[ \begin{align} f1&=x+y\\ h&= 0.025\\ x_0&= 0\\ y_0&= 1\\ n&= 0.10/0.025\\ &= 4\\ \end{align} \]
Metode Euler
f1 <- function(x,y){x+y}
euler <- function(f, x0, y0, h, n){
x <- x0
y <- y0
for(i in 1:n){
y0 <- y0 + h*f(x0, y0)
x0 <- x0 + h
x <- c(x,x0)
y <- c(y, y0)
}
return(data.frame(x=x, y=y))
}
euler_1= euler(f1, x0=0, y0=1, h=0.025, n=4)
euler_1Sehingga dengan menggunakan metode Euler
\(y(0,1) = 1.107626\)
Dengan Membandingkan Nilai Solusi sejatinya, Maka Galatnya adalah :
\[ \begin{align} NilaiSejati&=y(0.10)\\ &= exp(0.10)-0.10-1\\ &=0.005170918\\ Galat&= 0.005170918-1.107626\\ &= -1.102455\\ \end{align} \]
Metode Heun
f1 <- function(x,y){x+y}
heun <- function(f, x0, y0, h, n, iter=1){
x <- x0
y <- y0
for(i in 1:n){
ypred0 <- f(x0,y0)
ypred1 <- y0 + h*ypred0
ypred2 <- f(x0+h,ypred1)
ykor <- y0 + h*(ypred0+ypred2)/2
if(iter!=1){
for(i in 1:iter){
ykor <- y0 + h*(ypred0+f(x0+h,ykor))/2
}
}
y0 <- ykor
x0 <- x0 + h
x <- c(x, x0)
y <- c(y, y0)
}
return(data.frame(x=x,y=y))
}
heun_1 = heun(f1, x0=0, y0=1, h=0.025, n=4)
heun_1Sehingga dengan menggunakan metode Heun
\(y(0,1) = 1.110319\)
Dengan Membandingkan Nilai Solusi sejatinya, Maka Galatnya adalah :
\[ \begin{align} NilaiSejati&=y(0.10)\\ &= exp(0.10)-0.10-1\\ &=0.005170918\\ Galat&= 0.005170918-1.110319\\ &= -1.105148\\ \end{align} \]
Perbandingan Dengan Nilai Sejati
\[ \begin{align} NilaiSejati&=y(0.10) = 0.005170918\\ Euler&=y(0.10) = 1.107626\\ Heun&=y(0.10) = 1.110319\\ \end{align} \] Maka dapat disimpulkan Bahwa Metode Euler lebih baik dari Metode Heun, dikarenakan nilainya mendekati dengan nilai solusi sejati yaitu 0.005. Maka Nilai Metode Euler 1.107626 yang lebih mendekati nilai solusi sejatinya .