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