Email             :
RPubs            : https://rpubs.com/juliansalomo/
Department  : Business Statistics
Address         : ARA Center, Matana University Tower
                         Jl. CBD Barat Kav, RT.1, Curug Sangereng, Kelapa Dua, Tangerang, Banten 15810.



1 Metode Heun

1.1 Membuat fungsi R Metode Heun

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))
}

1.2 Soal

Jika diketahui \(f(0)=1\) menggunakan \(h=0,05\) dan \(n=100\)! \(f′ (x, y) = \frac{y}{3x + 1}\)? Gunakan Metode Heun! berikan penjelasan?

f <- function(x,y){y/(3*x+1)}
n = 100
h = 0.05
x0 = 0
y0 = 1
x = x0
y = y0

heun(f,x0,y0,h,n)
##        x        y
## 1   0.00 1.000000
## 2   0.05 1.047826
## 3   0.10 1.091632
## 4   0.15 1.132170
## 5   0.20 1.169990
## 6   0.25 1.205507
## 7   0.30 1.239044
## 8   0.35 1.270855
## 9   0.40 1.301147
## 10  0.45 1.330090
## 11  0.50 1.357823
## 12  0.55 1.384467
## 13  0.60 1.410123
## 14  0.65 1.434877
## 15  0.70 1.458805
## 16  0.75 1.481972
## 17  0.80 1.504436
## 18  0.85 1.526249
## 19  0.90 1.547455
## 20  0.95 1.568094
## 21  1.00 1.588205
## 22  1.05 1.607818
## 23  1.10 1.626964
## 24  1.15 1.645670
## 25  1.20 1.663960
## 26  1.25 1.681856
## 27  1.30 1.699379
## 28  1.35 1.716548
## 29  1.40 1.733380
## 30  1.45 1.749891
## 31  1.50 1.766097
## 32  1.55 1.782010
## 33  1.60 1.797644
## 34  1.65 1.813011
## 35  1.70 1.828121
## 36  1.75 1.842986
## 37  1.80 1.857615
## 38  1.85 1.872016
## 39  1.90 1.886200
## 40  1.95 1.900173
## 41  2.00 1.913944
## 42  2.05 1.927520
## 43  2.10 1.940906
## 44  2.15 1.954111
## 45  2.20 1.967140
## 46  2.25 1.979998
## 47  2.30 1.992691
## 48  2.35 2.005225
## 49  2.40 2.017604
## 50  2.45 2.029832
## 51  2.50 2.041916
## 52  2.55 2.053858
## 53  2.60 2.065662
## 54  2.65 2.077333
## 55  2.70 2.088875
## 56  2.75 2.100290
## 57  2.80 2.111582
## 58  2.85 2.122755
## 59  2.90 2.133812
## 60  2.95 2.144755
## 61  3.00 2.155588
## 62  3.05 2.166313
## 63  3.10 2.176932
## 64  3.15 2.187450
## 65  3.20 2.197866
## 66  3.25 2.208186
## 67  3.30 2.218409
## 68  3.35 2.228539
## 69  3.40 2.238578
## 70  3.45 2.248528
## 71  3.50 2.258390
## 72  3.55 2.268167
## 73  3.60 2.277860
## 74  3.65 2.287472
## 75  3.70 2.297003
## 76  3.75 2.306456
## 77  3.80 2.315833
## 78  3.85 2.325133
## 79  3.90 2.334360
## 80  3.95 2.343515
## 81  4.00 2.352599
## 82  4.05 2.361613
## 83  4.10 2.370558
## 84  4.15 2.379437
## 85  4.20 2.388250
## 86  4.25 2.396999
## 87  4.30 2.405684
## 88  4.35 2.414306
## 89  4.40 2.422868
## 90  4.45 2.431369
## 91  4.50 2.439812
## 92  4.55 2.448196
## 93  4.60 2.456524
## 94  4.65 2.464795
## 95  4.70 2.473011
## 96  4.75 2.481173
## 97  4.80 2.489282
## 98  4.85 2.497338
## 99  4.90 2.505342
## 100 4.95 2.513296
## 101 5.00 2.521199

2 Metode Runge-Kutte orde 4

2.1 Membuat fungsi R Metode Runge-Kutte orde 4

