我在评估以下双积分时遇到了麻烦:
显然,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
超过-pi到pi为x,-pi到pi为y。
我一直在使用:
quad2d(@(x,y)my_func(x,y,f,g),-pi,pi,-pi,pi)
请提供任何帮助或想法
答案 0 :(得分:1)
首先需要检查这是数学问题还是编程问题。对于f和g为0和130的输入,积分的边缘确实会变为无穷大。因此,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)