Struve functions
Struve functions are usually encountered when computing Bessel function integrals.
In this submission, the first two orders of the Struve function H0(z) and H1(z) are computed for vector/matrix complex arguments. Additionally, routines are provided for the corresponding functions H0(z)-Y0(z) and H1(z)-Y1(z), useful for large z, and for the modified functions L0(z) and L1(z).
These are high precision routines. They were tested against mfun and the hypergeometric function of Matlab and agreement is 14 significant digits. Regarding computation time they are orders of magnitude faster for large matrix arguments. When comparing to Mathematica results, please note that in some arguments regions, different Mathematica versions give different results.
The method used was Chebyshev expansions for abs(z)<=16 and rational approximations for abs(z)>16 with mapping on the right half complex plane for the latter case. Matlab routines bessely and besselh are used. A relevant Chebyshev routine is also included.
I would be grateful to receive any comments for further expanding the routines.
Cite As
Theo2 (2025). Struve functions (https://www.mathworks.com/matlabcentral/fileexchange/37302-struve-functions), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.