、私は仮定やタイプを指定することができます。FunctionまたはIndexedBaseの要素の前提条件/型をどのように指定しますか?私は単純な変数を持っている場合は、次のよう
import sympy as sy
k = sy.Symbol('k', integer=True)
assert k.is_integer
assert k.is_real
を私はIndexedBase
またはFunction
のために同じことを行いたい場合:
f = sy.Function('f', integer=True)
t = sy.Symbol('t')
assert f(t).is_integer # AssertionError
from sympy.tensor import IndexedBase, Idx
i = Idx('i')
A = IndexedBase('A', integer=True)
# __new__() got an unexpected keyword argument 'integer'
assert A[i].is_integer
しかし、どちらも動作しません。これは可能ですか?
is_indexed'は '._assumptions'メンバー辞書の検索に解決ちょうどプロパティなので、内部コードは、余分なメンバー – Eric
と設定を'表示されるという保証はありません 'ので、これは、動作しません。 'integer = True'を設定した場合、' real = True'と 'rational = True'を加えて、 – Eric
@Ericはそうではないことを暗に意味するかもしれないので、手動では_assumptionsは素晴らしい考えではありません。上のオブジェクトの場合、自分自身をチェックすることができます。 'is_real'は自動的にTrueに設定されます。 – asmeurer