В этом примере показано, как разделить область интегрирования, чтобы поместить сингулярность в контур.
Подынтегральное выражение интеграла с комплексным знаком
имеет сингулярность когда 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
integral
| integral2
| integral3