# 1. f(x) / g(x) を計算する関数を作る
ratio_func <- function(x) {
  f <- dbeta(x, shape1 = 2, shape2 = 5)
  g <- dunif(x, min = 0, max = 1)
  return(f / g)
}

# 2. optimize() 関数で、定義域 [0, 1] の中での最大値を探索する
# (デフォルトは最小値を探すので、maximum = TRUE にする)
opt_result <- optimize(ratio_func, interval = c(0, 1), maximum = TRUE)

# 3. 最大値（これが最適なM）を取り出す
M_opt <- opt_result$maximum_value  # または opt_result$objective
print(M_opt)

opt_result$maximum
opt_result$objective
