Matlab 如何使用积分2计算(显然)非矢量化函数的积分?

Matlab 如何使用积分2计算(显然)非矢量化函数的积分?,matlab,integration,differential-equations,numerical-integration,log-likelihood,Matlab,Integration,Differential Equations,Numerical Integration,Log Likelihood,我注意到一些关于积分2的奇怪事实。这可能是由于我在理解它如何工作方面的局限性。当我有特定的函数时,我在积分变量方面有一些困难。例如,请查看以下代码: function Output = prova(p,Y) x = p(1); y = p(2); w = p(3); z = p(4); F1 = @(Data,eta_1,eta_2,x,y,w,z) F2(eta_1,eta_2,Data) .* normpdf(eta_1,x,y) .* normpdf(eta_2,w,z); Output

我注意到一些关于积分2的奇怪事实。这可能是由于我在理解它如何工作方面的局限性。当我有特定的函数时,我在积分变量方面有一些困难。例如,请查看以下代码:

function Output = prova(p,Y)
x = p(1);
y = p(2);
w = p(3);
z = p(4);
F1 = @(Data,eta_1,eta_2,x,y,w,z) F2(eta_1,eta_2,Data) .* normpdf(eta_1,x,y) .* normpdf(eta_2,w,z);
Output = integral2(@(eta_1,eta_2)F1(Y,eta_1,eta_2,0,1,10,2),-5,5,-5,5);
end
function O = F2(pp1,pp2,D)
O = pp1 + pp2 + sum(D);
end
在这种情况下,计算积分没有问题。但是如果我以这种方式更改代码,我会得到一些错误,尽管F2的输出完全相同:

function Output = prova(p,Y)
x = p(1);
y = p(2);
w = p(3);
z = p(4);
F1 = @(Data,eta_1,eta_2,x,y,w,z) F2(eta_1,eta_2,Data) .* normpdf(eta_1,x,y) .* normpdf(eta_2,w,z);
Output = integral2(@(eta_1,eta_2)F1(Y,eta_1,eta_2,0,1,10,2),-5,5,-5,5);
end
function O = F2(pp1,pp2,D)
o = sum([pp1 pp2]);
O = o + sum(D);
end
例如,如果F2有一些矩阵乘法,其中涉及到“eta_1”和“eta_2”,我想将其积分出来,问题就会增加。这个问题实际上不可能解决计算,例如,我们必须积分出似然函数中的变量X(其计算可能需要一些涉及变量X的内部循环、求和或Prod)。解决办法是什么