R - 从 g(x,y)dy 的积分创建函数 f(x)

R - creating a function f(x) from integral of g(x,y)dy

我在 R 中工作,我想知道是否可以创建一个函数 f(x),例如从函数 g(x,y) 对变量 y 的积分中获得在 (0,1) 中,假设:

我试过这个代码

f <- function(x){integrate(function(y){g(x,y),0, 1)}

(使用 g(x,y) 一个显式函数)但它不起作用,除非我修复 x.

另外一些格式化方面的帮助会很棒,因为这是不可读的! 谢谢!

可用。你可以试试

f <- function(x,y) x + y
f(1,2)

it <- function(x) {
    g <- function(y) f(x,y)
    integrate(g, 0,1)
}
it(1)

{caracas} 可能就是您要找的。这是一个可重现的例子:

library(reticulate)
library(caracas)

# make symbols x and y:
x <- symbol("x")
y <- symbol("y")

函数g:

g <- x ** 3 - y ** 3
g
#> [caracas]:  3    3
#>            x  - y

函数fgw.r.t'y'从0到1的积分):

f <- int(g, var = "y", lower = 0, upper = 1)
f
#> [caracas]:  3   1
#>            x  - -
#>                 4

函数hfw.r.t'x'从0到1的积分):

h <- int(f, var = "x", lower = 0, upper = 1)
h
#> [caracas]: 0

也许你可以试试这个

g <- function(x, y) x^4 + y^2
f <- Vectorize(function(x) {
    integrate(function(y) g(x, y), 0, 1)$value
})

你会看到

> f(c(1, 2, 3, 4))
[1]   1.333333  16.333333  81.333333 256.333333

curve(f, 0, 5)给出