在 R 中对根进行积分

问题描述

不幸的是,我构建的模型没有为某些变量提供解析解,因此我需要对每个值进行数值求解。 如何对需要为区间中的每个点找到根的函数进行积分?也就是说,在对 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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...