Carregando WebR...
# ============================================ # Cournot com n firmas: convergencia # para concorrencia perfeita # ============================================ a <- 100; b <- 1; c <- 20 # Demanda: p = a - b*Q, CMg = c cat("====== COURNOT COM n FIRMAS ======\n") cat("Demanda: p =", a, "-", b, "* Q\n") cat("CMg =", c, "\n\n") # Formulas gerais: # q* = (a - c) / [b(n+1)] # Q* = n(a - c) / [b(n+1)] # p* = (a + nc) / (n+1) # pi* = (a - c)^2 / [b(n+1)^2] n_vec <- c(1, 2, 3, 5, 10, 20, 50, 100) cat(sprintf("%-5s %-8s %-8s %-8s %-10s %-8s %-10s\n", "n", "q*", "Q*", "p*", "pi*", "HHI", "Markup%")) cat(strrep("-", 62), "\n") for (n in n_vec) { q_star <- (a - c) / (b * (n + 1)) Q_star <- n * q_star p_star <- (a + n * c) / (n + 1) pi_star <- (a - c)^2 / (b * (n + 1)^2) HHI <- n * (100/n)^2 # = 10000/n markup <- (p_star - c) / p_star * 100 cat(sprintf("%-5d %-8.2f %-8.2f %-8.2f %-10.1f %-8.0f %-10.1f\n", n, q_star, Q_star, p_star, pi_star, HHI, markup)) } # Limites Q_comp <- (a - c) / b p_comp <- c cat(sprintf("\n%-5s %-8s %-8.1f %-8.1f %-10s %-8s %-10.1f\n", "inf", "--", Q_comp, p_comp, "0", "0", 0.0)) cat("\nConvergencia: p* -> c, Q* -> (a-c)/b, pi* -> 0\n") # --- Grafico --- par(mfrow = c(1, 2), mar = c(4.5, 4.5, 3, 1), bg = "#f8f9fa") n_fine <- 1:50 p_seq <- (a + n_fine * c) / (n_fine + 1) Q_seq <- n_fine * (a - c) / (b * (n_fine + 1)) pi_seq <- (a - c)^2 / (b * (n_fine + 1)^2) # Painel 1: Preco e quantidade vs n plot(n_fine, p_seq, type = "l", lwd = 3, col = "#dc3545", xlab = "Numero de firmas (n)", ylab = "", main = "Convergencia para concorrencia", ylim = c(0, max(a))) abline(h = c, col = "#198754", lty = 2, lwd = 2) text(40, c + 3, "p = CMg (conc. perfeita)", col = "#198754", cex = 0.7, font = 2) # Monopolio points(1, (a + c) / 2, pch = 19, col = "#6f42c1", cex = 1.8) text(3, (a + c) / 2 + 3, "Monopolio", col = "#6f42c1", cex = 0.7, font = 2) # Eixo secundario para Q (sobreposto) par(new = TRUE) plot(n_fine, Q_seq, type = "l", lwd = 3, col = "#0d6efd", lty = 2, axes = FALSE, xlab = "", ylab = "", ylim = c(0, max(a))) axis(4, col = "#0d6efd", col.axis = "#0d6efd") mtext("Q*", side = 4, line = 2.5, col = "#0d6efd") abline(h = Q_comp, col = "#0d6efd", lty = 3, lwd = 1) legend("right", legend = c("p* (eixo esq.)", "Q* (eixo dir.)", "p = CMg", "Q competitivo"), col = c("#dc3545", "#0d6efd", "#198754", "#0d6efd"), lwd = c(3, 3, 2, 1), lty = c(1, 2, 2, 3), cex = 0.6, bg = "white") # Painel 2: Lucro individual e HHI plot(n_fine, pi_seq, type = "l", lwd = 3, col = "#fd7e14", xlab = "Numero de firmas (n)", ylab = "Lucro individual", main = "Lucro e concentracao vs. n") par(new = TRUE) HHI_seq <- 10000 / n_fine plot(n_fine, HHI_seq, type = "l", lwd = 3, col = "#6f42c1", lty = 2, axes = FALSE, xlab = "", ylab = "", ylim = c(0, 10000)) axis(4, col = "#6f42c1", col.axis = "#6f42c1") mtext("HHI", side = 4, line = 2.5, col = "#6f42c1") # Faixas CADE/DOJ abline(h = 2500, col = "#dc3545", lty = 3) abline(h = 1500, col = "#fd7e14", lty = 3) text(35, 2700, "HHI = 2500", col = "#dc3545", cex = 0.6) text(35, 1700, "HHI = 1500", col = "#fd7e14", cex = 0.6) legend("topright", legend = c("Lucro (eixo esq.)", "HHI (eixo dir.)"), col = c("#fd7e14", "#6f42c1"), lwd = 3, lty = c(1, 2), cex = 0.6, bg = "white")
▶ Executar
↻ Resetar
(Aguardando WebR...)