R中的uniroot()错误-间隔端点未成功扩展

时间:2018-12-03 10:01:58

标签: r

我是uniroot()函数的新手,并反复遇到我要解决的函数输入值的特定组合问题。

这是我收到的错误消息:

  

uniroot中的错误(有趣,较低= 0.001,较高= 1e + 08,extendInt =   “ downX”):未能成功扩展以下时间间隔的端点   f(下)* f(上)<= 0

这是我正在运行的代码:

genTactFun = function(T1, T2, T3, T4, Tactive_exp = 0) {
  force(T1)
  force(T2)
  force(T3)
  force(T4)
  force(Tactive_exp)
  function(x) {
    0.25 * (1 - x ^ 1.2 / (x ^ 1.2 + 20    ^ 1.2)) * T1 +
      0.5  * (1 - x ^ 1.2 / (x ^ 1.2 + 150   ^ 1.2)) * T2 +
      0.75 * (1 - x ^ 1.2 / (x ^ 1.2 + 1500  ^ 1.2)) * T3 +
      1    * (1 - x ^ 1.2 / (x ^ 1.2 + 60000 ^ 1.2)) * T4 -
      Tactive_exp
  }
}

T1_obs = 1.131538625
T2_obs = 0.1921480684
T3_obs = 0.01067489269
T4_obs = 0.001186099188

fun = genTactFun(T1_obs, T2_obs, T3_obs, T4_obs, 0.3910554)
Res = uniroot(fun, lower = 1e-3, upper = 1e8, extendInt = "downX")$root

我仍然可以使用uniroot()解决我的问题吗?还是这意味着即使更改设置,uniroot()函数也无法计算解决方案?

0 个答案:

没有答案