ao contrário da firma competitiva, o monopolista enfrenta uma curva de demanda negativamente inclinada. Para vender uma unidade adicional, é necessário reduzir o preço — e essa redução se aplica a todas as unidades vendidas, não apenas à unidade adicional. Esse mecanismo é chamado de efeito envenenamento (poisoning effect): a unidade extra “envenena” a receita das unidades anteriores ao forçar o preço para baixo.
ao vender mais uma unidade, o monopolista ganha a área B (receita da nova unidade), mas perde a área C (redução do preço sobre todas as unidades anteriores). A Receita Marginal é, portanto, \(RMg = B - C\), que é inferior ao preço.
em competição perfeita, a firma é tomadora de preços (\(dP/dQ = 0\)), de modo que a área C simplesmente não existe — não há envenenamento. É essa assimetria que faz a \(RMg\) do monopolista ser sempre inferior à curva de demanda, não apenas no caso linear.
Receita Marginal
Código
suppressPackageStartupMessages({library(ggplot2)library(grid)})# ----- Funções -----demand <-function(Q) 24- Qmr <-function(Q) 24-2*Q# ----- Dados -----Q_max <-24# onde a demanda zeraQ_seq <-seq(0, Q_max, length.out =200)df <-data.frame(Q = Q_seq,Demand =demand(Q_seq),MR =mr(Q_seq))# ----- Gráfico -----p <-ggplot() +# Curva de demanda (azul)geom_line(data = df, aes(x = Q, y = Demand), colour ="#1565C0", linewidth =1.2) +# Curva de receita marginal (vermelha)geom_line(data = df, aes(x = Q, y = MR), colour ="#D32F2F", linewidth =1.2) +# Eixos com setasannotate("segment", x =0, xend = Q_max*1.05, y =0, yend =0, arrow =arrow(length =unit(6,"pt")), linewidth =0.7, colour="grey40") +annotate("segment", x =0, xend =0, y =0, yend =26, arrow =arrow(length =unit(6,"pt")), linewidth =0.7, colour="grey40") +# Rótulos das curvasannotate("text", x =10, y =6, label ="RMg = 24 - 2Q", colour ="#D32F2F", size =4.2, hjust =0) +annotate("text", x =12, y =14, label ="Demanda: p = 24 - Q", colour ="#1565C0", size =4.2, hjust =0) +# Escalas com rótulos específicos nos eixosscale_x_continuous(breaks =c(12, 24),labels =c("12", "24"),limits =c(0, Q_max*1.05),expand =c(0,0) ) +scale_y_continuous(breaks =c(24),labels =c("24"),limits =c(0, 26),expand =c(0,0) ) +labs(title ="Receita Marginal no Monopólio",x ="Quantidade, Q",y ="Preço, P" ) +theme_minimal(base_size =13) +theme(panel.grid =element_blank(),plot.title =element_text(face="bold", hjust=0.5) )p
A Receita Marginal e a elasticidade preço da demanda.
\[
\begin{aligned}
RMg(q) &= P + Q \cdot \frac{P}{\varepsilon} \\
&= P + \left( \frac{\Delta P}{\Delta Q} \right) Q\\
&= P + \underbrace{P \left( \frac{\Delta P}{\Delta Q} \right) \frac{Q}{P}}_{\text{inversa da elasticidade da demanda}} \\
&= P + P \cdot \frac{1}{\varepsilon}\\
&= P \left( 1 + \frac{1}{\varepsilon} \right)\\
\end{aligned}
\]
se a elasticidade preço da demanda for -1, o monopolista deve ser indiferente entre aumentar a quantidade com o menor preço ou vender menos com maior preço, pois, a área C é igual a B.
se a elasticidade preço da demanda for menor que 1, o monopolista ganha dinheiro com o aumento do preço.
no monopólio para encontrar o preço de equilíbrio, primeiro é necessário resolver para a quantidade.
também é necessário checar se o preço é maior ou igual ao custo variável médio, se não for, a firma encerra suas operações.
Erro comum: confundir RMg = CMg com o preço
O ponto em que \(RMg = CMg = 12\) (em \(Q = 6\)) não é o preço do monopolista — é apenas o valor que a receita marginal e o custo marginal assumem nesse ponto. O monopolista precisa respeitar a curva de demanda: o preço vem de \(P(Q^*) = 24 - 6 = 18\).
A diferença fundamental com a competição perfeita é: lá, \(P = CMg\) diretamente; aqui, primeiro resolve-se para \(Q\) (via \(RMg = CMg\)) e depois encontra-se \(P\) pela curva de demanda. São dois passos, não um.
Por que o monopolista para em \(Q = 6\)? Considere a 7ª unidade: o consumidor marginal está disposto a pagar \(P(7) = 17\), e o custo marginal é \(CMg(7) = 14\). Como \(17 > 14\), essa troca seria mutuamente benéfica. Porém, para vender 7 unidades o monopolista precisa reduzir o preço para 17 em todas as unidades. O lucro passa a ser:
O efeito envenenamento torna a 7ª unidade prejudicial ao monopolista: a perda de receita nas 6 unidades anteriores (\(6 \times 1 = 6\)) supera o ganho na unidade adicional (\(17 - 14 = 3\)). Existem, portanto, trocas que beneficiariam tanto o consumidor quanto a sociedade, mas que o monopolista não realiza porque reduziriam seu lucro.
Peso morto
Código
suppressPackageStartupMessages({library(ggplot2)library(grid)})# ----- Funções -----Demanda <-function(q) 24- qRMg <-function(q) 24-2*qCMg <-function(q) 2*q# ----- Pontos-chave -----q_m <-6; p_m <-Demanda(q_m) # 18q_c <-8; p_c <-Demanda(q_c) # 16p_eq <-RMg(q_m) # 12 (= CMg(6))# Áreas (para rótulos)A_val <-0.5* (24- p_m) * q_m # 18B_val <- (p_m - p_c) * q_m # 12C_val <-0.5* (p_m - p_c) * (q_c - q_m) # 2D_val <-16*q_m - (q_m^2) # 60E_val <-0.5* (p_c - p_eq) * (q_c - q_m) #* 2 # 4 (ou integral: 4)# ----- Dados contínuos -----q_max <-30; y_max <-26qs <-seq(0, 24, length.out =400)df <-data.frame(q = qs, Dem =Demanda(qs), RMg =RMg(qs), CMg =CMg(qs))# Faixas para sombreamentos# A: 0..6, entre p=18 e DemandaqA <-seq(0, q_m, length.out =200)dfA <-data.frame(q = qA, ymin = p_m, ymax =Demanda(qA))# D: 0..6, entre CMg e p=16qD <-seq(0, q_m, length.out =200)dfD <-data.frame(q = qD, ymin =CMg(qD), ymax = p_c)# C: 6..8, entre Demanda e p=16 (SEM sobreposição com E)qC <-seq(q_m, q_c, length.out =200)dfC <-data.frame(q = qC, ymin = p_c, ymax =Demanda(qC))# E: 6..8, entre p=16 e CMg (SEM sobreposição com C)qE <-seq(q_m, q_c, length.out =200)dfE <-data.frame(q = qE, ymin =CMg(qE), ymax = p_c)# ----- Gráfico -----p <-ggplot() +# D: acima de CMg até p=16, 0..6geom_ribbon(data = dfD, aes(x = q, ymin = ymin, ymax = ymax), fill ="#A5D6A7", alpha =0.35) +annotate("text", x = q_m*0.35, y = (p_c +CMg(q_m))*0.55, label =paste0("D = $", D_val), size =4.2) +# B: entre p=16 e p=18, 0..6annotate("rect", xmin =0, xmax = q_m, ymin = p_c, ymax = p_m, fill ="#C8E6C9", alpha =0.65) +annotate("text", x = q_m*0.27, y = (p_c+p_m)/2, label =paste0("B = $", B_val), size =4.2) +# A: sob Demanda e acima de p=18, 0..6geom_ribbon(data = dfA, aes(x = q, ymin = ymin, ymax = ymax), fill ="#90CAF9", alpha =0.55) +annotate("text", x = q_m*0.45, y = p_m + (24- p_m)*0.5, label =paste0("A = $", A_val), size =4.4) +# C: 6..8, entre Demanda e p=16 (PPM)geom_ribbon(data = dfC, aes(x = q, ymin = ymin, ymax = ymax), fill ="grey40", alpha =0.35) +annotate("text", x = (q_m+q_c)/2, y = (Demanda(q_m)+p_c)/2+0.5, label =paste0("C = $", C_val), size =4.2, colour ="black") +# E: 6..8, entre p=16 e CMggeom_ribbon(data = dfE, aes(x = q, ymin = ymin, ymax = ymax), fill ="grey70", alpha =0.45) +annotate("text", x = (q_m+q_c)/2, y = (p_c +CMg(q_c))/2-0.3, label =paste0("E = $", E_val), size =4.2, colour ="black") +# Curvasgeom_line(data = df, aes(q, Dem), colour ="#1565C0", linewidth =1.3) +# Demandageom_line(data = df, aes(q, RMg), colour ="#D32F2F", linewidth =1.2) +# RMggeom_line(data = df, aes(q, CMg), colour ="#2E7D32", linewidth =1.2) +# CMg# Eixos com setasannotate("segment", x =0, xend = q_max*1.05, y =0, yend =0,arrow =arrow(length =unit(6,"pt")), linewidth =0.8, colour ="grey40") +annotate("segment", x =0, xend =0, y =0, yend = y_max,arrow =arrow(length =unit(6,"pt")), linewidth =0.8, colour ="grey40") +# Guias tracejadasgeom_segment(aes(x =0, xend = q_m, y = p_m, yend = p_m), linetype ="dashed", colour ="grey55") +geom_segment(aes(x =0, xend = q_m, y = p_eq, yend = p_eq), linetype ="dashed", colour ="grey55") +geom_segment(aes(x =0, xend = q_c, y = p_c, yend = p_c), linetype ="dashed", colour ="grey55") +geom_segment(aes(x = q_m, xend = q_m, y =0, yend = p_m), linetype ="dashed", colour ="grey55") +geom_segment(aes(x = q_c, xend = q_c, y =0, yend = p_c), linetype ="dashed", colour ="grey55") +# Pontos em e_m e e_cgeom_point(aes(x = q_m, y = p_m), colour ="#1565C0", size =3) +geom_point(aes(x = q_c, y = p_c), colour ="#1565C0", size =3) +annotate("text", x = q_m -0.25, y = p_m +0.8, label ="e[m]",colour ="#1565C0", size =4, parse =TRUE) +annotate("text", x = q_c -0.25, y = p_c -0.8, label ="e[c]",colour ="#1565C0", size =4, parse =TRUE) +# Rótulos das curvasannotate("text", x =11, y =6.5, label ="RMg", colour ="#D32F2F", size =4.4) +annotate("text", x =13, y =14, label ="Demanda", colour ="#1565C0", size =4.4) +annotate("text", x =13, y =23, label ="CMg", colour ="#2E7D32", size =4.4) +# Eixos (ticks/legendas)scale_x_continuous(breaks =c(q_m, q_c, 12, 18, 24, 30), labels =c("Q[m] = 6", "Q[c] = 8", "12", "18", "24", "30"), limits =c(0, q_max*1.05), expand =c(0,0)) +scale_y_continuous(breaks =c(12, 16, 18, 24, 30), labels =c("RMg = CMg = 12", "p[c] = 16", "p[m] = 18", "24", "30"), limits =c(0, y_max), expand =c(0,0)) +labs(title ="Perda de Peso Morto do Monopólio",x ="Quantidade, q",y ="Preço, p" ) +theme_minimal(base_size =13) +theme(panel.grid =element_blank(),plot.title =element_text(face ="bold", hjust =0.5),axis.text.x =element_text(angle =45, hjust =1, vjust =0.5) )p
Equilíbrio de mercado monopólio: \(Q = 6\) e \(P = 18\)
Equilíbrio de mercado competitivo: \(Q = 8\) e \(P = 16\)
\(B + D\) = excedente do produtor, área abaixo do preço p_m e superior a curva de oferta
\(A\) = excedente do consumidor, área acima do preço p_m
\(C + E\) = peso morto, ineficiência, é inferior a curva de demanda
O mercado falha
o equilíbrio de mercado não maximiza o bem-estar social
abrindo espaço para a regulamentação econômica
Discriminação de preços
Código
suppressPackageStartupMessages({library(ggplot2)library(grid)})# - área A, preços $24-18$, quantidades $6-0$ (triângulo)# - área B, preços $18-16$, quantidades $6-0$ (retângulo)# - área C, preços $18-16$, quantidades $8-6$ (triângulo)# - área E, preços $16-12$, quantidades $8-6$ (triângulo)# - área D, preços $16-0$, quantidades $8-0$ (triângulo) menos a área de E# ----- Funções -----Demanda <-function(q) 24- qRMg <-function(q) 24-2*qCMg <-function(q) 2*q# ----- Pontos-chave -----q_m <-6; p_m <-Demanda(q_m) # 18q_c <-8; p_c <-Demanda(q_c) # 16p_eq <-RMg(q_m) # 12 (= CMg(6))# Valores das áreasA_val <-0.5* (24- p_m) * (q_m -0) # 18B_val <- (p_m - p_c) * (q_m -0) # 12C_val <-0.5* (p_m - p_c) * (q_c - q_m) # 2E_val <-0.5* (p_c - p_eq) * (q_c - q_m) # 4D_val <-60# Dados para curvasq_max <-30; y_max <-26qs <-seq(0, 24, length.out =400)df <-data.frame(q = qs,Dem =Demanda(qs),RMg =RMg(qs),CMg =CMg(qs))# Áreas como ribbons/polígonos# A: 0..6, entre p=18 e DemandaqA <-seq(0, q_m, length.out =200)dfA <-data.frame(q = qA, ymin = p_m, ymax =Demanda(qA))# B: retângulo 0..6, entre 18 e 16 (usaremos annotate("rect"))# C: 6..8, entre Demanda e p=16 (triângulo acima de 16)qC <-seq(q_m, q_c, length.out =200)dfC <-data.frame(q = qC, ymin = p_c, ymax =Demanda(qC))# E: 6..8, entre p=16 e CMg (triângulo acima da CMg) **CORRIGIDO**qE <-seq(q_m, q_c, length.out =200)dfE <-data.frame(q = qE, ymin =CMg(qE), ymax = p_c)# D: 0..6, entre CMg e p=16qD <-seq(0, q_m, length.out =200)dfD <-data.frame(q = qD, ymin =CMg(qD), ymax = p_c)# Cor única para TODAS as áreasfill_blue <-"#90CAF9"; alpha_val <-0.55# ----- Gráfico -----p <-ggplot() +# D: acima de CMg até p=16, em 0..6geom_ribbon(data = dfD, aes(x = q, ymin = ymin, ymax = ymax), fill = fill_blue, alpha = alpha_val) +annotate("text", x =2.3, y =10.8,label =paste0("D = $", D_val), size =4.2) +# B: retângulo entre 18 e 16, 0..6annotate("rect", xmin =0, xmax = q_m, ymin = p_c, ymax = p_m,fill = fill_blue, alpha = alpha_val) +annotate("text", x =1.6, y =17, label =paste0("B = $", B_val), size =4.2) +# A: triângulo sob Demanda e acima de 18, 0..6geom_ribbon(data = dfA, aes(x = q, ymin = ymin, ymax = ymax),fill = fill_blue, alpha = alpha_val) +annotate("text", x =3.0, y =21, label =paste0("A = $", A_val), size =4.4) +# C: 6..8, entre Demanda e 16 (PPM acima de 16)geom_ribbon(data = dfC, aes(x = q, ymin = ymin, ymax = ymax),fill = fill_blue, alpha = alpha_val) +annotate("text", x =7.2, y =17.2, label =paste0("C = $", C_val), size =4.2) +# E: 6..8, entre 16 e CMg (triângulo acima da CMg) **CORRIGIDO**geom_ribbon(data = dfE, aes(x = q, ymin = ymin, ymax = ymax),fill = fill_blue, alpha = alpha_val) +annotate("text", x =7.1, y =14.5, label =paste0("E = $", E_val), size =4.2) +# Curvasgeom_line(data = df, aes(q, Dem), colour ="#1565C0", linewidth =1.3) +# Demandageom_line(data = df, aes(q, RMg), colour ="#D32F2F", linewidth =1.2) +# RMggeom_line(data = df, aes(q, CMg), colour ="#2E7D32", linewidth =1.2) +# CMg# Eixos com setasannotate("segment", x =0, xend = q_max*1.05, y =0, yend =0,arrow =arrow(length =unit(6,"pt")), linewidth =0.8, colour ="grey40") +annotate("segment", x =0, xend =0, y =0, yend = y_max,arrow =arrow(length =unit(6,"pt")), linewidth =0.8, colour ="grey40") +# Guias tracejadasgeom_segment(aes(x =0, xend = q_m, y = p_m, yend = p_m), linetype ="dashed", colour ="grey55") +geom_segment(aes(x =0, xend = q_c, y = p_c, yend = p_c), linetype ="dashed", colour ="grey55") +geom_segment(aes(x =0, xend = q_m, y = p_eq, yend = p_eq), linetype ="dashed", colour ="grey55") +geom_segment(aes(x = q_m, xend = q_m, y =0, yend = p_m), linetype ="dashed", colour ="grey55") +geom_segment(aes(x = q_c, xend = q_c, y =0, yend = p_c), linetype ="dashed", colour ="grey55") +# Pontosgeom_point(aes(x = q_m, y = p_m), colour ="#1565C0", size =3) +geom_point(aes(x = q_c, y = p_c), colour ="#1565C0", size =3) +annotate("text", x = q_m -0.25, y = p_m +0.8, label ="e[m]", colour ="#1565C0", size =4, parse =TRUE) +annotate("text", x = q_c -0.25, y = p_c -0.8, label ="e[c]", colour ="#1565C0", size =4, parse =TRUE) +# Rótulos das curvasannotate("text", x =11, y =6.5, label ="RMg", colour ="#D32F2F", size =4.4) +annotate("text", x =13, y =14, label ="Demanda", colour ="#1565C0", size =4.4) +annotate("text", x =12, y =22, label ="CMg", colour ="#2E7D32", size =4.4) +# Ticks/legendasscale_x_continuous(breaks =c(q_m, q_c, 12, 18, 24, 30),labels =c("Q[m] = 6", "Q[c] = 8", "12", "18", "24", "30"),limits =c(0, q_max*1.05), expand =c(0,0)) +scale_y_continuous(breaks =c(12, 16, 18, 24, 30),labels =c("RMg = CMg = 12", "p[c] = 16", "p[m] = 18", "24", "30"),limits =c(0, y_max), expand =c(0,0)) +labs(title ="Decomposição de Áreas com Monopólio",x ="Quantidade, q",y ="Preço, p" ) +theme_minimal(base_size =13) +theme(panel.grid =element_blank(),plot.title =element_text(face ="bold", hjust =0.5),axis.text.x =element_text(angle =45, hjust =1, vjust =0.5) )p
\(e_m\) equilíbrio monopolista
\(e_c\) equilíbrio competitivo
Discriminação de preços é:
Vender cada unidade com preços diferentes.
Se monopólio faz discriminação de preços, é possível maximizar o bem-estar social.
excedente do consumidor é transferido para o excedente do produtor.
contudo, o excedente total é maximizado.
o monopolista vende a próxima unidade por quanto os próximos consumidores estão dispostos a pagar.
não há peso morto, mas todo o excedente vai para o monopolista. O excedente será maior por não haver perda de bem-estar, mas ele será concentrado.
\(\text{Excedente} = ExC + ExP\)
Esse resultado revela uma tensão fundamental na economia do bem-estar. Pela métrica tradicional (\(ExC + ExP\)), a discriminação perfeita de preços é tão eficiente quanto a competição perfeita — ambas eliminam o peso morto. Porém, a distribuição é radicalmente diferente: na competição perfeita, os consumidores retêm excedente; na discriminação perfeita, todo o excedente é capturado pelo produtor. Aceitar indiferença entre esses dois cenários equivale a dizer que não importa quem se beneficia do bem-estar — apenas o total. Essa é uma primeira indicação de que a análise de bem-estar precisa ir além da eficiência e considerar a equidade distributiva.
Exemplos:
A Amazon tentava vender pelo endereço de IP para discriminar preços.
Companhias aéreas tentavam o mesmo utilizando o histórico do navegador de internet.
O ofertante busca sinais de predisposição de compra de determinado consumidor para inferir sobre a elasticidade preço da demanda do consumidor. Clientes que buscam comprar passagens de última hora têm predisposição inelástica, como comprar passagens de última hora, e, portanto, o consumidor pagaria mais pela passagem.
Ricos são menos sensíveis a variações de preço; as companhias aéreas exploram essa característica cobrando muito mais por passagens na classe executiva ou primeira classe.
Nos EUA, comprar no McDonald’s nas autoestradas é mais caro do que comprar nas cidades; na estrada, os consumidores têm predisposição de compra mais inelástica, eles aceitam mais facilmente os preços.
Empresas discriminam preços por horário de acesso:
Ingressos do cinema mais baratos à tarde e caros à noite.
Restaurantes podem cobrar mais barato para reservas adiantadas.
Sessões de lançamento são mais caras.
A Disney cobra mais barato se você mora perto do parque, pois essas pessoas podem escolher ir ou não ao parque. Turistas que viajaram para ir ao “Mundo Disney” são menos sensíveis a preços elevados.
A Tesla vendia carros com autonomia de 300 km e 450 km de bateria. As baterias eram as mesmas, apenas um software alterava a autonomia das baterias. Quem está disposto a comprar o carro que tem maior autonomia de bateria está disposto a pagar muito mais pelo carro. A qualidade é um fator de discriminação.
Pessoas que vendem workshops de fotografia entregam muito conteúdo gratuito, mas cobram valores elevados (15 mil reais) para cursos com 20 pessoas, que desejam receber o mesmo conteúdo presencialmente.
a firma precisa que o preço seja acima do custo por unidade.
\[
\text{markup} = - \frac{1}{\varepsilon}
\]
se \(\varepsilon = \infty\), curva de demanda perfeitamento horizontal, o mercado funciona competitivamente, sem poder de mercado para a firma.
se \(\varepsilon = 0\), curva de demanda perfeitamento vertical, a firma tem elevado poder de mercado.
A fórmula do markup revela o que disciplina o monopolista. Em competição perfeita, as firmas são disciplinadas pela competição de outras firmas — se cobram acima do custo marginal, perdem clientes para os concorrentes. Em monopólio, não há concorrentes diretos; o único fator disciplinador é a elasticidade-preço da demanda, ou seja, a possibilidade de os consumidores substituírem o bem por outros. O poder de mercado do monopolista não é ilimitado: é inversamente proporcional à sensibilidade dos consumidores ao preço. Quanto mais inelástica a demanda, maior o markup e maior o poder de mercado; quanto mais elástica, mais o monopolista é forçado a se comportar como uma firma competitiva.
Curva de demanda e receita marginal com regiões de elasticidade
Código
suppressPackageStartupMessages({library(ggplot2)library(dplyr)library(tibble)})# Funções e parâmetrosp_demanda <-function(Q) 24- Qmr <-function(Q) 24-2* QQ_max <-24# Encontra onde a demanda se torna zeroQ_zero_demanda <-24tibble::tibble(Q =seq(0, Q_max, by =0.1)) |> dplyr::mutate(Demanda =p_demanda(Q),MR =ifelse(Q >= Q_zero_demanda, NA_real_, pmax(mr(Q), -1)) ) -> df# Pontos-chaveQ_star <-12p_star <-p_demanda(Q_star) # 12mr_zero_Q <- Q_star # onde MR = 0# Base do gráficoggplot() +# Curva de demandageom_line(data = df, aes(Q, Demanda), linewidth =1.2, color ="#1f77b4") +# Curva de receita marginalgeom_line(data = df, aes(Q, MR), linewidth =1.2, color ="#7f3c8d", na.rm =TRUE) +# Pontos de intercepto da demandageom_point(aes(x =0, y =24), size =2) +geom_point(aes(x =24, y =0), size =2) +# Ponto onde epsilon = -1 (Q=12, p=12)geom_point(aes(x = Q_star, y = p_star), size =2) +# Rótulosannotate("text", size =5, x =3, y =22.5, label ="Perfeitamente elástica, \u03B5 \u2192 -\u221E", hjust =0) +annotate("text", size =5, x = Q_star, y = p_star -0.7, label ="\u03B5 = -1", vjust =1) +annotate("text", size =5, x =9, y =18, label ="Elástica, \u03B5 < -1") +annotate("text", size =5, x =20, y =8, label ="Inelástica, -1 < \u03B5 < 0") +annotate("text", size =5, x =23.5, y =1.2, label ="Perfeitamente inelástica, \u03B5 = 0", hjust =1) +annotate("text", size =5, x =4, y =3.2, label ="Receita marginal\nRMg = 24 - 2Q", color ="#7f3c8d", hjust =0) +annotate("text", size =5, x =13, y =14.8, label ="Demanda\np = 24 - Q \n ou Receita Média", color ="#1f77b4", hjust =0) +# Eixos e limitesscale_x_continuous(expand =expansion(mult =c(0, 0.01)), limits =c(0, 24)) +scale_y_continuous(expand =expansion(mult =c(0, 0.03)), limits =c(0, 24)) +labs(x ="Q, unidades por dia", y ="p, R$ por unidade") +theme_minimal(base_size =14)
O gráfico divide a curva de demanda em regiões de elasticidade e revela uma restrição fundamental sobre o comportamento do monopolista:
No ponto médio da curva de demanda (\(Q = 12\), \(P = 12\)), a elasticidade é unitária (\(\varepsilon = -1\)) e a receita marginal é zero (\(RMg = 0\)). Esse é o ponto em que a receita total é máxima: qualquer aumento ou redução de quantidade reduz a receita total.
Na região elástica (\(\varepsilon < -1\), metade superior da demanda), a receita marginal é positiva. Um aumento de quantidade, apesar de reduzir o preço, gera receita líquida positiva — o ganho na unidade adicional supera a perda do efeito envenenamento.
Na região inelástica (\(-1 < \varepsilon < 0\), metade inferior da demanda), a receita marginal é negativa. Aqui o efeito envenenamento domina completamente: a redução de preço necessária para vender mais destrói mais receita do que a nova unidade gera.
Consequência: o monopolista nunca opera na região inelástica. Mesmo que o custo marginal fosse zero, ele pararia no ponto \(\varepsilon = -1\) (receita total máxima). Com custo marginal positivo, a condição \(RMg = CMg\) empurra a solução ainda mais para a esquerda, para a região elástica. Isso é consistente com a fórmula do markup: \(\text{markup} = -1/\varepsilon\) requer \(|\varepsilon| > 1\) para que o markup seja positivo e o preço supere o custo marginal.
Como os monopólios surgem?
Custos
vantagens de custos
monopólios naturais
uma única firma sempre produz com menor custo total média CTMe que várias firmas
mercados com custos totais médios decrescentes tendem ao monopólio
custos fixos elevados, fazendo a natureza dos custos fixos médios decrescentes representarem uma vantagem competitiva
ex.: fornecimento de água
só existe espaço para uma única firma, não existe incentivo para competição
Código
suppressPackageStartupMessages({library(ggplot2)library(grid)})# Parâmetrosm <-10# MC constanteFfix <-60# custo fixo para AC(q) = F/q + mq_min <-2# começa > 0 para não "tocar" o eixo Yq_max <-100y_max <-45ac_fun <-function(q) Ffix/q + m# Dadosdf <-data.frame(q =seq(q_min, q_max, length.out =600))df$AC <-ac_fun(df$q)# Gráficoggplot(df, aes(q, AC)) +# Eixos com setasannotate("segment", x =0, xend = q_max*1.02, y =0, yend =0,colour ="grey55", linewidth =1,arrow = grid::arrow(length =unit(7, "pt"))) +annotate("segment", x =0, xend =0, y =0, yend = y_max,colour ="grey55", linewidth =1,arrow = grid::arrow(length =unit(7, "pt"))) +# Curvasgeom_line(linewidth =1.1, colour ="#1E6BB8") +# ACgeom_segment(inherit.aes =FALSE, x =0, xend = q_max, y = m, yend = m,linewidth =1.1, colour ="#1E6BB8") +# MC# Limites/temacoord_cartesian(xlim =c(0, q_max*1.02), ylim =c(0, y_max),expand =FALSE, clip ="off") +theme_void(base_size =14) +labs(title ="Curva de Custos para uma Concessionária de Água") +theme(plot.title =element_text(hjust =0.5, face ="bold")) -> p# Rótulos (no topo)p +annotate("text", x = q_max*0.92, y =ac_fun(q_max*0.92) +0.6, label ="CTMe", size =5, colour ="#1E6BB8", vjust =-1) +annotate("text", x = q_max*0.92, y = m +0.6, label ="CMg", size =5, colour ="#1E6BB8", vjust =2) +annotate("text", x = q_max*1.015, y =-0.5, label ="q", colour ="grey40") +annotate("text", x =-0.6, y = y_max*1.01, label ="c", colour ="grey40") +theme_classic()
O custo marginal é constante (\(CMg = 10\)), mas o custo fixo elevado (\(F = 60\)) faz o \(CTMe = F/q + CMg\) ser sempre decrescente: quanto maior a produção, mais o custo fixo se dilui por unidade.
Como o \(CTMe\) é sempre decrescente, uma única firma produzindo toda a demanda tem custo médio menor do que duas firmas dividindo a produção — é a definição de monopólio natural.
O dilema: a estrutura de custos torna o monopólio a forma mais eficiente de produzir, mas sem pressão competitiva o monopolista cobra acima do \(CMg\) e gera peso morto. Daí a necessidade de regulação.
Ações governamentais
Serviços de postagem
Criar barreiras a entrada, como patentes
peso morto por 20 anos
contudo, gera incentivo ao investimento para cobrir os custos fixos com pesquisa e desenvolvimento
Lidando com monopólios
Reguração governamental
Código
suppressPackageStartupMessages({library(ggplot2)library(grid)})# ---- Funções (suas) ----CTMe <-function(q) ifelse(q ==0, NA_real_, 12/q + q)CVMe <-function(q) qCMg <-function(q) 2*qP <-function(q) 24- qRMg <-function(q) 24-2*qCT <-function(q) 12+ q^2RT <-function(q) (24- q) * q# ---- Pontos-chave ----q_m <-6; p_m <-P(q_m)q_0 <-8; p_c <-16q_int <-24# deslocamento visual para separar linhas coincidentesy_reg_horiz <-16.05# Demanda regulada (0..8)y_rmg_horiz <-15.95# RMg_r (0..8) um pouco abaixo# ---- Dados contínuos ----q_max <-26; y_max <-26qs <-seq(0, q_int, length.out =400)df <-data.frame(q = qs, Dem =P(qs), RMg =RMg(qs), CMg =CMg(qs))# RMg em duas cores (claro até 8; escuro depois)df_rmg1 <-subset(df, q <= q_0)df_rmg2 <-subset(df, q >= q_0)# ---- Áreas ----qA <-seq(0, q_m, length.out =200)dfA <-data.frame(q = qA, ymin = p_m, ymax =P(qA)) # A (azul médio)qD <-seq(0, q_m, length.out =200)dfD <-data.frame(q = qD, ymin =CMg(qD), ymax = p_c) # D (laranja)qC <-seq(q_m, q_0, length.out =150)dfC <-data.frame(q = qC, ymin = p_c, ymax =P(qC)) # C (azul claro)qE <-seq(q_m, q_0, length.out =150)dfE <-data.frame(q = qE, ymin =CMg(qE), ymax = p_c) # E (laranja = D)# ---- Gráfico base ----p <-ggplot() +# eixosannotate("segment", x =0, xend = q_max*1.02, y =0, yend =0,colour ="grey55", linewidth =1,arrow = grid::arrow(length =unit(7, "pt"))) +annotate("segment", x =0, xend =0, y =0, yend = y_max,colour ="grey55", linewidth =1,arrow = grid::arrow(length =unit(7, "pt"))) +# áreas (D e E MESMA cor)geom_ribbon(data = dfD, aes(q, ymin = ymin, ymax = ymax), fill ="#F4C27E", alpha =0.70) +# Dgeom_rect(aes(xmin =0, xmax = q_m, ymin = p_c, ymax = p_m), fill ="#B9DBF2", alpha =0.70, inherit.aes =FALSE) +# Bgeom_ribbon(data = dfA, aes(q, ymin = ymin, ymax = ymax), fill ="#9EC7EB", alpha =0.70) +# Ageom_ribbon(data = dfC, aes(q, ymin = ymin, ymax = ymax), fill ="#B9DBF2", alpha =0.85) +# Cgeom_ribbon(data = dfE, aes(q, ymin = ymin, ymax = ymax), fill ="#F4C27E", alpha =0.70) +# E# curvas principaisgeom_line(data = df, aes(q, Dem), colour ="#1565C0", linewidth =1.2) +# Demanda de mercadogeom_line(data = df_rmg1, aes(q, RMg), colour ="#81C784", linewidth =1.2) +# RMg (claro) q<=8geom_line(data = df_rmg2, aes(q, RMg), colour ="#2E7D32", linewidth =1.2) +# RMg (escuro) q>8geom_line(data = df, aes(q, CMg), colour ="#D32F2F", linewidth =1.2) +# CMg# Demanda regulada — CINZA CLARO (0..8 horizontal deslocada; após 8 descendente real)geom_segment(aes(x =0, xend = q_0, y = y_reg_horiz, yend = y_reg_horiz),colour ="#9CA3AF", linewidth =1.4) +# <- cinza clarogeom_segment(aes(x = q_0, xend = q_int, y = p_c, yend =0),colour ="#9CA3AF", linewidth =1.4) +# <- cinza claro# RMg regulada (um pouco abaixo, visível)geom_segment(aes(x =0, xend = q_0, y = y_rmg_horiz, yend = y_rmg_horiz),colour ="#2E7D32", linewidth =1.0, linetype ="dashed") +# (REMOVIDO) a linha vertical verde em x=8 entre ~16 e ~22# geom_segment(... x = q_0, xend = q_0, y = p_c + 6, yend = p_c - 6, ...)# guias (mantém preço-teto real em 16)geom_segment(aes(x =0, xend = q_m, y = p_m, yend = p_m),linetype ="dashed", colour ="grey55") +geom_segment(aes(x =0, xend = q_0, y = p_c, yend = p_c),linetype ="dashed", colour ="grey55") +geom_segment(aes(x = q_m, xend = q_m, y =0, yend = p_m),linetype ="dashed", colour ="grey55") +geom_segment(aes(x = q_0, xend = q_0, y =0, yend = p_c),linetype ="dashed", colour ="grey55") +# pontosgeom_point(aes(x = q_m, y = p_m), colour ="#1565C0", size =3) +geom_point(aes(x = q_0, y = p_c), colour ="#1565C0", size =3) +# tema/escalascale_x_continuous(breaks =c(0, 6, 8, 12, 24),labels =c("0","6","8","12","24"),limits =c(0, q_max*1.02), expand =c(0,0)) +scale_y_continuous(breaks =c(0, 16, 18, 24),labels =c("0","16","18","24"),limits =c(0, y_max), expand =c(0,0)) +coord_cartesian(clip ="off") +theme_minimal(base_size =13) +theme(panel.grid =element_blank(), plot.title =element_text(face ="bold", hjust =0.5)) +labs(title ="Regulação Ótima de Preços", x ="Q, Unidades por dia", y ="P, preço por unidade")# ---- Anotações (no topo; letras pretas) ----p +annotate("text", x = q_m*0.35, y =19.4, label ="A", size =4.6, colour ="black") +annotate("text", x = q_m*0.28, y =17.1, label ="B", size =4.6, colour ="black") +annotate("text", x = q_m*0.35, y =13.8, label ="D", size =4.6, colour ="black") +annotate("text", x = (q_m+q_0)/2, y =16.6, label ="C", size =4.6, colour ="black") +annotate("text", x = (q_m+q_0)/2, y =15.4, label ="E", size =4.6, colour ="black") +annotate("text", x =11, y =5.5, label ="RMg", colour ="#2E7D32", size =5) +annotate("text", x =12.5, y =22.0, label ="CMg", colour ="#D32F2F", size =5) +annotate("text", x =6.0, y =21, label ="Demanda de mercado", colour ="#1565C0", size =4.8) +annotate("text", x =10.9, y =16.9, label ="Demanda regulada", colour ="#4B5563", size =4.6) +# label em cinza escuroannotate("text", x =6, y = y_rmg_horiz +0.8, label ="RMg[r]",colour ="#2E7D32", size =4.4, vjust =2.6, parse =TRUE) +annotate("text", x = q_m -0.25, y = p_m +0.8, label ="italic(e[m])",colour ="#C62828", size =4.5, parse =TRUE) +annotate("text", x = q_0 +0.25, y = p_c -0.8, label ="italic(e[0])",colour ="#C62828", size =4.5, parse =TRUE)
Falha de mercado: a empresa produz menos que o possível, gerando peso morto.
Como o governo cria monopólios. Além dos monopólios “naturais”, o governo pode:
operar diretamente um setor (correios, por exemplo); e
conceder direitos de propriedade — sobretudo patentes e copyrights. Uma patente dá direito exclusivo de vender por um período (tipicamente 20 anos), o que gera perda de bem-estar (monopólio), mas também incentivos à inovação. A política ótima precisa equilibrar esses dois efeitos;
Exemplo farmacêutico. Desenvolver um novo medicamento é caríssimo (ordem de US$ 2 bilhões quando se conta todas as tentativas fracassadas). A patente garante exclusividade por 20 anos; depois entram genéricos, que produzem a custo marginal e derrubam o preço. Em teoria, isso equilibraria incentivos e bem-estar;
o tempo que conta é o depósito da patente, mas como as empresas também precisam da aprovação na agência de vigilância sanitária, o tempo médio de usufruto da patente é de 11 anos.
Por que o sistema não funciona tão bem (algumas vezes).
“Pay-for-delay”: a marca paga o potencial genérico para adiar a entrada.
“Evergreening”: pequenas mudanças (p.ex., no modo de aplicação de insulina) rendem novas patentes e estendem exclusividade.
Mercado de genéricos nem sempre competitivo (caso do EpiPen ainda caro).
Biológicos: muitas vezes não há genéricos viáveis, então a concorrência futura pode não aparecer;
Debate e política recente nos EUA. O governo avaliou que o sistema de patentes está desequilibrado e, via Inflation Reduction Act (IRA), passou a regular preços de alguns medicamentos com concorrentes — medida controversa, mas vista como correção do excesso de poder de mercado;
Regulando monopólios via teto de preço (exemplo gráfico)
Se o governo impõe preço-teto de 16.
A nova RMg (receita marginal regulada) fica horizontal em 16 até o ponto \(E\) (ou \(e_0\)) e depois volta à RMg original.
Pq vender a sétima unidade já não reduz o preço abaixo de 16 (o governo não permite subir a 18), o monopolista então vende mais: a solução passa a ser \(q=8\) (quantidade competitiva) e a perda de peso morto some.
O governo forçou a firma a vender uma quantidade competitiva, reduzindo o peso morto.
O governo utilizou um preço teto para reduzir o peso morto.
Se o preço-teto melhora o bem-estar eliminando a perda de peso morto, por que não fazemos sempre isso? O problema fundamental é de informação: o regulador precisaria conhecer com precisão tanto a curva de demanda quanto a curva de custos da firma, e em geral não conhece nenhuma das duas.
Lado da demanda: métodos de valoração contingente (perguntar aos consumidores quanto estão dispostos a pagar) produzem respostas inconsistentes — as pessoas frequentemente não sabem quanto valorizam bens que consomem regularmente, muito menos bens públicos ou serviços essenciais como água e energia;
Lado da oferta: existe assimetria de informação entre regulador e firma. Quando o regulador pede à firma que informe seus custos marginais, a firma tem incentivo a reportar os maiores custos que conseguir justificar, pois isso resulta em um preço regulado mais alto e lucros maiores;
Consequência: a falha de mercado (monopólio) abre a possibilidade de a intervenção melhorar o bem-estar, mas não garante que a intervenção será bem-sucedida — tudo depende da qualidade da informação disponível e da calibragem da política;
Mesmo com boa intenção, regular mal pode piorar o bem-estar: se o governo fixa \(p = 10\),
a empresa irá produzir onde CMg é igual a RMg, como o preço é regulado: \(10 = 2q \Rightarrow q = 5\)
a firma produz \(q = 5\), gerando perda de peso morto maior do que no próprio monopólio (\(q = 6\)). Em casos extremos, um preço muito baixo pode levar ao fechamento da empresa;
esse resultado reforça o ponto central: regulação mal calibrada pode ser pior que o próprio monopólio não regulado. O remédio pode agravar a doença;
Introdução de competição
Outra via além de controlar preço: introduzir concorrência onde der.
Exemplo: banda larga tem alto custo fixo de cabeamento (característica de monopólio natural). Em vários países europeus há uma rede de fios compartilhada/publicamente gerida, e as empresas competem no serviço (conteúdo/qualidade) sobre essa infraestrutura, evitando a duplicação cara de cabos. Nos EUA, em contraste, as firmas geralmente “cada uma puxa o seu fio”.
o tamanho da barreira a entrada é outra variável importante.
Mercados contestáveis: mesmo com um monopolista presente, se os custos fixos não forem enormes, a mera ameaça de entrada disciplina preços. Enquanto o preço ficar próximo ao custo marginal, ninguém entra; se subir demais, aparece um entrante que cobre o fixo e lucra. Assim, o monopolista é forçado a se comportar “quase competitivo”;
Caso das companhias aéreas (EUA): até os anos 1970 o setor era regulado (monopólios por rota e preços controlados), sob a visão de “monopólio natural”. O debate levou à desregulamentação no fim da década;
Efeitos principais da desregulamentação:
Preços caíram muito — cerca de um terço em média; havia voos extremamente baratos;
Mais rotas passaram a existir: novas empresas mostraram que várias ligações eram, sim, lucrativas;
Qualidade caiu (menos espaço, comida gratuita etc.). Antes, com preço regulado, a competição era em serviços; depois, com competição em preço, as empresas cortaram amenidades;
Lição sobre eficiência competitiva: a pressão competitiva sempre existia, mas, após a mudança, ela passou do “não-preço” para o preço, uma forma mais eficiente de competir dado o que consumidores realmente valorizam. Antes da desregulação, com preço fixado pelo governo, as companhias só podiam competir por qualidade — comida, espaço entre as poltronas, serviço de bordo. Após a desregulação, a competição migrou para o preço. A queda de qualidade não é uma falha de mercado: é o mercado revelando, por preferência revelada, que a maioria dos consumidores prefere pagar menos a receber amenidades. Se os consumidores realmente preferissem alta qualidade a preço alto, essa opção se sustentaria no mercado — e de fato existe, na forma de classes executiva e primeira classe, mas é minoritária;
O ponto que os economistas subestimaram: embora fabricar aviões seja contestável, slots de aeroportos são um gargalo com características de monopólio natural (poucos portões, difícil construir novos aeroportos). O modelo hub-and-spoke gerou quase-monopólios em alguns hubs, mantendo alto poder de mercado em certas rotas;
Consequência prática: por causa desses gargalos, alguns mercados ficaram muito competitivos (ex.: Nova York–Los Angeles), enquanto outros viram diferenças enormes de preço (ex.: trajetos curtos caros quando dominados por um hub);