Untuk membuat kode sederhana menggunakan persamaan diferensiasi dengan kasus air mengisi balok, Anda bisa menggunakan persamaan kontinuitas untuk aliran volume air ke dalam balok. Persamaan kontinuitas dapat ditulis sebagai berikut: A⋅v= dt/dV Di mana:
A adalah luas penampang balok,
v adalah kecepatan air masuk,
dt/dV adalah laju perubahan volume terhadap waktu.
Mari kita asumsikan bahwa penampang balok adalah persegi panjang dan tingginya tidak berubah seiring waktu. Kita bisa menggunakan variabel x untuk menunjukkan panjang sisi persegi panjang tersebut. disini kita mensimulasikan pengisian balok dengan air selama 100 menit
library(ggplot2)
library(deSolve)
# Fungsi persamaan diferensiasi
diff_equation <- function(t, y, parms) {
A <- parms$A
v <- parms$v
dVdt <- A * v
list(dVdt)
}
# Parameter untuk simulasi pertama
A1 <- 36000 # Volume balok dalam cm^3
v1 <- 0.5 / 1000 / 60 # Kecepatan air dalam cm^3 per menit
parms1 <- list(A = A1, v = v1)
# Parameter untuk simulasi kedua
A2 <- 20000 # Volume balok dalam cm^3
v2 <- 0.7 / 1000 / 60 # Kecepatan air dalam cm^3 per menit
parms2 <- list(A = A2, v = v2)
# Kondisi awal
V0 <- 0 # Volume awal
# Waktu simulasi
times <- seq(0, 100, by = 1) # Misalnya, simulasi dilakukan selama 100 menit
# Solusi persamaan diferensiasi untuk simulasi pertama
solution1 <- ode(y = V0, times = times, func = diff_equation, parms = parms1)
# Solusi persamaan diferensiasi untuk simulasi kedua
solution2 <- ode(y = V0, times = times, func = diff_equation, parms = parms2)
Dalam kode ini, saya menambahkan parameter dan solusi untuk simulasi kedua. Saya juga menggunakan warna biru untuk simulasi dengan volume 36000 cm^3 dan warna merah untuk simulasi dengan volume 26000 cm^3.
# Membuat grafik
ggplot() +
geom_line(data = data.frame(time = solution1[, 1], volume = solution1[, 2]), aes(x = time, y = volume), color = "blue") +
geom_line(data = data.frame(time = solution2[, 1], volume = solution2[, 2]), aes(x = time, y = volume), color = "red") +
labs(title = "Pengisian Balok dengan Air", x = "Waktu (menit)", y = "Volume (cm^3)") +
scale_color_manual(values = c("blue", "red"), labels = c("36000 cm^3", "26000 cm^3"))