我想计算形式为\int_{-\infty}^a \int_{-infty}^b sum_{i,j}^K a_i*a_j*x^i*y^j*exp(-x^2 - y^2 + x*y)dx dy的二重积分
其中a_i和a_j是常量。因为积分是线性的,所以我可以交换求和和积分,但在这种情况下,我必须计算K^2个积分,这需要太长的时间。在这种情况下,我执行以下操作:
for i = 1:K
for j = 1:K
fun = @(x,y) x.^i.*y.^j.*exp(-2.*(x.^2 + y.^2 - 2.*x.*y))
part(i,j) = alpha(i)*alpha(j)*integral2(fun,-inf,a,-inf,b)
end
end它花的时间太长了,所以我只想计算一个整数,但我不知道如何向量化sum_{i,j}^K a_i*a_j*x^i*y^j*exp(-x^2 - y^2 + x*y),即如何将其提供给integral2。|非常感谢您的帮助。
发布于 2013-03-22 18:10:38
下面是什么:
I = [1:K]';
J = [1:K]';
funhandle = @(x,y)(sum(sum(...
repmat(alpha(I),1,K)...
.*repmat(alpha(J)',K,1)...
.*repmat(x.^I,1,K)...
.*repmat((y.^J)',K,1)))...
*exp(-x^2-y^2+x*y))我想它能正确地计算出你想要的总和。
https://stackoverflow.com/questions/15555813
复制相似问题