Сначала необходимо проверить, является ли это математической проблемой или проблемой программирования.Для ваших вводов f и g, равных 0 и 130, ребра вашего интеграла действительно уходят в бесконечность.Поэтому неудивительно, что 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)