我有一个关于在 MATLAB 中实现双积分的问题。
据了解,
利用
k1 = 1E-04:0.001:1E+04; k2 = 1E-04:0.001:1E+04; k3 = 1E-04:0.001:1E+04;
上述过程(调用F11,F22和F33的公式)导致结果如下所示:
现在问题来了:
我想通过仅涉及 phi11、phi22 和 phi33 的双积分(或 k2 和 k3 中的嵌套单积分)来获得相同的结果,因此无需直接调用 F11、F22 和 F33 的公式。
到目前为止,我正在使用此代码(仅限于 F11 计算):
clc,clear all,close all
k1 = (1E-04:0.01:10000);
k2 = (1E-04:0.01:10000);
k3 = (1E-04:0.01:10000);
F_11_benchmark = ((9/55)*1.453)*(1./(1+k1.^2).^(5/6));
count = 0;
F_11 = zeros(1,numel(k1));
for i = 2:numel(k1)
count = count + 1;
phi_11 = @(k2,k3) (1.453./(4.*pi)).*((k2.^2+k3.^2)./((1 + k1(count).^2 + k2.^2+k3.^2).^(17/6)));
F_11(count) = dblquad(phi_11,k2(i-1),k2(i),k3(i-1),k3(i));
end
不会导致上图中显示的相同基准测试结果。
你建议如何解决这个问题?我提前谢谢你。
最好的问候, FPE