Ошибка uniroot () в R - конечные точки интервала не были успешно расширены - PullRequest
0 голосов
/ 03 декабря 2018

Я новичок в функции uniroot (), и у меня неоднократно возникали проблемы с конкретными комбинациями входных значений для моей функции, которые я хотел бы решить.

Это сообщение об ошибке, которое я получаю:

Ошибка в uniroot (веселье, нижний = 0,001, верхний = 1e + 08, exteInt = "downX"): не удалось расширить конечные точки интервала для f (нижний) * f (верхний) <= 0 </p>

И вот код, который я запускаю:

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 () не может вычислить решение даже при изменении своих настроек?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...