rk4 <- function(f, x0, y0, h, n){
  x <- x0
  y <- y0
  
  for(i in 1:n){
    k1 <- f(x0,y0)*h
    k2 <- f(x0+0.5*h,y0+0.5*k1)*h
    k3 <- f(x0+0.5*h,y0+0.5*k2)*h
    k4 <- f(x0+h,y0+k3*h)
    y0 <- y0 + (1/6)*(k1+2*k2+2*k3+k4)*h
    x0 <- x0 + h
    x <- c(x, x0)
    y <- c(y, y0)
  }
  
  return(data.frame(x=x,y=y))
}

2.2 Soal

Jika diketahui \(f(0)=1\) menggunakan \(h=0,05\) dan \(n=100\)! \(f′ (x, y) = \frac{y}{3x + 1}\)? Gunakan Metode Runge-Kutta orde 4! berikan penjelasan?

f <- function(x,y){y/(3*x+1)}
n = 100
h = 0.05
x0 = 0
y0 = 1
x = x0
y = y0

rk4(f,x0,y0,h,n)
##        x        y
## 1   0.00 1.000000
## 2   0.05 1.009269
## 3   0.10 1.017520
## 4   0.15 1.024961
## 5   0.20 1.031742
## 6   0.25 1.037974
## 7   0.30 1.043741
## 8   0.35 1.049110
## 9   0.40 1.054135
## 10  0.45 1.058858
## 11  0.50 1.063314
## 12  0.55 1.067533
## 13  0.60 1.071540
## 14  0.65 1.075356
## 15  0.70 1.078999
## 16  0.75 1.082484
## 17  0.80 1.085824
## 18  0.85 1.089033
## 19  0.90 1.092119
## 20  0.95 1.095093
## 21  1.00 1.097962
## 22  1.05 1.100735
## 23  1.10 1.103417
## 24  1.15 1.106014
## 25  1.20 1.108532
## 26  1.25 1.110975
## 27  1.30 1.113349
## 28  1.35 1.115657
## 29  1.40 1.117902
## 30  1.45 1.120089
## 31  1.50 1.122219
## 32  1.55 1.124297
## 33  1.60 1.126325
## 34  1.65 1.128305
## 35  1.70 1.130240
## 36  1.75 1.132131
## 37  1.80 1.133980
## 38  1.85 1.135791
## 39  1.90 1.137563
## 40  1.95 1.139299
## 41  2.00 1.141000
## 42  2.05 1.142668
## 43  2.10 1.144304
## 44  2.15 1.145909
## 45  2.20 1.147485
## 46  2.25 1.149032
## 47  2.30 1.150552
## 48  2.35 1.152045
## 49  2.40 1.153513
## 50  2.45 1.154956
## 51  2.50 1.156376
## 52  2.55 1.157772
## 53  2.60 1.159146
## 54  2.65 1.160499
## 55  2.70 1.161831
## 56  2.75 1.163143
## 57  2.80 1.164435
## 58  2.85 1.165708
## 59  2.90 1.166963
## 60  2.95 1.168201
## 61  3.00 1.169420
## 62  3.05 1.170623
## 63  3.10 1.171810
## 64  3.15 1.172981
## 65  3.20 1.174136
## 66  3.25 1.175277
## 67  3.30 1.176402
## 68  3.35 1.177514
## 69  3.40 1.178611
## 70  3.45 1.179695
## 71  3.50 1.180766
## 72  3.55 1.181824
## 73  3.60 1.182869
## 74  3.65 1.183903
## 75  3.70 1.184924
## 76  3.75 1.185933
## 77  3.80 1.186932
## 78  3.85 1.187919
## 79  3.90 1.188895
## 80  3.95 1.189860
## 81  4.00 1.190816
## 82  4.05 1.191761
## 83  4.10 1.192696
## 84  4.15 1.193621
## 85  4.20 1.194537
## 86  4.25 1.195443
## 87  4.30 1.196341
## 88  4.35 1.197229
## 89  4.40 1.198109
## 90  4.45 1.198980
## 91  4.50 1.199843
## 92  4.55 1.200698
## 93  4.60 1.201544
## 94  4.65 1.202383
## 95  4.70 1.203213
## 96  4.75 1.204037
## 97  4.80 1.204852
## 98  4.85 1.205661
## 99  4.90 1.206462
## 100 4.95 1.207256
## 101 5.00 1.208043