通过在 Mathematica 中更改变量来重用函数扩展

Reusing a function expansion by changing variable in Mathematica

我正在使用球形汉克尔函数,并制作如下表格:

Table[SHF[n, z ] = FunctionExpand[SphericalHankelH1[n, z]], {n, 1, 5, 
   1}] // TableForm

现在,我需要使用z作为不同的变量,保留它作为函数扩展;这意味着我现在需要 SHF[n , k]。我没有再次计算,而是尝试:

Replace[SHF[1, k], SHF[1, z] :-> z]

Replace[SHF[1, z], SHF[1, z] -> SHF[1, k]]

以上都只给我 SHF [1, k] 而不是完全扩展(从 table 扩展后用 k 替换 z)

所以,我试试 :

SHF[1, z] /. z -> k

这给了我这个错误:

Syntax::sntxi: Incomplete expression; more input is needed .

我需要 calculate/expand 多次保持它 k 或其他一些变量,所以我想知道是否有更好的方法来做到这一点。另外,我是新手,所以可能会遗漏一些明显的东西!

我正在使用Wolfram Mathematica 12.2如果缺少任何必要的细节请问我

显示了各种操作

Clear[SHF]

Table[SHF[n, z] = FunctionExpand[SphericalHankelH1[n, z]], {n, 1, 5, 1}];

DownValues[SHF]

显示向下值

更改定义,将 z 替换为 k

SHF[1, z] = ReplaceAll[SHF[1, z], z :> k]

或等同于

SHF[1, z] = SHF[1, z] /. z :> k

DownValues[SHF]

显示向下值变化

添加新定义并删除旧定义

SHF[1, k] = SHF[1, z]

DownValues[SHF] = DeleteCases[DownValues[SHF, Sort -> False],
  HoldPattern[Verbatim[HoldPattern][SHF[1, z]] :> _]]

DownValues[SHF]

显示向下值变化

DownValues 删除感谢 Oleksandr R.