- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ver. Intel Composer XE2013 with Visual Studio 2010 Ultimate
I want to solve the problem about BesselI0/BesselI1 with using the IMSL. Problem is one extreme value divided by another one extreme value and the result should be an uncomplicated value.
Unfortunately, I can not calculate when input data over 700, the output data over 300 order, modified Bessel function of the zero and first kind data will present 'infinite' .
My PROBLEM like (double precision)
'"M(I)=DBSI0(L1(I))/DBSI1(L1(I))"" L1(I) are real data, The "problem" happened in L1(I)>700, the M(I) output "NaN" result.
How could I calculate this vector?
Thanks for any help!!
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
See if you can use Hankel's asymptotic expansions for I0 and I1 ( https://en.wikipedia.org/wiki/Bessel_function#Asymptotic_forms ). Using those expansions, you can write the ratio I0(z)/I1(z) as the ratio of two power series in 1/z. The leading factor, ez/sqrt(z), which causes I0 and I1 to become very large, occurs in both the numerator and the denominator, so you can cancel it out.
For values of z with modulus as large as 700, you should be able to obtain accurate results with a small number of terms in the series.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks for useful reply!
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page