Struve functions

Struve functions H0(z), H1(z), H0(z)-Y0(z), H1(z)-Y1(z) amd modified Struve functions L0(z), L1(z).

You are now following this Submission

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 (2026). Struve functions (https://www.mathworks.com/matlabcentral/fileexchange/37302-struve-functions), MATLAB Central File Exchange. Retrieved .

General Information

MATLAB Release Compatibility

  • Compatible with any release

Platform Compatibility

  • Windows
  • macOS
  • Linux
Version Published Release Notes Action
1.4.0.0

Simplified StruveH1 and added modified Struve functions StruveL0 and StruveL1.

1.2.0.0

Deleted the file Test_Struve01.m

1.0.0.0