В этом примере показано, как разделить область интеграции для размещения сингулярности на границе.
Интеграл комплексного интеграла
имеет сингулярность, когда x = y = 0 и является, в общем, единственным на линии y = -x.
Определите этот интеграл с помощью анонимной функции.
fun = @(x,y) ((x+y).^(-1/2));
Объединяться fun над квадратным доменом, указанным - 1≤x≤1 и 1≤y≤1.
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.771236166328258 - 3.771236166328255i
Интеграция выполняется, когда сингулярные значения находятся на границе.
Точное значение этого интеграла
)
8/3*sqrt(2)*(1-i)
ans = 3.771236166328253 - 3.771236166328253i
integral | integral2 | integral3