如何用R求解导数为常数的方程?最优产量计算技术求助
R中通用求解最优产量(MR=MC)的方法
要实现无需手动提取系数的通用求解,核心是把求导后的边际收益表达式转为可计算函数,再通过根求解工具找到MR=MC时的产量值,具体步骤和代码如下:
- 用
expression()定义总收益表达式 - 用
D()对表达式求导得到边际收益MR - 将MR转为可调用的函数,方便代入产量计算
- 构建目标函数(MR(Q) - MC),求解该函数的根(即MR=MC的解)
- 使用
uniroot()求解根,该函数支持单变量函数的通用根查找
示例代码
# 定义总收益表达式 TR <- expression(Quantity * (40 - 3*Quantity)) # 对Quantity求导得到边际收益MR MR <- D(TR, "Quantity") # 设定边际成本MC(示例值为10,可自行修改) MC <- 10 # 将MR表达式转换为以Quantity为参数的函数 MR_fun <- as.function(MR) # 构建目标函数:MR(Q) - MC = 0 target_fun <- function(Q) MR_fun(Q) - MC # 用uniroot求解,需指定产量的合理区间(根据经济意义Q>0,且需求为正) optimal_result <- uniroot(target_fun, interval = c(0, 20)) # 提取最优产量值,保留两位小数 optimal_quantity <- round(optimal_result$root, 2) # 输出结果 cat("最优产量:", optimal_quantity, "\n")
关键说明
as.function()能自动把expression类型的MR转为可计算函数,无需手动拆解表达式提取系数uniroot()需要指定一个包含解的区间,可根据收益函数的经济意义设定(比如需求为正的产量范围)- 该方法适用于线性、非线性等各类收益函数,完全通用,不用针对不同表达式修改求解逻辑
内容的提问来源于stack exchange,提问作者anjali
相关产品推荐
相关产品推荐

