使用 Gauss-Legendre 正交的四重积分

Quadruple integration using Gauss-Legendre quadrature

我想在 Matlab 中使用 Gauss-Legendre 求积法计算四重积分。我发现以下代码适用于二重积分,但当涉及到切换到 4 个变量时,我不知道该怎么做。

a = 2; b=2;
[x,w] = lgwt(50);

y=(b*(1+x))/2;
x=(a*(1+x))/2;
[X, Y] = meshgrid(x,y);
fun = @(x,y) exp(1i*x)./(sqrt(x.^2+y.^2));
t = w * fun(X,Y) * w'

我要集成的功能:

fun = @(x,y,z,t) 1./sqrt(x.^2+y.^2+z.^2+t.^2)

有人知道吗?

This solution 似乎是您的最佳选择。

整合 fun = @(x,y,z,t) 来自 a <= x <= bc <= y <= de <= z <= gh <= t <= i是将integral3()嵌套在integral()中。它们都是 built-in Matlab 的函数。

Q = integral(@(x)integral3(@(y,z,t)f(x,y,z,t),c,d,e,g,h,i),a,b,'ArrayValued',true);