R语言修正非正规企业约束型Cobb-Douglas利润函数绘图
修正非约束/约束型Cobb-Douglas利润曲线衔接的R代码
以下是针对非正规企业受资本上限约束的利润曲线绘制修正方案,确保两段曲线在kbar处无缝衔接,符合学术论文的可视化要求:
完整修正代码
# 1. 模型参数定义(可根据你的研究调整) A <- 1.2 # 全要素生产率 alpha <- 0.6# 资本产出弹性 beta <- 0.3 # 劳动产出弹性 P <- 2 # 产品市场价格 r <- 0.05 # 资本租金率 w <- 1 # 劳动力工资率 kbar <- 50 # 行业资本上限 L <- 10 # 固定劳动投入(若为可变要素,需替换为最优解) # 2. 定义非约束型利润函数:给定资本K的利润(无上限限制时) lucroiun <- function(K) { Y <- A * K^alpha * L^beta return(P * Y - r * K - w * L) } # 3. 定义约束型利润函数:资本被限制在kbar时的利润(超过上限后维持该值) lucroic <- function(K) { # 计算kbar对应的利润,返回与输入K等长的向量,保证曲线连续 constrained_profit <- P * A * kbar^alpha * L^beta - r * kbar - w * L return(rep(constrained_profit, length(K))) } # 4. 生成连续资本序列(必须包含kbar,步长足够小保证曲线平滑) K_seq <- seq(0, 80, by = 0.1) # 5. 分段计算利润:确保kbar处两段曲线值完全一致 profit_seq <- ifelse( K_seq <= kbar, lucroiun(K_seq), lucroic(K_seq) ) # 6. 绘制学术风格利润曲线 library(ggplot2) ggplot(data.frame(K = K_seq, Profit = profit_seq), aes(x = K, y = Profit)) + geom_line(color = "#2c3e50", linewidth = 1) + # 添加资本上限分界虚线 geom_vline(xintercept = kbar, linetype = "dashed", color = "#e74c3c", linewidth = 0.8) + # 标注资本上限 annotate("text", x = kbar + 5, y = max(profit_seq)*0.9, label = paste("kbar =", kbar), color = "#e74c3c") + # 论文适配主题设置 theme_minimal() + labs(x = "资本投入 (K)", y = "利润 (π)", title = "受资本约束的非正规企业利润曲线") + theme(plot.title = element_text(hjust = 0.5, face = "bold"), axis.title = element_text(face = "bold"), panel.grid.minor = element_blank())
关键修正说明
- 强制分界点对齐:生成资本序列时包含
kbar,并验证lucroiun(kbar)与lucroic(kbar)的计算值完全一致,从根源避免曲线断裂。 - 向量化计算:使用
ifelse对整个资本序列批量计算利润,替代循环逻辑,保证曲线连续性与计算效率。 - 学术可视化优化:添加分界标注、精简网格线、使用专业配色,符合学术论文的排版规范。
若你的lucroiun是无约束最优利润(即当资本上限足够大时的最大化利润),只需将非约束利润计算替换为最优资本对应的固定值即可,核心逻辑保持一致。
内容的提问来源于stack exchange,提问作者Jair Neto
相关产品推荐
相关产品推荐

