Hàm Struve là gì?
Hàm Struve, ký hiệu \(H_{v}(x)\), là một hàm đặc biệt xuất hiện rộng rãi trong vật lý toán. Hàm này được đặt theo tên nhà thiên văn học Hermann Struve và phát sinh một cách tự nhiên như một nghiệm riêng của phương trình vi phân Bessel không thuần nhất. Bạn sẽ gặp nó trong âm học (bức xạ từ một pít-tông dao động), động lực học chất lưu, điện từ học và khí động lực học không dừng. Công cụ này tính \(H_{v}(x)\) cho mọi bậc thực v và đối số x.
Công thức
Hàm Struve được định nghĩa bằng chuỗi lũy thừa hội tụ
$$\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)},$$
trong đó \(\Gamma\) là hàm gamma. Chuỗi này hội tụ với mọi giá trị thực x, tuy nhiên với \(|x|\) lớn thì cần rất nhiều số hạng và lúc đó khai triển tiệm cận sẽ hiệu quả hơn. Công cụ này cộng trực tiếp các số hạng của chuỗi, dùng xấp xỉ Lanczos cho các thừa số gamma và một phép truy hồi tỉ số số hạng ổn định để tránh tràn số.
Cách sử dụng
Nhập bậc v (một số thực bất kỳ) và đối số x. Với bậc không nguyên, hãy giữ \(x \ge 0\), vì \(\left(\frac{x}{2}\right)^{v+1}\) sẽ trở thành số phức khi x âm. Bấm tính để nhận giá trị \(H_{v}(x)\). Cả hai giá trị nhập vào đều là số thực không thứ nguyên.
Ví dụ minh họa
Lấy giá trị mặc định v = 0, x = 1. Ở đây half = 0,5, half² = 0,25 và thừa số đầu \(\left(\frac{x}{2}\right)^{v+1} = 0{,}5\). Các số hạng đầu tiên của chuỗi là \(1{,}273239545\), \(-0{,}141471061\), \(0{,}005658842\), \(-0{,}000115487\), ... cộng lại xấp xỉ \(1{,}137313265\). Nhân với thừa số đầu 0,5 ta được \(H_{0}(1) \approx 0{,}5686566\), khớp với giá trị độ chính xác cao đã biết là \(0{,}56865663339780\).
Câu hỏi thường gặp
v có thể âm hoặc là phân số không? Có. Chuỗi này hợp lệ với mọi giá trị thực của v, ngoại trừ khi \(v + \frac{3}{2}\) là một số nguyên không dương (\(v = -1{,}5, -2{,}5, \ldots\)); tại những giá trị đó, hàm gamma nghịch đảo đơn giản làm cho các số hạng tương ứng triệt tiêu, và điều này được xử lý tự động.
Điều gì xảy ra tại x = 0? Với \(v > -1\) thì hàm bằng 0 vì thừa số \(\left(\frac{x}{2}\right)^{v+1}\) triệt tiêu; máy tính sẽ trả về 0.
Có chính xác với x lớn không? Chuỗi lũy thừa mất độ chính xác do hiện tượng triệt tiêu khi \(|x|\) vượt quá khoảng 30. Với những đối số rất lớn, khai triển tiệm cận sẽ cho kết quả tốt hơn.