Carregando WebR...
# ============================================ # Regulacao de monopolio natural # Exercicio Resolvido 15.7 # ============================================ # --- Parametros --- CF <- 500 # custo fixo c <- 10 # custo marginal constante a <- 60 # demanda: p = a - 0.5*q b <- 0.5 cat("====== REGULACAO DE MONOPOLIO NATURAL ======\n") cat("C(q) =", CF, "+", c, "*q\n") cat("Demanda: p =", a, "-", b, "*q\n\n") # --- 1. Monopolio nao regulado --- qm <- (a - c) / (2*b) pm <- a - b * qm lucro_m <- (pm - c) * qm - CF PPM_m <- 0.5 * (pm - c) * ((a-c)/b - qm) cat("--- 1. Monopolio nao regulado ---\n") cat("q^m =", qm, " p^m =", pm, "\n") cat("Lucro =", lucro_m, " PPM =", PPM_m, "\n\n") # --- 2. Regulacao first-best (p = CMg) --- qfb <- (a - c) / b pfb <- c lucro_fb <- pfb * qfb - (CF + c * qfb) PPM_fb <- 0 cat("--- 2. First-best (p = CMg) ---\n") cat("q^fb =", qfb, " p^fb =", pfb, "\n") cat("Lucro =", lucro_fb, " (prejuizo = custo fixo!)\n") cat("PPM =", PPM_fb, "\n") cat("Subsidio necessario: S =", abs(lucro_fb), "\n\n") # --- 3. Regulacao second-best (p = CMe) --- # p = CF/q + c = a - b*q # CF/q + c = a - b*q # CF + c*q = (a - b*q)*q = a*q - b*q^2 # b*q^2 - (a-c)*q + CF = 0 disc <- (a-c)^2 - 4*b*CF qsb <- ((a-c) + sqrt(disc)) / (2*b) # raiz maior psb <- a - b * qsb CMe_sb <- CF/qsb + c lucro_sb <- 0 # por construcao PPM_sb <- 0.5 * (psb - c) * (qfb - qsb) cat("--- 3. Second-best (p = CMe) ---\n") cat("q^sb =", round(qsb, 2), " p^sb =", round(psb, 2), "\n") cat("CMe =", round(CMe_sb, 2), " = p^sb?", abs(CMe_sb - psb) < 0.01, "\n") cat("Lucro = 0 (por construcao)\n") cat("PPM =", round(PPM_sb, 1), "\n\n") # --- Comparacao --- cat("--- Comparacao dos tres regimes ---\n") cat(sprintf("%-20s %-8s %-8s %-10s %-8s\n", "Regime", "q", "p", "Lucro", "PPM")) cat(strrep("-", 56), "\n") cat(sprintf("%-20s %-8.1f %-8.1f %-10.0f %-8.0f\n", "Monopolio", qm, pm, lucro_m, PPM_m)) cat(sprintf("%-20s %-8.1f %-8.1f %-10.0f %-8.0f\n", "First-best (CMg)", qfb, pfb, lucro_fb, PPM_fb)) cat(sprintf("%-20s %-8.1f %-8.1f %-10.0f %-8.1f\n", "Second-best (CMe)", qsb, round(psb, 1), lucro_sb, PPM_sb)) cat("\nReducao da PPM (second-best vs monopolio):", round((1 - PPM_sb/PPM_m)*100, 1), "%\n") # --- Grafico --- par(mar = c(4.5, 4.5, 3, 2), bg = "#f8f9fa") q_seq <- seq(1, 120, length = 400) p_dem <- a - b * q_seq CMe_seq <- CF/q_seq + c RMg_seq <- a - 2*b * q_seq plot(q_seq, p_dem, type = "l", lwd = 3, col = "#0d6efd", ylim = c(0, 65), xlim = c(0, 120), xlab = "q", ylab = "p", main = "Tres regimes de regulacao") lines(q_seq, CMe_seq, lwd = 2, col = "#fd7e14") lines(q_seq, RMg_seq, lwd = 2, col = "#6f42c1", lty = 2) abline(h = c, col = "#dc3545", lwd = 2) # Pontos dos tres regimes points(qm, pm, pch = 19, col = "#343a40", cex = 2) text(qm + 2, pm + 2.5, paste0("M (", qm, ", ", pm, ")"), col = "#343a40", cex = 0.7, font = 2) points(qfb, pfb, pch = 17, col = "#198754", cex = 2) text(qfb - 5, pfb + 3, paste0("FB (", qfb, ", ", pfb, ")"), col = "#198754", cex = 0.7, font = 2) points(qsb, psb, pch = 15, col = "#0d6efd", cex = 2) text(qsb + 2, psb + 2.5, paste0("SB (", round(qsb, 0), ", ", round(psb, 1), ")"), col = "#0d6efd", cex = 0.7, font = 2) # Triangulo PPM monopolio polygon(c(qm, qm, qfb), c(pm, c, c), col = rgb(0.85, 0.2, 0.2, 0.12), border = NA) # Triangulo PPM second-best polygon(c(qsb, qsb, qfb), c(psb, c, c), col = rgb(0.05, 0.43, 0.98, 0.12), border = NA) legend("topright", legend = c("Demanda", "RMg", "CMg", "CMe", "PPM monopolio", "PPM second-best"), col = c("#0d6efd", "#6f42c1", "#dc3545", "#fd7e14", rgb(0.85, 0.2, 0.2, 0.3), rgb(0.05, 0.43, 0.98, 0.3)), lwd = c(3, 2, 2, 2, NA, NA), lty = c(1, 2, 1, 1, NA, NA), pch = c(NA, NA, NA, NA, 15, 15), cex = 0.6, bg = "white")
▶ Executar
↻ Resetar
(Aguardando WebR...)