pracma 包中 integral3 的 R 错误
R error with integral3 from pracma package
我有一个简单的 3d 积分,我想用 pracma
包中的 integral3
来解决:
library(pracma)
W <- function(x,y,z){
x + y + z
}
ymin <- function(x) x
zmin <- function(x,y) x
zmax <- function(x,y) y
integral3(W, xmin = 0, xmax = 1, ymin = ymin, ymax = 1, zmin = zmin, zmax = zmax)
这会生成错误消息:Error in onevec %*% bottom + t %*% dydt : non-conformable arrays
。这应该是一个有效的积分区域,但我确定错误是由我的 zmin
参数引起的。如果我将 zmin
替换为上面的 0,则积分计算正确。基于此,我认为我错误地指定了边界,但我相信我已经正确地遵循了函数文档中的说明。
谢谢
虽然你的函数 zmin
、zmax
看起来很简单,但它们没有矢量化。
W <- function(x,y,z) x + y + z
ymin <- function(x) x
zmin <- function(x,y) rep(x, length(y))
zmax <- function(x,y) rep(y, length(x))
integral3(W, xmin = 0, xmax = 1,
ymin = ymin, ymax = 1, zmin = zmin, zmax = zmax)
## [1] 0.25
我承认,矢量化 表示一个函数在多个变量中的含义有点令人困惑。
我有一个简单的 3d 积分,我想用 pracma
包中的 integral3
来解决:
library(pracma)
W <- function(x,y,z){
x + y + z
}
ymin <- function(x) x
zmin <- function(x,y) x
zmax <- function(x,y) y
integral3(W, xmin = 0, xmax = 1, ymin = ymin, ymax = 1, zmin = zmin, zmax = zmax)
这会生成错误消息:Error in onevec %*% bottom + t %*% dydt : non-conformable arrays
。这应该是一个有效的积分区域,但我确定错误是由我的 zmin
参数引起的。如果我将 zmin
替换为上面的 0,则积分计算正确。基于此,我认为我错误地指定了边界,但我相信我已经正确地遵循了函数文档中的说明。
谢谢
虽然你的函数 zmin
、zmax
看起来很简单,但它们没有矢量化。
W <- function(x,y,z) x + y + z
ymin <- function(x) x
zmin <- function(x,y) rep(x, length(y))
zmax <- function(x,y) rep(y, length(x))
integral3(W, xmin = 0, xmax = 1,
ymin = ymin, ymax = 1, zmin = zmin, zmax = zmax)
## [1] 0.25
我承认,矢量化 表示一个函数在多个变量中的含义有点令人困惑。