2017-08-02 31 views
1

我在这里看到这篇文章double integral in R并切换功能和限制以下匹配,但它不工作。为什么我的双积分是R不工作

enter image description here

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):功能 评价给出了错误类型的结果

回答

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) } 

您绘制的数学看起来确实应该引起

所以我不知道你真正追求的是什么。

+0

嗨所以答案应该是.6666667,请看这里https://www.symbolab.com/solver/double-integrals-calculator/%5Cint_%7B0%7D%5E%7B1%7D%5Cint_%7B0%7D %5E%7B2%7Dxy%5E%7B2%7D%20dxdy –

+0

我在回答中已经提到,在你的代码中你把'x +(y^2)',但如果你的意思是'x *(y^2)'那么如预期的那样,你会得到.666。 – MrFlick