Math Matlab奇异性

Math Matlab奇异性,math,matlab,integral,Math,Matlab,Integral,我在计算以下二重积分时遇到问题: 显然,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为π对π,y为π对π 我一直在使用: quad2d(@(x,y)my_func(x,y,f,g),-pi,pi,-pi,pi) 有什么帮助或想法吗?您首先需

我在计算以下二重积分时遇到问题:

显然,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为π对π,y为π对π

我一直在使用:

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

有什么帮助或想法吗?

您首先需要检查这是一个数学问题还是一个编程问题。对于0和130的f和g的输入,积分的边确实是无穷大的。因此,matlab的计算结果为无穷大也就不足为奇了,因为这确实是答案

现在可以肯定的是,被积函数的边有可能变为无穷大,而总积分也不会变为无穷大,但是如果在接近π的极限时绘制结果,则总积分不会接近极限,并且在接近π时会继续上升

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)

请编辑您的帖子,以包含您试图计算的积分。这也有助于显示您正在运行的实际代码(包括导致问题的f和g值)以及您收到的确切错误/警告。当我尝试使用“高”值(f=g=100)时,如果我将MaxFunEvals设置得足够高,我就不会有问题。尝试0和130。即使将MaxFunEvals设置为天文高度,它也不会计算积分。给出了:非有限结果。整合没有成功。可能是奇点。>>(quad2d(@(x,y)my_func(x,y,0139),-pi,pi,-pi,pi,'MaxFunEvals',1e5));警告:非有限结果。整合没有成功。可能是奇点。>在242处的2D中