Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 以极限为函数的R中的n维积分_C_R_Integration_Numerical - Fatal编程技术网

C 以极限为函数的R中的n维积分

C 以极限为函数的R中的n维积分,c,r,integration,numerical,C,R,Integration,Numerical,我知道R软件包,如cubature,能够对许多积分执行数值积分。然而,在我的情况下,积分的极限不是整数,而是其他变量的函数 例如,假设我有 f(x,y)=4*(x-y)*(1-y),其中0

我知道R软件包,如
cubature
,能够对许多积分执行数值积分。然而,在我的情况下,积分的极限不是整数,而是其他变量的函数

例如,假设我有

f(x,y)=4*(x-y)*(1-y),其中0 我想计算一个二重积分(dydx),对于x的范围ypracma包是否可能做到这一点?)


如果这还没有实现,我会很惊讶,但是在这种情况下,一个指向算法的链接会很有帮助。

如果你只需添加(或者说乘以)一个术语,将函数的值设置为零,在任何(x,y)-元组中,其中(y>=x)

库(pracma)

乐趣您可以将域拆分为三个三角形(制作一张图片)。通过在列中指定三角形的顶点来定义这三个三角形:

T1 <- cbind(c(0,0), c(1,0), c(1,1))
T2 <- cbind(c(1,0), c(2,0), c(1,1))
T3 <- cbind(c(1,1), c(2,1), c(2,0))
定义被积函数:

f <- function(xy) 4*(xy[1]-xy[2])*(1-xy[2])
积分的精确值为
17/6=2.833333..
。因此,我们得到的近似值比另一个答案中的
pracma
给出的近似值要好(毫不奇怪:具有
项的被积函数)(y p printPoly(p)
多项式有4个项和2个变量
4*x[1]^1(度=1)
-4*x[1]^1*x[2]^1(学位=2)
-4*x[2]^1(度=1)
+4*x[2]^2(度=2)
>积分单指数项(p,域)
$integral
[1] 2.833333
$functionEvaluations
[1] 9

条件应该是
x>=y
,但感谢您的回答,我实际上在我使用
*(y
的地方发布了答案。然后我查看了答案,决定将其翻转并更改,但现在我检查了逻辑,我同意您是正确的,并将恢复。
Domain <- abind::abind(T1, T2, T3, along=3)
f <- function(xy) 4*(xy[1]-xy[2])*(1-xy[2])
library(SimplicialCubature)
> adaptIntegrateSimplex(f, Domain)
$integral
[1] 2.833333

$estAbsError
[1] 2.833333e-12

$functionEvaluations
[1] 96
> p <- definePoly(c(4,-4,-4,4), rbind(c(1,0),c(1,1),c(0,1),c(0,2)))
> printPoly(p)
Polynomial has 4 terms and 2 variables
4 * x[1]^1       (degree= 1 )
  -4 * x[1]^1 * x[2]^1       (degree= 2 )
  -4 * x[2]^1       (degree= 1 )
  + 4 * x[2]^2       (degree= 2 )
> integrateSimplexPolynomial(p, Domain)
$integral
[1] 2.833333

$functionEvaluations
[1] 9