如何通过scipy/numpy或sympy实现第一种球汉克尔函数?

3 投票
2 回答
1323 浏览
提问于 2025-04-18 10:12

我知道在scipy里没有内置的sph_hankel1函数,所以我想知道怎么正确地实现它。

另外:请给我展示一个正确的sph_hankel1实现,可以用Scipy或者Sympy来做。

2 个回答

3

虽然如果有现成的计算球面汉克尔函数的程序会很方便(就像普通汉克尔函数那样),但其实球面汉克尔函数只是球面贝塞尔函数的第一类和第二类的一个(复杂的)线性组合,所以可以很容易地通过现有的程序来计算。由于汉克尔函数是复杂的,具体使用时可能会有不同的需求,因此将你的表达式改写成第一类和第二类贝塞尔函数的形式,即完全使用实数,特别是当你最终的结果是实数时,这样做会更有优势。

4

关于在SymPy中实现特殊函数,有一个指南可以参考,里面详细讲解了如何实现这些函数,点击这里可以查看。我们非常欢迎大家提交关于知名特殊函数的代码贡献。

至于数值计算的部分,这些功能是在mpmath中实现的。看起来它直接使用了定义来进行计算,具体情况是这样的

撰写回答