如何解决r中的未知变量?

时间:2014-08-03 02:33:35

标签: r statistics

如何在R中设置两个相等的方程来求解?

例如:

xlog(x)=8273

找到X?

2 个答案:

答案 0 :(得分:15)

使用以下形式的等式:x * log(x)-8273 = 0

你应该知道答案的范围。然后使用uniroot功能:

f <- function(x)  (x*log(x)-8273)
uniroot(f, lower=0.1, upper=100000000)$root
[1] 1170.897

或更一般的形式:

f <- function(x,y)  (x*log(x)-y)
uniroot(f, y=8273, lower=0.1, upper=100000000)$root
[1] 1170.897

答案 1 :(得分:5)

事实证明(在Wolfram Alpha的帮助下)这个特定的解决方案与Lambert W function(Wolfram Alpha称之为“产品日志”功能)相关:

library(emdbook)
exp(lambertW(8273))  ## 1170.897

Lambert W还有其他几种R软件包(LambertW,spatstat,pracma,condmixt,VGAM)。