SymPy:如何同时定义上标和下标

问题描述 投票:0回答:1

我想定义具有上标和下标的索引库符号。

  1. 我可以这样做吗?如果可以,我该怎么做?

直到现在我写了这个:

c = IndexedBase('c') 
i = symbols("i", cls=Idx)
omega = symbols("omega", cls=Idx)
var_c = c[i, omega]

哪里

spec_cond = And(i == [1,2], omega == [1,2])
var_c = var_c.subs(spec_cond, True)
python-3.x math sympy
1个回答
0
投票

创建一个自定义 IndexedBase,指示 Latex 打印机将第二个索引放置在上标中:

from scipy import Indexed, IndexedBase

class CustomIndexed(Indexed):
    def _latex(self, printer):
        return '%s_{%s}^{(%s)}' % (
            self.base, *self.indices
        )

class CustomIndexedBase(IndexedBase):
    def __getitem__(self, indices, **kwargs):
        return CustomIndexed(self.name, 
                             *indices)

c = CustomIndexedBase('c')
c[i,j]

输出:

c_{i}^{j}

来源:https://medium.com/@mathcube7/indexed-symbols-and-neumann-stability-analysis-with-pythons-sympy-1ab5d5cfc8c5

(抱歉输出混乱,我不知道如何在答案中嵌入乳胶,所以我只是截图它:D)。

© www.soinside.com 2019 - 2024. All rights reserved.