Этот пример показывает, как разделить область интегрирования, чтобы поместить особенность в контур.
Подынтегральное выражение интеграла с комплексным знаком

имеет особенность, когда x = y = 0 и, в целом, сингулярен на строке y = -x.
Задайте это подынтегральное выражение с анонимной функцией.
fun = @(x,y) ((x+y).^(-1/2));
Интегрируйте fun по квадратной области, заданной
и
.
format long
q = integral2(fun,-1,1,-1,1)Warning: Non-finite result. The integration was unsuccessful. Singularity likely.
q =
NaN + NaNi
Если существуют сингулярные значения во внутренней части области интегрирования, интегрирование не удается сходиться и возвращает предупреждение.
Можно переопределить интеграл путем разделения области интегрирования в дополнительные части и добавления меньших интегрирований вместе. Избегайте ошибок интегрирования и предупреждений путем размещения особенностей в контур области. В этом случае можно разделить квадратную область интегрирования в два треугольника вдоль сингулярной строки y = -x и добавить результаты.
q1 = integral2(fun,-1,1,-1,@(x)-x); q2 = integral2(fun,-1,1,@(x)-x,1); q = q1 + q2
q = 3.771236166328259 - 3.771236166328255i
Интегрирование успешно выполняется, когда сингулярные значения находятся на контуре.
Точное значение этого интеграла

8/3*sqrt(2)*(1-i)
ans = 3.771236166328253 - 3.771236166328253i
интеграл | integral2 | integral3