在 Matlab(或 R)中使用指示函数进行双重积分?

Double integral with indicator function in Matlab (or R)?

我需要计算这个二重积分:

其中f(x)和f(y)是r.va和y的分布密度(它们呈正态分布且相互独立)

使用 Matlab。我已经试过了

我试过这个:

fun = @(x,y)((5-2*y)/3)*((1./sqrt(4*pi))*exp(-(x-2)^(2)/4))*((1./sqrt(8*pi))*exp(-(x-1)^(2)/8))
xmax = @(y)(5-2*y)/3
q = integral2(fun,-Inf,1,1,xmax)

但它不起作用。

有什么建议吗? (我不是 Matlab 专家)。不会Matlab,用R就可以了

您的函数 fun 不允许向量化输入,这意味着一次评估多个输入。尝试例如:

fun([1,2],[3,4])

预期输出为

[fun(1,3),fun(2,4)]

要解决此问题,您必须使用元素操作,这已通过错误消息向您建议:

Error using ^ Inputs must be a scalar and a square matrix. To compute elementwise POWER, use POWER (.^) instead.