假设我想创建一个使用Latex编写的带有单个符号的表达式(因为在Jupyter Notebook中将其可视化非常有用)。然后,我使用lambdify得到一个函数,我可以对多个值进行求值。问题是这个函数将显示一个名为_Dummy_的变量,如下所示。
AoB = sp.symbols(r'\frac{\alpha}{\beta}')
expr = 2 * AoB
lam = sp.lambdify([AoB], expr, 'numpy')
display(lam)
Output: <function _lambdifygenerated(_Dummy_1198)>现在,假设有一个包装器函数:在其中我定义了几个渐近表达式,每个表达式都使用不同的Latex符号。我为这个函数提供了一个索引参数,用于返回相应表达式的lambdify版本。
当lambdify函数返回时,我真的很想知道_Dummy_指的是什么,特别是当lambdify函数需要计算两个或更多参数时。例如,在上面的例子中,如果函数参数被称为AoB (我可以将其解释为alpha对beta),我就没有问题。
理想情况下,我希望创建一个既能接受Latex (出于可视化目的)又能在创建虚拟变量时使用的备用符号(例如,使用lambdify)的符号。有可能吗?
发布于 2019-10-31 07:27:17
可能最简单的解决方案是保持latex符号到普通符号的映射,并在lambdifying之前替换它,比如
AoB = sp.symbols(r'\frac{\alpha}{\beta}')
mapping = {AoB: Symbol('AoB')}
expr = 2 * AoB
lam = sp.lambdify([mapping[AoB]], expr.xreplace(mapping), 'numpy')https://stackoverflow.com/questions/58616786
复制相似问题