Email : brigita.melantika@student.matanauniversity.ac.id
RPubs : https://rpubs.com/brigitatiaraem/
Jurusan : Statistika
Address : ARA Center, Matana University Tower
Jl. CBD Barat Kav, RT.1, Curug Sangereng, Kelapa Dua, Tangerang, Banten 15810.
Tentukan nilai Y(0,1) dengan Metode Eluer dan Huen dengan h = 0,025 dengan fungsi yang diberikan pada contoh pembahasan PDB ordo satu.
\[n = (y0-x0)/h\]
\[n = (0.10 - 0)/0.025 = 4\]
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))
}
Jawaabeuler = euler(f1, x0=0, y0=1, h=0.025, n=4)
Jawaabeuler## x y
## 1 0.000 1.000000
## 2 0.025 1.025000
## 3 0.050 1.051250
## 4 0.075 1.078781
## 5 0.100 1.107626
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))
}
Jawabheun = heun(f1, x0=0, y0=1, h=0.025, n=4)
Jawabheun## x y
## 1 0.000 1.000000
## 2 0.025 1.025625
## 3 0.050 1.052531
## 4 0.075 1.080752
## 5 0.100 1.110319
Solusi sejati PDB tersebut adalah
\[y(x) = e^x - x - 1.\]
y=exp(0.10)-(0.1)-1
y## [1] 0.005170918
galateuler=0.005170918-1.107626
galateuler## [1] -1.102455
galatheun=0.005170918-1.110319
galatheun## [1] -1.105148
Perbandingan :
Nilai sejati : y(0.10) = 0.005171
Euler : y(0.10) = 1.107626
Heun : y(0.10) = 1.110319; maka metode euler yang lebih baik