What is the Struve function?
The Struve function, written \(\mathbf{H}_{v}(x)\), is a special function that appears throughout mathematical physics. It is named after the astronomer Hermann Struve and arises naturally as a particular solution of the inhomogeneous Bessel differential equation. You will meet it in acoustics (radiation from a vibrating piston), fluid dynamics, electromagnetics, and unsteady aerodynamics. This calculator evaluates \(\mathbf{H}_{v}(x)\) for any real order v and argument x.
The formula
The Struve function is defined by the convergent power series
$$\mathbf{H}_{\text{v}}\!\left(\text{x}\right) = \left(\frac{\text{x}}{2}\right)^{\text{v}+1} \times \sum_{k=0}^{\infty} \frac{(-1)^{k}\left(\frac{\text{x}}{2}\right)^{2k}}{\Gamma\!\left(k+\frac{3}{2}\right)\cdot\Gamma\!\left(k+\text{v}+\frac{3}{2}\right)},$$
where \(\Gamma\) is the gamma function. The series converges for every real x, although for large |x| many terms are required and an asymptotic expansion is more efficient. This tool sums the series directly, using a Lanczos approximation for the gamma factors and a stable term-ratio recurrence to avoid overflow.
How to use it
Enter the order v (any real number) and the argument x. For non-integer order, keep x \(\ge\) 0, because \(\left(\frac{x}{2}\right)^{v+1}\) becomes complex for negative x. Press calculate to get \(\mathbf{H}_{v}(x)\). Both inputs are pure dimensionless numbers.
Worked example
Take the default v = 0, x = 1. Here half = 0.5, half² = 0.25 and the prefactor \(\left(\frac{x}{2}\right)^{v+1} = 0.5\). The first series terms are \(1.273239545,\ -0.141471061,\ 0.005658842,\ -0.000115487,\ \ldots\) summing to about \(1.137313265\). Multiplying by the prefactor \(0.5\) gives $$\mathbf{H}_{0}(1) \approx 0.5686566,$$ matching the known high-precision value \(0.56865663339780\).
FAQ
Can v be negative or fractional? Yes. The series is valid for any real v, except where \(v + \frac{3}{2}\) is a non-positive integer (\(v = -1.5,\ -2.5,\ \ldots\)); there the reciprocal gamma simply makes those terms vanish, which is handled automatically.
What happens at x = 0? For \(v > -1\) the function is 0 because the \(\left(\frac{x}{2}\right)^{v+1}\) prefactor vanishes; the calculator returns 0.
Is it accurate for large x? The power series loses precision through cancellation for |x| beyond roughly 30. For very large arguments an asymptotic expansion gives better results.