【问题标题】:How to get value of X in equation, d(M)/d(x) =constant using R?如何使用 R 获得等式 d(M)/d(x) = 常数中的 X 值?
【发布时间】:2022-11-19 17:35:37
【问题描述】:

我试图找到最佳数量,为此我必须将总收入方程的微分与边际成本等同起来。我不知道如何在这里解决 x。微分对表达式类型变量起作用并返回相同的值,而 solve() 只采用只有系数的数值方程。我不想手动输入系数。

TR = expression(Quantity * (40- 3*Quantity))
MR = D(TR,"Q")
Optimal_Quantity = solve(MR-MC) to get Q

最后一行是我想要实现的伪代码,请帮助。我可以手动输入值,但希望使其通用。 MC = RHS 上的常量数值

【问题讨论】:

  • 应该是MR = D(TR,"Quantity"),请指正。

标签: r eval equation solver differentiation


【解决方案1】:

我不完全理解,但如果你想优化一个函数,找到函数导数然后找到导数的零点。

TR <- expression(Quantity * (40- 3*Quantity))
MR <- D(TR,"Quantity")
class(MR)
#> [1] "call"

dTR <- function(x, const) {
  e <- new.env()
  e$Quantity <- x
  eval(MR, envir = e) - const
}

MC <- 0

u <- uniroot(dTR, interval = c(-10, 10), const = MC)
u
#> $root
#> [1] 6.666667
#> 
#> $f.root
#> [1] 0
#> 
#> $iter
#> [1] 1
#> 
#> $init.it
#> [1] NA
#> 
#> $estim.prec
#> [1] 16.66667

curve(dTR(x, const = MC), from = -10, to = 10)
abline(h = 0)
points(u$root, u$f.root, pch = 16, col = "red")

创建于 2022-11-19 reprex v2.0.2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-21
    • 1970-01-01
    • 2019-09-28
    相关资源
    最近更新 更多