使用 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 <= b
、c <= y <= d
、e <= z <= g
、h <= 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);
我想在 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 <= b
、c <= y <= d
、e <= z <= g
、h <= 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);