This example shows how to split the integration domain to place a singularity on the boundary.
The integrand of the complex-valued integral
has a singularity when x = y = 0
and is, in general, singular on the line y = -x
.
Define this integrand with an anonymous function.
fun = @(x,y) ((x+y).^(-1/2));
Integrate fun
over a square domain specified by and .
format long
q = integral2(fun,-1,1,-1,1)
Warning: Non-finite result. The integration was unsuccessful. Singularity likely.
q = NaN + NaNi
If there are singular values in the interior of the integration region, the integration fails to converge and returns a warning.
You can redefine the integral by splitting the integration domain into complementary pieces and adding the smaller integrations together. Avoid integration errors and warnings by placing singularities on the boundary of the domain. In this case, you can split the square integration region into two triangles along the singular line y = -x
and add the results.
q1 = integral2(fun,-1,1,-1,@(x)-x); q2 = integral2(fun,-1,1,@(x)-x,1); q = q1 + q2
q = 3.771236166328258 - 3.771236166328255i
The integration succeeds when the singular values are on the boundary.
The exact value of this integral is
8/3*sqrt(2)*(1-i)
ans = 3.771236166328253 - 3.771236166328253i
integral
| integral2
| integral3