为什么我的双积分是 R 不工作

Why is my double integral is R not working

我在此处 post 遵循此 double integral in R 并切换了功能和限制以匹配下方,但它不起作用。

InnerFunc = function(x) { x + (y^2) }
InnerIntegral = function(z) { sapply(y, 
        function(z) { integrate(InnerFunc, 0, 2)$value }) }
integrate(InnerIntegral, 0, 1)

我收到这个错误:

集成 (InnerFunc, 0, 2) 时出错: 函数评估给出了错误类型的结果

你的变量都不对劲。这应该做你想做的事

InnerFunc <- function(x, y) { x + (y^2) }
InnerIntegral <- function(y) { sapply(y, 
  function(z) { integrate(InnerFunc, 0, 2, y=z)$value }) }
integrate(InnerIntegral, 0, 1)
# 2.666667 with absolute error < 3e-14

请注意 InnerFunc 现在是 xy 的函数。还要注意我们如何应用通过 y 参数传递给 InnerIntegral 的向量(而不是忽略传入的 z 值)。我们还将 y 的当前值传递给 InnerFunc.

尽管您输入了

InnerFunc <- function(x, y) { x + (y^2) }

你画的数学看起来应该真的是

InnerFunc <- function(x, y) { x * (y^2) }

所以我不确定你真正想要的是什么。