在 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.
我需要计算这个二重积分:
其中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.