Nomor 1 fungsi

f_normal <- function(x){
  (1 / sqrt(2 * pi)) * exp(-x^2 / 2)
}

Simsons

simpson13_gen <- function(a, b, n, f) {
  
 h<-(b-a)/n
  x<-a

  hasil<-f(a)+f(b)

  for (i in 1:(n-1)) {
    x<-x+h
    if (i%%2==1) {
      hasil <-hasil+4*f(x)
    } else {
      hasil <- hasil+2*f(x)
    }
  }

  hasil <- hasil*h/3
  return(hasil)
}

OUTPUT

simpson<-simpson13_gen(0, 1, 4, f_normal)
eksak<-pnorm(1) - pnorm(0)

simpson
## [1] 0.3413555
eksak
## [1] 0.3413447
abs(simpson-eksak)
## [1] 1.074179e-05

NOMOR 2 Fungsi

f_exp <- function(x) exp(-x)
trapeziodal <- function(a, b, n, f) {
  h<-(b-a)/n
  x<-a
  
  Luas<-f(a)+f(b)
  
  for (i in 1:(n-1)) {
    x<-x+h
    Luas<-Luas +2 * f(x)
  }
  
  Luas<-Luas*h / 2
  return(Luas)
}

simpson13_gen <- function(a,b,n,f) {
  h <-(b-a)/n
  x <-a
  
  hasil<-f(a)+f(b)
  
  for (i in 1:(n-1)) {
    x<-x+h
    if (i %% 2 == 1) {
      hasil <-hasil+4*f(x)
    } else {
      hasil <-hasil+2*f(x)
    }
  }
  
  hasil<-hasil*h/3
  return(hasil)
}

OUTPUT

trap  <-trapeziodal(0, 2, 10, f_exp)
simp  <-simpson13_gen(0, 2, 10, f_exp)
eksak <-1-exp(-2)

trap
## [1] 0.867545
simp
## [1] 0.8646724
eksak
## [1] 0.8646647
abs(trap-eksak)
## [1] 0.002880296
abs(simp-eksak)
## [1] 7.649462e-06