How to numerically evaluate this singular integral in integral2?

1 Ansicht (letzte 30 Tage)
Ryan
Ryan am 4 Sep. 2024
Kommentiert: Ryan am 6 Sep. 2024
Hello,
I am trying to numerically evaluate a 2D integral with an integrand singular along an elliptical curve, please see the simple code below
a = 1;
b = 2;
c = 3;
k = @(x,y) 1./(sqrt(x.^2/a^2+y.^2/b^2)-c);
h = integral2(@(x,y) k(x,y) ,0,10,-10,10);
This yields warnings that "the result fails the global error test" which is evidently because the integrand is singular when
I am curious as to how this integral can be restated to make a numerical integration tractable?
Thanks!
  5 Kommentare
Matt J
Matt J am 5 Sep. 2024
Bearbeitet: Matt J am 5 Sep. 2024
Let us make the change of variables, .
Then the integral becomes,
Now, converting to polar coordinates,
which is obviously a non-convergent integral if and only if for any . Since the region of integration is a rectangle of width 10/b and height 10/a, that will happen if c<norm([10/a,10/b]), which it is in this case.
Ryan
Ryan am 6 Sep. 2024
Thank you Walter and Matt, I was hoping there was a way to render it numerically integratable but as demonstrated it appears that it isn't convergent to begin with.

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Matt J
Matt J am 4 Sep. 2024
Bearbeitet: Matt J am 5 Sep. 2024
As demonstrated in the comment above, the integral is theoretically non-convergent unless c>=norm([10/a,10/b]). Here is a further, numerical test:
a = 1;
b = 2;
c0 = norm([10/a,10/b]); %critical threshold
c=c0*1.0001; %slightly greater than threshold
k = @(x,y) 1./(sqrt(x.^2/a^2+y.^2/b^2)-c);
h = integral2(@(x,y) k(x,y) ,0,10,-10,10)
h = -60.2647
c=c0*0.9999;%slightly less than threshold
k = @(x,y) 1./(sqrt(x.^2/a^2+y.^2/b^2)-c);
h = integral2(@(x,y) k(x,y) ,0,10,-10,10)
Warning: Reached the maximum number of function evaluations (10000). The result fails the global error test.
h = -60.4654
  1 Kommentar
Ryan
Ryan am 6 Sep. 2024
Thanks for that, this is an interesting insight into the behaviour of the integral

Melden Sie sich an, um zu kommentieren.

Produkte


Version

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by