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