问题描述
不幸的是,我构建的模型没有为某些变量提供解析解,因此我需要对每个值进行数值求解。 如何对需要为区间中的每个点找到根的函数进行积分?也就是说,在对 x 进行积分时,我需要使用每个 x 来找到根值,如下面的表达式所示。
crrafun <- function(w){ alpha/(1-alpha)*(theta-w)-w/(1-gam)+rhovu*w^gam}
integrand4 <- function(x){uniroot(crrafun,c(rhovu,xhat2_new,theta=x)$root+xi-rhovu2_new)*dlnorm(x,mu,sigma)}
integ4 <- integrate(integrand4,20)$value
这给了我错误“端点的 f() 值不是相反的符号”但是当我在 x 的区间(包括最高和最低值)内的一系列值上单独运行 uniroot 时,从来没有任何问题所以错误信息可能具有误导性。
我尝试将 crrafun 直接写入被积函数,但这没有帮助。我还尝试将 uniroot.all 替换为 uniroot。在这种情况下,是否有任何替代集成或 uniroot 可能对我有帮助?我知道我可以编写自己的积分函数,对某个序列的根值求和。但是,我不想这样做,因为它看起来非常临时,并且只能粗略地了解积分的大小。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)