5 minute read

Soal 1b

Soal Utama

Diketahui persamaan diferensial sebagai berikut:

\frac{dy}{dx} = (x^2 + y) \sin{(x^2 y)}

Sub Soal Ib i

Pilih sebuah metode numerik untuk menyelesaikan suatu persamaan diferensial dan rancanglah algoritma dari metode tersebut!

Jawaban Sub Soal Ib i

Dari suatu persamaan diferensial dengan bentuk:

\frac{dy}{dx} = f(x,y)

dan memiliki initial condition y(x_0) = y_0. Kita bisa menyelesaikannya dengan metode Runge-Kutta order 4. Bentuk umumnya adalah sebagai berikut:

y_{n+1} = y_n + h \sum_{i=1}^n b_i k_i

dimana k_i, i=1,2,3,4 adalah konstanta yang harus dicari.

k_1 = f(x_0,y_0)

k_2 = f(x_0 + 0.5h,y_0 + 0.5k_1h)

k_3 = f(x_0 + 0.5h,y_0 + 0.5k_2h)

k4 = f(x_0 + h,y_0 + k_3h)

Bentuk algoritmanya dalam pseudocode adalah sebagai berikut:

INPUT x0,y0,xmax

COMPUTE n = (xmax-x0)/h

FOR i 1:n
    k1 = f(x0,y0)
    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

Jika dibuat dalam program R:

rk_4order = function(f,      # dy/dx
                     x0, y0, # init condition
                     h,      # selang
                     xmax){  # x max
  # initial condition
  x = x0
  y = y0
  n = (xmax-x0)/h
  # proses iterasi
  for(i in 1:n){
    k1 = f(x0,y0)
    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)
  }
  # output
  output = data.frame(x = x,
                      y = y)
  return(output)
}

Sub Soal Ib ii

Tentukanlah solusi persamaan diferensial di atas untuk rentang 0 \leq x \leq 2 dengan kondisi awal y(0) = 5 dan rentang partisi h = 0.2.

Jawaban Sub Soal Ib ii

Mari kita selesaikan:

dydx = function(x,y){(x^2 + y)*sin((x^2) * y)}
x0 = 0
y0 = 5
xmax = 2
h = 0.2
solusi = rk_4order(dydx,x0,y0,h,xmax)
x y
0.0 5.00000000
0.2 5.06760128
0.4 5.57269164
0.6 6.71789477
0.8 6.45613761
1.0 5.18752961
1.2 4.67362560
1.4 5.16720280
1.6 4.05194257
1.8 3.20113263
2.0 2.66358548

Solusi Persamaan Diferensial dengan RK4

Dalam bentuk grafik:

Solusi dy/dx pada [0,2] dengan h =
0.2

Sub Soal Ib iii

Bandingkan kurva solusinya (kurva y vs x) jika digunakan nilai h=0.1 dan h = 0.01.

Jawaban Sub Soal Ib iii

Mari kita selesaikan:

solusi_h1 = rk_4order(dydx,x0,y0,0.1,xmax)
solusi_h2 = rk_4order(dydx,x0,y0,0.01,xmax)

Berikut grafik perbandingannya:

Solusi dy/dx pada [0,2] dengan h = 0.1 vs h =
0.01

Secara visual dan intuitif bisa kita simpulkan bahwa semakin kecil h, maka nilai hampirannya lebih baik karena penambahan x terjadi secara perlahan.


if you find this article helpful, support this blog by clicking the ads.