Вы можете использовать переменные пределы интеграции с библиотекой Cubature - PullRequest
0 голосов
/ 27 апреля 2018

Я пытаюсь использовать переменный предел интеграции с использованием библиотеки Cubature.

Например:

adaptIntegrate(function(x) {x[1]*x[2]},
    lowerLimit = c(0,0),
    upperLimit = c(x[2],1))$integral

Это не работает

Спасибо

Ответы [ 2 ]

0 голосов
/ 21 августа 2018

Интеграл имеет форму \int_O^1 \int_0^{x[2]} f dx[1] dx[2]

Область интегрирования - это треугольник (сделай картинку!) С вершинами (0,0), (0,1), (1,1). Для такого домена используйте пакет SimplicialCubature.

> f <- function(x) x[1]*x[2]
> S <- cbind(c(0,0),c(0,1),c(1,1)) # the triangle (simplex)
> library(SimplicialCubature)
> adaptIntegrateSimplex(f, S)
$integral
[1] 0.125

$estAbsError
[1] 1.25e-13

$functionEvaluations
[1] 32
0 голосов
/ 27 апреля 2018

Cubature - это пакет для адаптивной многомерной интеграции через гиперкубы. Я также ищу пакеты, которые выполняют многомерную интеграцию по какому-либо конкретному региону (то есть используют переменные в качестве ограничений), кто-нибудь знает?

Кроме того, определение функции не подходит. Я думаю, что вы хотите, это

function(x1,x2) x1*x2
...