通过在 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],z] -> SHF[1,k]]

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

所以,我尝试:

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

这给了我这个错误

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

我需要多次计算/扩展它以保持 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]

显示向下值的变化

由于 Oleksandr R. 删除了 DownValues。