私は、右辺の定数で線形等価を正規化する適切な方法を (sympy を使用して) 見つけようとしています。例えば:
x + 1 = y
になります:
x - y = -1
これは私のかなりハックな解決策です:
def canonical_linear(f):
""" canonicalise a linear equality """
lhs = f.lhs - f.rhs
const_l = [ x for x in lhs.as_ordered_terms() if x.is_number ]
if len(const_l) == 0:
const = 0
elif len(const_l) == 1:
const = const_l[0]
else:
raise NotImplementedError("SHIT")
return sympy.Eq(lhs - const, -const)
これは改善できますか?乾杯?