0

次の二重積分の評価に問題があります。

明らかに、cos 関数の振動性がこれらの問題を引き起こしています。f と g をより大きな数に増やすと、matlab は特異点と統合が失敗したことを訴えます。

(3 - 2*cos(y).*cos(f*x+g*y) - cos((f-1)*x + g*y)) ./ (4 - 2*cos(y).*(cos(y) + cos(x))) dxdy

x の -pi から pi および y の -pi から pi の制限を超えています。

私は使用しています:

quad2d(@(x,y)my_func(x,y,f,g),-pi,pi,-pi,pi)

助けやアイデアをください???

4

1 に答える 1

1

まず、これが数学の問題なのかプログラミングの問題なのかを確認する必要があります。0 と 130 の f と g の入力の場合、積分のエッジは実際に無限大になります。したがって、matlab が無限大に評価されることは驚くべきことではありません。それが実際の答えだからです。

確かに、総積分が無限大になることなく、被積分関数の端が無限大になる可能性がありますが、pi の限界に近づくにつれて結果をプロットすると、総積分は限界に近づきません。は pi に近づくにつれて上昇し続けます。

z = zeros(1, 100);
dd = logspace(-8, -2, 100);
for i = 1 : 100
    d = dd(i);
    z(i) = quad2d(@(x,y)my_func(x,y,0,130),-pi+d,pi-d,-pi+d,pi-d);
end
plot(log10(dd), z)
于 2011-11-13T20:38:05.887 に答える