Help in Bessel functions overflow in Matlab
Mostrar comentarios más antiguos
Hello Everyone,
I have a trouble about bessel function overflow in matlab. Does anyone have problem with bessel function overflow?
for example:
n=1078;
m1a= 431.2918;
x=(-1).*besselh(n,2,m1a);
than x return 4.9654e+286 -5.7074e+302i.
if n change to 1079;
than x return -inf.
Is there any solution to prevent the command "besselh" from overflowing? Because I want more data with higher n in besselh or besselj.
I really appreciate for your help,
Thank you,
Martin Chang
Respuestas (1)
Walter Roberson
el 18 de Mayo de 2014
0 votos
You will need to switch to a higher precision toolbox such as the Symbolic Mathematics toolbox.
2 comentarios
martinyao
el 18 de Mayo de 2014
Josh Meyer
el 7 de En. de 2015
Yes, the answer is still -Inf because you are doing a numeric computation. Symbolic Math Toolbox doesn't have a besselh function, so you just need to manually construct it using besselj and bessely for the real and imaginary components.
Try something like this instead:
syms Z v
Z = sym('431.2918');
v = sym('1079');
y = -1.*(besselj(v,Z) - 1i*bessely(v,Z));
vpa(y)
ans =
- 1.1772358960337809504005397055303e-307 - 2.7337988321687724066318412501641e303i
Categorías
Más información sobre Bessel functions en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!