Multiroot解决R中联立方程的问题

时间:2015-03-04 17:33:59

标签: r

我在使用multiroot时遇到了问题。我无法找出问题所在,但是当我将它与文档进行比较时,语法和我实现的方式看起来是正确的。请建议。 我的代码如下:

n <- 128
tn <- 28712
sumTc <- 784321
sumT <- 42382
model <- function(b,c){
  c( 1/b -(tn^c)/(exp(b*(tn^c))-1),  1/c -(b*(tn^c))/(exp(b*(t^c))-1)+sum(log(tVec)/n))
}

multiroot(model, start=c(0.00004,1))

这给了我一个错误,即Error in f(x, ...) : argument "c" is missing, with no default

1 个答案:

答案 0 :(得分:0)

您需要使用向量作为函数的参数:

model <- function(x) {
  c(
    1/x[1] -(tn^x[2])/(exp(x[1]*(tn^x[2]))-1) - sumTc/n,  1/x[2] -(x[1]*(tn^x[2]))/(exp(x[1]*(tn^x[2]))-1)+sum(log(tVec)/n) +(x[1]*sum((tVec^x[2])*log(tVec))/n)
  )
}

因此,bc现在位于x[1]x[2]的向量中。