quadgk AbsTol/RelTol parameters combinations

2 vues (au cours des 30 derniers jours)
Alejandro
Alejandro le 14 Avr 2025
Commenté : Alejandro le 19 Avr 2025
Dear network.
I am having trouble getting the desired result of an integral involving Bessel functions Jo and Yo.
Need your help with a powerful set of combinations of the AbsTol/RelTol parameters that will help me get a low-error result
This is the equation I am trying to solve, with t as a parameter:
  2 commentaires
Torsten
Torsten le 15 Avr 2025
What is "the desired result" ? Do you have integral values of high precision to compare with ?
Alejandro
Alejandro le 15 Avr 2025
Hi Torsten, yes.
I have figures from various papers and books to compare with.
The current results I am obtaining in MATLAB using either the quadgk or integral commands are off by +- 10%, which requires an optimization of the AbsTol/RelTol parameters.

Connectez-vous pour commenter.

Réponses (1)

Torsten
Torsten le 15 Avr 2025
Modifié(e) : Torsten le 15 Avr 2025
umin = 1e-16;
f = @(t,u) exp(-t*u.^2)./(u.*(besselj(0,u).^2+bessely(0,u).^2));
g = @(u) pi/2 * atan((2*double(eulergamma)-log(4)+2*log(u))/pi);
qD = @(t) 1 + 4/pi^2*( g(umin) + quadgk(@(u)f(t,u),umin,Inf) );
format long
t = 0.1:0.1:10;
plot(t,arrayfun(@(t)qD(t),t))
xlabel('t')
ylabel('qD')
grid on
  3 commentaires
Torsten
Torsten le 16 Avr 2025
Modifié(e) : Torsten le 16 Avr 2025
Consider
syms u
f = u*(bessely(0,u)^2+1);
f = 
series(f)
ans = 
g = u*(4*(eulergamma-log(sym('2'))+log(u))^2/sym(pi)^2+1)
g = 
int(1/g)
ans = 
Limit for int(1/g) as u -> 0+ is pi/2 * atan(-Inf) = -pi^2/4.
Thus for f(t,u) = exp(-t*u.^2)./(u.*(besselj(0,u).^2+bessely(0,u).^2)) I computed
int(f,0,Inf) = int(f,0,umin) + int(f,umin,Inf) ~ int(1/g,0,umin) + int(f,umin,Inf) = pi/2*atan((2*eulergamma-log(4)+2*log(umin))/pi) + pi^2/4 + int(f,umin,Inf)
Now multiply by 4/pi^2 to get qD.
Alejandro
Alejandro le 19 Avr 2025
Thanks for your useful feedback Torsten. Will generate the values and compere against my reference tables.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Special Functions dans Help Center et File Exchange

Produits


Version

R2024b

Community Treasure Hunt

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

Start Hunting!

Translated by