什麼是斯特魯夫函數?
斯特魯夫函數(Struve function)\(\mathbf{H}_{v}(x)\) 是一種特殊函數,為非齊次貝索方程(Bessel equation)的一個特解。它常出現在聲學、流體力學、光學與電磁學的問題中,並經常與一般的貝索函數一同登場。本計算器可針對你指定的一系列 x 值,計算任意實數階 v 的 \(\mathbf{H}_{v}(x)\),讓你清楚觀察它振盪且緩慢衰減的特性。這是純數學運算,全球通用,與地區或單位制度無關。
如何使用本計算器
請輸入四個數值:階數 v(斯特魯夫函數的階)、x 的起始值(第一個引數)、增量(相鄰 x 值之間的間距),以及重複次數(要產生幾列)。表格便會依序列出每個引數 \(x_{i} = \text{startX} + i \times \text{stepX}\),以及對應的數值 \(\mathbf{H}_{v}(x_{i})\)。使用預設值(v = 0、起始 = -10、間距 = 0.2、次數 = 101)時,會得到 101 個點,將 x 從 -10 掃描到 +10。
公式解析
數值是直接由上方所示的冪級數計算而來。
$$\mathbf{H}_{v}(x) = \left(\frac{x}{2}\right)^{v+1} \sum_{k=0}^{\infty} \frac{(-1)^{k}\left(\frac{x}{2}\right)^{2k}}{\Gamma\!\left(k+\frac{3}{2}\right)\,\Gamma\!\left(k+v+\frac{3}{2}\right)}$$令 \(t = x/2\),前置因子為 \(t^{v+1}\),而每一項為 \((-1)^{k} t^{2k}\) 除以兩個伽瑪函數的乘積,即 \(\Gamma(k + 3/2)\) 與 \(\Gamma(k + v + 3/2)\)。伽瑪函數採用數值穩定的 Lanczos 近似計算;當其引數為非正數時,則改用反射公式 \(\Gamma(z) = \pi / (\sin(\pi z)\,\Gamma(1 - z))\)。對於 \(|x|\) 不太大的情況,此交錯級數收斂得相當快。
實際範例
取 v = 0、x = 2,則 \(t = 1\),前置因子為 1。將級數逐項相加可得
$$1.273240 - 0.565884 + 0.090542 - 0.007391 + 0.000365 - \ldots \approx 0.79066$$因此 \(\mathbf{H}_{0}(2) \approx 0.79066\),與標準參考值相符。
常見問題
\(\mathbf{H}_{v}(0)\) 是多少?對任何階 \(v > -1\),前置因子 \((x/2)^{v+1}\) 在 x = 0 時為零,所以 \(\mathbf{H}_{v}(0) = 0\)。
可以使用負數或非整數階嗎?可以。當 x 為負數且 v 為非整數時,函數值會變成複數,因此這些列會顯示為「非數值」(not-a-number);若 v = 0 或為整數階,整張表都會維持為實數。
準確度如何?在預設範圍內,直接級數法極為精確。但若 \(|x|\) 非常大(大約超過 30),所需項數會很多,此時改用漸近展開式會更為理想。